ffmpeg - 如何使用 ffmpeg 将多个音频文件(过滤一个)添加到视频中?
问题描述
我正在尝试使视频静音并向其添加两个音频文件。一个是语音旁白,第二个是将音乐过滤到其通常音量的 0.5 倍。
我看到我收到一条错误消息,指出我无法将 -filter 与 -c:a 结合使用,但删除 -c:a 并没有帮助。添加音频没问题,但过滤不起作用。
ffmpeg -ss $START -i "$VIDEO" -i "$AUDIO1" -i "$AUDIO2" -filter:a "volume=1.5" -t $AUDIOLENGTH -map 0:v -map 1:0 -map 2:0 -c:v copy -c:a aac -b:a 256k -shortest "./Output/${AUDIONAME}/${AUDIONAME}.mp4" -y
我的这段代码似乎只合并了一个音频文件。最重要的是,如果我将它编辑为只添加一个音频文件,-filter 开关似乎不起作用。求救,越来越严重了!!
解决方案
当您需要以某种组合过滤多个输入时,必须使用过滤器图,通过 -filter_complex 调用。在此特定用途中,可以使用混合过滤器。
ffmpeg -ss $START -i "$VIDEO" -i "$AUDIO1" -i "$AUDIO2" -filter_complex "[1][2]amix=inputs=2:weights='2 1'[a]" -t $AUDIOLENGTH -map 0:v -map '[a]' -c:v copy -c:a aac -b:a 256k "./Output/${AUDIONAME}/${AUDIONAME}.mp4" -y
(如果您提供输出持续时间-t
, -shortest 可以删除)
推荐阅读
- windows - 当找不到它与 AD 检查的值时,让 powershell 向我显示一些问题
- java - ClassNotFoundException:javax.xml.bind.JAXBException(再次)
- python - 如何在 django 项目上实现跟随系统
- php - 如何让 php 知道我在输入中进行了更改?
- c++ - 潜入多个 couts 时输出不同
- django - python视频编辑器库接收文件对象而不是文件路径
- javascript - 如何在 HTML 文件 (react.js) 中的父组件中导入子组件
- cypress - 如何在柏树中单击并按住?
- xml - XSLT 在遇到遇到的“代码”标记时连接标记“名称”
- python - 使用 numpy 的二项式分布