最終出力MP4ファイルでも、2つ以上のMP4ファイルを連結またはマージするにはどうすればよいですか?
DOSウィンドウでCOPYコマンドを使用しようとしました(どこかで読みました)が、うまく機能しません。
最終出力MP4ファイルでも、2つ以上のMP4ファイルを連結またはマージするにはどうすればよいですか?
DOSウィンドウでCOPYコマンドを使用しようとしました(どこかで読みました)が、うまく機能しません。
回答:
MP4Boxはこれを行うことができますが、YAMBやMy MP4Box GUIのようなGUIを使用することもできます。(注意:個人的には私のプログラムではなく、それは単なる名前です。)Windows用のMP4Boxバイナリは、このサイトから入手できます。
例:
MP4Box -tmp $HOME -add vid.01.m4v \
-cat vid.02.m4v -cat vid.03.m4v vid-out.mp4
ffmpegをお勧めします。これは、Mac OS X、Linux、およびWindowsで使用できます。
2つの映画を連結する方法の良い例があります:http ://www.ffmpeg.org/faq.html#SEC27
最後のステップでは、結果ファイル用にMP4コンテナーを作成することを確認するだけです。
ffmpegでこれを試すことができます:
mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4
これは何も再エンコードせず、新しいトランスポートストリームコンテナーに配置します。これにより、連結がより簡単になり、連結してMP4に戻ります。output.mp4が既に存在する場合、コマンドは失敗します。上記のバージョンは名前付きパイプを使用しているため、中間ファイルを使用する必要があるシステムをサポートしていないシステム上にあります。
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4
更新:他の回答を読んだ後、インストールしたavidemuxをチェックしました。それはあなたが探しているものです(その名前のためにMP4ができるとは思わなかった…)。
VirtualDubModはmp4対応だと思いますが、使用しませんでしたので、確かにわからないです。
MeGUIをチェックしてください。かなり複雑で機能豊富なアプリとツールです。
コンテナ(あなたの場合はmp4)に埋め込むためのツールはmuxerと呼ばれ、おそらくそれらを連結することはできません。
VirtualDubと組み合わせて使用できます。Virtualdubはビデオストリームを連結し、muxerはそれを再度mp4にします(再エンコードする必要はありません)。
私はそれらをffmpegでaviに変換した後、mencoderでそれをやっています
01.mp4 ... 15.mp4という名前の15個のファイルがあると仮定した場合の簡単なスクリプトを次に示します。
#!/bin/bash
for j in `seq -w 1 15`;
do
echo converting file $j.avi
ffmpeg -i $j.mp4 $j.avi
echo adding file $j.avi to list
z="$z $j.avi"
done
echo doing append
mencoder -oac copy -ovc copy $z -o all.avi
乾杯
コマンドは次のとおりです。
ffmpeg -i concat:"video1.ts|video2.ts"