1

input.txtという名前のファイルがあります

file '/home/1.flv'
file '/home/2.flv'

このコマンドを使用して、1.flvと2.flvをmp4ファイルに連結できます。

# there are two files in output.mp4
ffmpeg -f concat -i input.txt -c copy output.mp4

次のコマンドを使用すると

ffmpeg -i "concat:1.flv|2.flv" -c copy output.mp4

にファイルが1つしかないことがわかりまし1.flvoutput.mp4、なぜですか?

4

2 に答える 2

6

にファイルが 1 つしかないことがわかりまし1.flvoutput.mp4。なんで?

最初のコマンドはconcatdemuxerを使用します。これは、再エンコードを避けたい場合や、入力がファイル レベルの連結をサポートしていない場合に使用できます。デマルチプレクサを使用するには、すべてのファイルが同じストリーム (同じフォーマット、同じ時間ベースなど) を持つ必要がありますが、これは比較的最近追加されたものであるため、古い ffmpeg ビルドにはこの機能がありません。

2 番目のコマンドは、ファイル レベルの連結 (MPEG-1 ビデオ、MPEG-2 ビデオ、DV など) をサポートするために入力を必要とするconcatプロトコルを使用します。これらは、連結 (または、ユーザーによってよく呼び出される「結合」) の 2 つの異なる方法です。

FFmpeg Wikiのメディア ファイルを連結 (結合、マージ) する方法も参照してください。他の誰かが回答を提供した ffmpeg-user でもこれを尋ねたようです: [FFmpeg-user] can't concatenate the flv file

于 2013-02-12T18:43:06.157 に答える
0

ファイルが H.264 を使用している場合は、 最初に再多重化する必要があります。

ffmpeg -i q.mp4 -c copy -bsf h264_mp4toannexb q.ts

ffmpeg -i r.mp4 -c copy -bsf h264_mp4toannexb r.ts

ffmpeg -i "concat:q.ts|r.ts" -c copy -bsf aac_adtstoasc qr.mp4
于 2013-02-12T15:45:53.660 に答える