不使用地图也可以实现。
ffmpeg -i video.mp4 -i audio.mp3 output.mp4
如果您希望 output.mp4 在其中一个输入停止(音频/视频)时立即停止
然后使用
-shortest
例如:ffmpeg -i video.mp4 -i audio.mp3 -shortest output.mp4
这将确保当任何一个输入完成时输出停止。
既然你问你想用地图来做这件事。这就是你的做法:
ffmpeg -i video.mp4 -i audio.mp3 -map 0:0 -map 1:0 -shortest output.mp4
现在,由于您想保留视频文件的音频,请考虑您要合并audio.mp3
and video.mp4
。这些是步骤:
- 从视频中提取音频.mp4
ffmpeg -i video.mp4 1.mp3
- 合并audio.mp3和1.mp3
ffmpeg -i audio.mp3 -i 1.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 audiofinal.mp3
- 从 video.mp4 中删除音频(这一步不是必需的。但只是为了正确执行)
ffmpeg -i video.mp4 -an videofinal.mp4
- 现在合并audiofinal.mp3和videofinal.mp4
ffmpeg -i videofinal.mp4 -i audiofinal.mp3 -shortest final.mp4
note:在最新版本的 ffmpeg 中,它只会提示您使用“-strict -2”,以防万一它使用此:
ffmpeg -i videofinal.mp4 -i audiofinal.mp3 -shortest -strict -2 final.mp4
希望这可以帮助。