使用ffmpeg混合不同长度的音频/视频

Posted

技术标签:

【中文标题】使用ffmpeg混合不同长度的音频/视频【英文标题】:Mix audio/video of different lengths with ffmpeg 【发布时间】:2012-10-23 23:54:24 【问题描述】:

我想将来自video.mp4(1 分钟持续时间)的视频和来自audio.mp3(10 分钟持续时间)的音频混合到一个持续时间为 1 分钟的输出文件中。 audio.mp3 的音频应该来自 4 min - 5 min 的位置。我如何使用ffmpeg 做到这一点?

【问题讨论】:

【参考方案1】:

如果video.mp4 没有音频

你可以使用这个命令:

ffmpeg -i video.mp4 -ss 00:04:00 -i audio.mp3 -c copy -shortest output.mkv

音频将来自问题中要求的 4 分钟位置 (-ss 00:04:00)。

此示例将 stream copy(重新复用)视频和音频 - 不会发生重新编码。

如果video.mp4 有音频

您必须按照此处所述添加-map 选项:FFmpeg mux video and audio (from another video) - mapping issue。

如果音频比视频短

添加 apad 过滤器以添加静默填充:

ffmpeg -i video.mp4 -ss 00:04:00 -i audio.mp3 -c:v copy -af apad -shortest output.mkv

注意过滤需要重新编码,所以在本例中音频将被重新编码。

【讨论】:

谢谢。我不问超级用户,因为我发现,在 *** 上很多问题都是我的问题。现在明白了,这是错误的。 LordNeckbeard,我认为你错了。因为执行后视频减少了。我尝试将开始时间设置为 30 秒,看看,输出视频是 30 秒,而不是 1 分钟 颈须大人,对不起。我错了。之前我用的不要最后一个ffmpeg版本。现在,一切正常。再次感谢脚本 当视频较长时,您将如何添加从某个时间到结束的视频?这意味着视频末尾会有一段无声的部分 -shortest 在较短的流结束时导致编码结束,但假设我有 10 分钟的视频和 3 分钟的音频,我希望播放视频的前 3 分钟音频,其余的保持沉默,我该怎么办?

以上是关于使用ffmpeg混合不同长度的音频/视频的主要内容,如果未能解决你的问题,请参考以下文章

在 ffmpeg 中混合音轨的文件上添加另一个音频

使用 FFmpeg 将音频输入与视频混合到特定位置

FFMpeg;混合两个音频流时出错

使用 FFMPEG 批量删除音频结尾

将各种音频和视频源混合成一个视频

使用 FFMPEG 连接某些 mp4 文件时听不到音频 [重复]