在Linux中加入mp4文件
我想加入两个mp4文件来创建一个。视频流以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 类似地,对于第二个视频,然后像以前一样使用MP4Box。不幸的是,这也不起作用。我唯一的成功是当我分别加入视频流(即videostream1.mp4和videostream2.mp4)和音频流(即audiostream1.m4a和audiostream2.m4a),然后将视频和音频加入最终文件时。但是,视频的后半部分失去同步。具体而言,音频和视频会有1秒的延迟。任何建议都非常欢迎。