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