请注意,与论坛上的许多发帖者不同,我并不是想将环绕声转换为立体声或执行任何类型的转换。我只想按原样复制现有的 2 声道 ac3 杜比数字环绕声音轨,而无需重新编码。但即使我使用 -c:a copy,输出文件中的音频也不再被解释为环绕声,而是立体声,即使它仍然被标识为 2 声道杜比数字。任何关于为什么会这样以及如何修复它的提示都将不胜感激。
更具体地说,我一直在尝试使用 Topaz Video Enhance AI 将一些 SD 视频升级为 HD。(一般来说,效果很好。)最好的方法是写一个装满静止图像的文件夹,每帧一张。然后我使用 ffmpeg 将它们与原声带拼接在一起(使用 ffmpeg 成功提取保留环绕声!),制作最终的电影。或者,如果音频副本表现良好,它将成为最终的电影。事实并非如此。复制的音频不使用三个前置声道,而是被视为立体声。
我像这样提取音频:
ffmpeg -i input.mkv -y -c:a copy audio.ac3
我可以在 VLC 中播放该 audio.ac3 文件,它仍然会产生环绕声。
我将静态图像转换为电影并重新添加音频,如下所示:
ffmpeg -framerate 25 -start_number 0 -i "%06d.tif" -i audio.ac3 -c:a copy -c:v libx264 -pix_fmt yuv420p out.mp4
(源视频是 PAL,因此是该帧速率。)
但是,当我在 VLC 中播放 out.mp4 时,它现在只使用左右声道。为什么会这样?我该如何修复?
目前我使用 MKVToolNix 将放大的视频与原始环绕音轨放在一起,这样就得到了我想要的效果。我只是希望省去最后一步,并了解出了什么问题。
我怀疑这是否相关,但这是在运行 Catalina 10.15.7 的 Mac 上使用 brew 构建的 ffmpeg 4.2.1 进行的。看来我需要更新它。
编辑:我有一个更简单的方法来揭露这个问题......
使用这个 test.ac3 文件,只需将音频复制到新文件:
ffmpeg -i test.ac3 -c:a copy -y test_copy.ac3
这是可行的,例如,可以使用 VLC 以环绕声播放 test_copy.ac3。
相反,将音频复制到另一个空的 .mkv 文件中:
ffmpeg -i test.ac3 -c:a copy -y test_copy.mkv
这也有效,test_copy.mkv 以环绕声播放。
但是,将音频复制到一个空的 .mp4 文件中:
ffmpeg -i test.ac3 -c:a copy -y test_copy.mp4
这会失败,播放的音频是立体声而不是环绕声。