FFMPEG - 2つのMP4ファイルをマージする

FFMPEG - 2つのMP4ファイルをマージする

2つのMP4ファイルをマージするには、.tsファイルを渡す必要があります。

ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts
ffmpeg -i "concat:input1.ts|input2.ts" -c copy output.mp4

ただし、最初/2番目のコマンドで次のエラーが発生します。

ビットストリームフィルタ「h264_mp4toannexb」はコーデック「mpeg4」(13)をサポートしていません。サポートされているコーデックは次のとおりです。h264(28)ビットストリームフィルタ初期化エラー:h264_mp4toannexb

ここに画像の説明を入力してください。

あなたはアイデアを持っていますか?

答え1

concatファイルレベルで接続するプロトコルを使用してこれを実行しようとしています。

デマルチプレクサを介して接続しようとすると、より良い結果が得られますか?

テキストファイル(mylist.txt)に入力ファイルを一覧表示したら、次のことができます。

ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4

-safe 0パスが相対パスの場合は必要ありません。

この方法と試した方法を使用することをお勧めしますffmpeg.orgから他の様々な接続方法。確かにあなたのためのものはありますか?他のすべての方法が失敗した場合は、まずh264にトランスコードできます。明らかにまだそうではありません。

答え2

これはあなたの問題です

ストリーム #0:0[0x1]: ビデオ: mpeg4(シンプルプロファイル)(mp4v/0x7634706D),

@stoneyが言ったように

ストリーム #0:0(und): ビデオ: h264(高)(avc1/0x31637661)

まず、h264に記録してそれを確認できます。

ffmpeg -i input1.mp4 output1.mp4
ffmpeg -i output1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts

関連情報