【问题标题】:ffmpeg convert video file with 8 audio channels to multichannel wavffmpeg 将具有 8 个音频通道的视频文件转换为多通道 wav
【发布时间】:2017-08-30 09:30:39
【问题描述】:

在运行{输入,参数} 告诉应用程序“终端” 启用 将文件字符串设置为“” 在输入中使用 file_ 重复 将 filesString 设置为 filesString & " " & 引用形式 (POSIX path >of file_) 结束重复 do script "for f in" & filesString & "; do ~/Documents/ffmpeg/ffmpeg -i \"$f\" -acodec pcm_s16le \"${f%.*}.wav\" 完毕” 结束告诉 返回输入 结束运行

我写了一个applescript来在OS X中添加一个右键单击服务,但这只需要第一个通道并创建一个单声道wav文件。如何创建多声道 wav 以容纳 8 个单声道?

【问题讨论】:

    标签: ffmpeg mapping wav channel


    【解决方案1】:

    合并

    一种方法是使用amerge filter:

    ffmpeg -i input -filter_complex "[0:a:0][0:a:1][0:a:2][0:a:3][0:a:4][0:a:5][0:a:6][0:a:7]amerge=inputs=8" output.wav
    

    加入

    另一种方法是使用join filter:

    ffmpeg -i input -filter_complex "[0:a:0][0:a:1][0:a:2][0:a:3][0:a:4][0:a:5][0:a:6][0:a:7]join=inputs=8:channel_layout=7.1" output.wav
    

    join 比 amerge 的优势在于允许您更好地控制哪些流在输出通道布局中的位置:

    ffmpeg -i input -filter_complex "join=inputs=8:channel_layout=7.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-LFE|4.0-BL|5.0-BR|6.0-SL|7.0-SR" output.wav
    

    注意事项

    • [0:a:5] 指的是输入号 0 的第 4 个音频流(本例中的第一个也是唯一一个输入)。

    • 如果您知道可以信任默认流选择行为,则可以省略过滤器输入标签([0:a:0][0:a:1][0:a:2] 等)。

    • 您可以使用ffmpeg -layouts查看支持的频道布局列表。

    【讨论】:

    • GreatLordNeckbeard,我在各种论坛上读过很多关于你的文章 :-) 所以这适用于终端中的单个文件,但我的 Applescript 出于某种原因出错。不完全确定为什么...调查一下。
    • 老实说,我会接受前两首曲目并在 wav 中保留它(它只使用我原始帖子中的第一个曲目)。我在音频映射和 Applescript 方面遇到了很多麻烦,我不知道为什么。最终希望将其打包并发送给我们没有安装 QT 或 NLE 的现场团队,以便他们可以在几乎不了解 Media Encoder 和其他平台的情况下快速轻松地从原始摄像机镜头创建 wav,以便他们可以发送远离自动转录服务。
    • @imgoingtoshabooms 抱歉,我对 Applescript 一无所知。至于仅使用两个流作为输入的立体声,一个简单的命令可能类似于ffmpeg -i input -filter_complex join=inputs=2 output.wav,但我可能会为过滤器添加输入标签,以获得更多定义的行为,如答案示例中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多