我有一个用图片创建的 mp4 视频文件,想在其中添加 mp3 声音。我对视频编辑一点都不熟悉,但读到过一些文章说 aac 声音更受欢迎,所以我也得到了 aac 格式的声音。
结果的首选格式也是 mp4 或 flv。我的操作系统是 Ubuntu(Saucy Salamander)。
我已经在 Google 上搜索了很多,avconv
并mencoder
尝试将找到的例子转化到我的案例中,但没有成功。
各位专家,能否给我一个命令行示例,我该如何操作?
答案1
这有点取决于你的流在 mp4 文件中的映射方式。类似这样的方法应该可行:
ffmpeg -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4
通常视频流在容器中被映射为第一个流。
如果没有被映射为第一个流,请更改映射:
ffmpeg -i video.mp4 -i audio.aac -map 0:1 -map 1:0 -vcodec copy -acodec copy newvideo.mp4
要了解视频文件中的流实际上是如何映射的,首先可以使用mediainfo
现在标准 Ubuntu 存储库中的内容。
如果我们分解这里的命令行,它的工作方式如下:
-i video.mp4 -> first media file
-i audio.aac -> second media file
-map 0:1 -> use the second stream from the first mediafile
-map 1:0 -> use the first stream from the second mediafile
-vcodec copy -> leave the video as is
-acodec copy -> leave the audio as is
newvideo -> resulting videofile
确保音频文件和视频文件的时长相同。并非所有播放器都能接受时长差异巨大的曲目。
请注意avconv
和ffmpeg
几乎是同一件事。事实上,使用 avconv 的这个命令也像使用 ffmpeg 的相同命令一样工作:
avconv -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4
avconv 程序属于 Libav 项目,该项目是 FFmpeg 项目的一个分支。您也可以放心地忽略以下错误消息:
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
混合 MP4 格式文件的另一种方法是MP4Box
使用gpac
软件包。