我一直在尝试使用 ffmpeg 来调整在 PAL 视频中以 25 fps 的速度显示 24 fps 电影时发生的不良加速。 (这种情况似乎经常发生。)
我已经掌握了无需重新编码即可更改视频帧速率的方法。这很好。
我已经掌握了如何根据需要更改音频采样率,从而改变音调。这很好。
但是,对于某个项目,音频一开始是 ac3 2 声道音轨中的杜比数字环绕声。调整频率变化后,它只能以立体声播放。为什么会这样,我该如何修复它?
为了简化问题,我提取了一个简短的 test.ac3 音频片段来自 25fps 源。
例如,通过 VLC 收听,可以清晰地播放环绕声,并且初始声音位于中央声道。
为了证明 ffmpeg 可以轻松地将环绕 ac3 复制到另一个文件中,可以运行以下命令:
ffmpeg -i test.ac3 -c:a copy -y test_copy.ac3
播放 test_copy.ac3 时,片段明显保留了环绕声。
然而,如果像这样调整音轨的频率:
ffmpeg -i test.ac3 -filter:a "asetrate=48000*24/25" -y test24.ac3
播放 test24.ac3 只会产生立体声,左声道和右声道都有声音,而中置声道则没有任何声音。
ffmpeg 也无法简单地将此 ac3 音轨复制到空的 .mp4 文件中,因此看来 ac3 音轨中的 2 声道杜比数字环绕声在 ffmpeg 中是非常脆弱的东西,但一次一个问题。
答案1
部分答案:
杜比环绕声和杜比定向逻辑工作通过以某种方式将所有通道编码成两个通道。
因此,猜测一下:您的采样率变化会破坏检测或完整的编码,具体取决于您使用什么来播放它,因此您只能获得“真正的”两个通道。
潜在的解决方法:尝试找到一个软件解码器(由于许可问题可能很困难),从这两个通道中提取所有通道,更改所有通道上的速率,然后将它们播放为真正的环绕声。