audio - 将 5.1 视频缩混为立体声的更快方法?
问题描述
我有一手全是 5.1 音频的电影,我需要一个只有立体声的音轨。我找到了一些关于如何做到这一点的建议,但有些对我不起作用,而另一些则太慢了。
我发现效果最快的一个是:
ffmpeg -y -i "input" -map 0:v -c:v copy -map 0:a:0? -c:a:0 copy -map 0:a:0? -c:a:1 aac -ac 2 -metadata:s:a:1 title="Eng 2.0 Stereo" -map 0:a:1? -c:a:2 copy -map 0:a:2? -c:a:3 copy -map 0:a:3? -c:a:4 copy -map 0:a:4? -c:a:5 copy -map 0:a:5? -c:a:6 copy -map 0:a:6? -c:a:7 copy -map 0:s? -c:s copy "output"
可悲的是我不记得它是从哪里来的。
问题在于它创建了一个单独的音轨,而就我的目的而言,这不起作用。
只做标准的 -ac 2 可以,但速度很慢,我估计要花 40 多个小时才能看完我所有的电影。
编辑:这里有一些额外的信息
- 所有的电影都是mp4的
- 除了 2 部电影外,所有电影都是 5.1 音频(有 1 个 7.1 和 1 个单声道。我真的不在乎它们)
- 我发布的命令以大约 40 倍的速度运行,而仅执行 -ac 4 以 2 倍的速度运行
解决方案
瓶颈是音频编码。
命令可以是:
ffmpeg -i input.mp4 -c:v copy -c:a aac -ac 2 output.mp4
- 确保您的
ffmpeg
版本为 4.0 或更高版本,否则编码会更慢。
使用-c:a libfdk_aac -afterburner 0
速度可能快 2 倍:
ffmpeg -i input.mp4 -c:v copy -c:a libfdk_aac -ac 2 output.mp4
- 由于 libfdk_aac 的许可证,您需要编译
ffmpeg
才能使用此编码器。
你能做的不多。
推荐阅读
- python - TensorFlow、GPU 或代码中的错误?'无法处理内核分页请求'
- email - 当我使用变量作为电子邮件触发关键字时,Logstash 无法发送电子邮件
- system-verilog - 在 RTL 仿真中将生成的时钟定义为同步的
- oracle - 29283. 00000 - “无效的文件操作”
- xamarin.ios - 让 UI 适应 iPhone 和 iPad
- javascript - 有没有更“余烬的方式”来计算这个值?
- visual-studio-code - 如何在 VS 代码扩展中访问自动检测到的链接
- python - 使用 random.choice() 随机选择一个动作(定义)
- java - 检查字符串并处理无效日期
- java - 为什么编译器认为 `byte...` 和 `char...` 是模棱两可的