在 FFmpeg v4.0 之前,我已经能够对包含 H.264 视频轨道和 AC3 或 DTS 音频流的输入视频文件运行以下命令,并生成具有 6 个音频流的 MP4。每个流对应一个 5.1 音频的通道。
ffmpeg -i INPUT.MKV -vcodec copy -filter_complex channelsplit=channel_layout=5.1 -acodec aac -movflags faststart OUTPUT.MP4
它甚至可以在立体声轨道上工作,并将 L 和 R 通道放在适当的位置,并为其他 4 个通道生成一些无关紧要的静音轨道。
但现在在 v4.0.1 中,我收到以下错误:
[aac @ 0x7f7f65001e00] 不支持的通道布局
初始化输出流 0:0 时出错 - 打开输出流 #0:0 的编码器时出错 - 可能是不正确的参数,例如 bit_rate、rate、width 或 height
转换失败!
将命令更改为以下内容并不能改善问题:
ffmpeg -i INPUT.MKV -vcodec copy -filter_complex "channelsplit=channel_layout=5.1[FL][FR][FC][LFE][BL][BR]" -acodec aac -movflags faststart OUTPUT.MP4
它给出了以下错误:
滤波器通道分割:BR 有一个未连接的输出
(注意 BL/BR 和 SL/SR 都产生关于 BR 的相同错误)
这种 MP4 文件结构对于在 Unity 内部使用放置在环境中的虚拟扬声器进行回放非常有用。
我的最终目标:
- MP4 (MOOV Atom at the Front)
-H.264 Video Stream
-AAC Audio Stream - FL
-AAC Audio Stream - FR
-AAC Audio Stream - FC
-AAC Audio Stream - LFE
-AAC Audio Stream - SL
-AAC Audio Stream - SR