Saya ingin menggabungkan dua file mp4 untuk membuat satu. Aliran video dikodekan dalam h264 dan audio dalam aac. Saya tidak dapat menyandikan ulang video ke format lain karena alasan komputasi. Juga, saya tidak dapat menggunakan program GUI, semua pemrosesan harus dilakukan dengan utilitas baris perintah Linux. FFmpeg tidak dapat melakukan ini untuk file mpeg4 jadi saya menggunakan MP4Box:
MP4Box -add video1.mp4 -cat video2.mp4 newvideo.mp4
Sayangnya audio menjadi kacau. Saya pikir masalahnya adalah audio di aac jadi saya menyalinnya di mp3 dan menggunakan lagi MP4Box. Dalam hal ini audio baik-baik saja untuk bagian pertama newvideo.mp4
(sesuai dengan video1.mp4
) tetapi kemudian tidak ada audio dan saya tidak dapat menavigasi dalam video juga.
Pikiran saya berikutnya adalah bahwa stream audio dan video memiliki beberapa perbedaan kecil yang harus saya perbaiki. Jadi untuk setiap input video saya memisahkan stream video dan audio dan kemudian bergabung dengan mereka dengan opsi -shortest di FFmpeg.
Jadi untuk video pertama saya berlari:
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
Begitu pula untuk video kedua dan kemudian menggunakan MP4Box seperti sebelumnya. Sayangnya ini juga tidak berhasil. Satu-satunya keberhasilan yang saya miliki adalah ketika saya bergabung dengan stream video secara terpisah (yaitu videostream1.mp4 dan videostream2.mp4) dan stream audio (yaitu audiostream1.m4a dan audiostream2.m4a) dan kemudian bergabung dengan video dan audio dalam file terakhir. Namun, sinkronisasi hilang untuk paruh kedua video. Konkretnya, ada penundaan audio dan video 1 detik. Setiap saran sangat diterima.