我正在尝试制作/创建 5.1 和 7.1 环绕声文件,但我找不到方法来做到这一点。 我正在使用 ubuntu 12.04,并且可以访问 Octave / Matlab / Python。 我了解如何在八度/matlab/python 中创建音频文件,但不确定如何为 5.1 和 7.1 环绕声文件创建正确的文件格式。
如果您能够创建 6 个(对于 5.1)或 8 个(7.1)单独的单声道音频文件,每个扬声器一个(front_left.wav、front_center.wav,...),您可以使用以下命令行将它们连接起来:
ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-LFE|4.0-BL|5.0-BR[a]" -map "[a]" output.wav
此行来自 https://trac.ffmpeg.org/wiki/AudioChannelManipulation,其中还有其他几个有用的通道操作示例。
LFE
(低频效果)是指低音炮。 ffmpeg 适用于 Windows、Mac 和 Linux(例如,作为同名的 Debian 软件包)。
如果您想直接从 Python 创建多声道音频文件,请查看 pydub 包(它在底层使用了 ffmpeg 库)。
要探测给定的音频文件是否具有多通道内容,您可以使用 ffmpeg 套件的
ffprobe
:
ffprobe -hide_banner output.wav
显示例如:
Input #0, wav, from 'output.wav':
Metadata:
encoder : Lavf58.20.100
Duration: 00:00:01.28, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, 5.1, s16, 1536 kb/s
我不同意,vorbis 并不是唯一支持环绕声的编解码器。 正如您在这个 cutcutcodec 示例中看到的,aac、alac、mlp、vorbis 和 wavpack 也能够处理 5.1 布局。
from cutcutcodec.core.compilation.export.compatibility import Compatibilities
print(Compatibilities().codecs_audio(layout="5.1"))