8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

使用 ffmpeg 连接不同视频的音频部分

NikkieDev 2月前

25 0

所以我有两个视频:Vid_eng.mkv 是一个高分辨率视频,带有英语音频。Vid_esp.mkv 是一个低分辨率视频,带有西班牙语音频。这两个视频显示的或多或少......

我有两个视频:

  • Vid_eng.mkv 是一个带有英语音频的高分辨率视频。
  • Vid_esp.mkv 是一个低分辨率视频,带有西班牙语音频。

这两个视频展示的内容大致相同,但不同之处在于西班牙语视频的开头和结尾被剪掉了(缺少前 66 秒)。

我想创建一个新的视频文件, Vid_out.mkv 其中包含 Vid_eng.mkv 视频和音频(因此最终文件具有多流音频)。问题是西班牙语音频与高分辨率视频不同步,所以我做了以下事情:

ffmpeg -i Vid_eng.mkv
       -f lavfi -t 66 -i anullsrc -i Vid_esp.mkv
       -filter_complex "[1:a][2:a]concat=n=2:v=0:a=1[outa]"
       -map 0 -map "[outa]"
       -metadata:s:a:0 language=eng
       -metadata:s:a:1 language=spa
       -disposition:a:1 default
       -c:v copy Vid_out.mkv

我在这里所做的基本上是 Vid_out.mkv 使用来自 的视频 Vid_eng.mkv Vid_eng.mkv 的音频多流来 Vid_esp.mkv ,但不同的是来自 的音频 Vid_esp.mkv 实际上是在 66 秒后开始的(以便与英语视频同步)。我通过添加 66 秒的静音(带有 -f lavfi -t 66 -i anullsrc )并将该静音与西班牙语音频(带有 -filter_complex "[1:a][2:a]concat=n=2:v=0:a=1[outa]" )连接起来,然后将此连接的音频流作为辅助音频添加到最终文件。此外,我还包含了一些元数据以了解哪个音频是哪个。

目前一切都很好。但现在我想尝试一些更复杂的东西:我不想将 66 秒的静音连接到西班牙语音频,而是想要 66 秒的英语音频(来自 的音频 Vid_eng.mkv ),然后是来自 的音频 Vid_esp.mkv ,最后当西班牙语音频结束并且视频仍在播放时,我想要再次播放英语音频。因此,当使用辅助音频流播放视频时,我想要的是播放英语音频,而不是在视频的开头和结尾处保持静音。如何使用 ffmpeg 做到这一点?


作为参考,我一直遵循这些答案中的想法:

  • 如何将不同视频中的音频添加到一个多流视频中
  • 如何为音频添加几秒钟的静音
帖子版权声明 1、本帖标题:使用 ffmpeg 连接不同视频的音频部分
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由NikkieDev在本站《linux》版块原创发布, 转载请注明出处!
最新回复 (0)
  • ,通过单个命令来实现接近效果 sidechaincompress

    ffmpeg -i Vid_eng.mkv
           -i Vid_esp.mkv
           -filter_complex "[1:a]adelay=66000:all=1,asplit=2[esp][ref];
                            [0:a][ref]sidechaincompress=threshold=0.125:ratio=20[eng];
                            [eng][esp]amix=inputs=2:duration=first:normalize=0[outa]"
           -map 0 -map "[outa]"
           -metadata:s:a:0 language=eng
           -metadata:s:a:1 language=spa
           -disposition:a:1 default
           -c:v copy Vid_out.mkv
    

    这将创建英语音频的克隆,并在西班牙语音频处于活动状态时降低其音量。然后将处理后的英语和西班牙语混合在一起。使用 sc 过滤器进行实验以优化英语克隆的音量。

返回
作者最近主题: