我想使用bash脚本将audio.mp3音轨添加到无声的video.mp4文件中,“cvlc”“ffmpeg”命令行的正确语法是什么?
我使用VLC和--no-audio选项录制了视频,因此没有可以从原始视频中复制的比特率或编码等设置。
答案 0 :(得分:28)
来自video.mp4
(输入0
)和来自audio.mp3
的音频(输入1
)的stream copy或重新多路复用的示例:
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -codec copy -shortest out.mp4
这样可以避免编码,因此非常快,不会影响质量。
如果您需要重新编码大小或者需要与输入不同的格式,您可以告诉ffmpeg使用哪些编码器。重新编码为H.264视频和AAC音频的示例:
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -codec:v libx264 \
-preset medium -crf 23 -codec:a aac -b:a 192k -shortest output.mp4
-map
选项允许您指定所需的流,例如,-map 0:v
指的是第一个输入的视频流。如果你没有告诉ffmpeg你想要什么流,那么它将使用默认的stream selection,即为每种流类型选择一个流。默认值通常很好,但建议明确,以便获得预期的结果。
-shortest
选项指示ffmpeg在最短持续时间输入结束时结束输出文件。
始终建议使用最近的ffmpeg构建。最简单的方法是download a recent ffmpeg build,但您也可以关注guide to compile ffmpeg。