7
Linuxでmp4ファイルに参加する
2つのmp4ファイルを結合して、1つのファイルを作成したいです。ビデオストリームはh264でエンコードされ、オーディオはaacでエンコードされます。計算上の理由により、ビデオを別の形式に再エンコードできません。また、GUIプログラムを使用できません。すべての処理はLinuxコマンドラインユーティリティで実行する必要があります。FFmpegはmpeg4ファイルに対してこれを行うことができないため、代わりにMP4Boxを使用しました。 MP4Box -add video1.mp4 -cat video2.mp4 newvideo.mp4 残念ながら、音声はすべて混同されます。問題はオーディオがaacにあることだと思ったので、mp3でトランスコードし、再びMP4Boxを使用しました。この場合、音声は前半newvideo.mp4(に対応video1.mp4)で問題ありませんが、音声がなく、ビデオでもナビゲートできません。 私の次の考えは、オーディオストリームとビデオストリームの長さに若干の不一致があり、修正する必要があることです。そのため、入力ビデオごとにビデオストリームとオーディオストリームを分割し、FFmpegの-shortestオプションで結合しました。 したがって、私が最初に実行したビデオの場合: avconv -y -i video1.mp4 -c copy -map 0:0 videostream1.mp4 avconv -y -i video1.mp4 -c copy -map 0:1 audiostream1.m4a avconv -y -i videostream1.mp4 -i audiostream1.m4a -c copy -shortest video1_aligned.mp4 2番目のビデオについても同様に、以前と同様にMP4Boxを使用しました。残念ながら、これも機能しませんでした。私が唯一成功したのは、ビデオストリーム(videostream1.mp4とvideostream2.mp4)とオーディオストリーム(audiostream1.m4aとaudiostream2.m4a)を別々に結合し、最終ファイルのビデオとオーディオを結合したときでした。ただし、ビデオの後半の同期は失われます。具体的には、オーディオとビデオには1秒の遅延があります。どんな提案も大歓迎です。
31
mp4
concatenation
join