ffmpeg 将 .mkv 转换为带有音频 .aac 压缩的 .mkv

ffmpeg 将 .mkv 转换为带有音频 .aac 压缩的 .mkv

我正在尝试使用 ffmpeg 来.mkv更改视频的音轨质量。我想降低音频部分的比特率(至 16 kbps),而不对视频进行任何修改。然而,当我使用 ffmpeg 命令时

ffmpeg -i input.mkv -b:a 16k output.mkv

声音没有改变,视频被压缩了。我试过了

ffmpeg -i input.mkv -ab 16k output.mkv

也遇到了同样的问题。当我尝试

ffmpeg -i input.mkv -ab 16k -acodec aac -strict experimental output.mkv

我收到错误:

oggvorbis_encode_init: init_encoder failed

有什么办法可以解决这个问题吗?

答案1

默认情况下,ffmpeg 将重新编码任何没有明确选择的流流复制模式,默认视频编码比特率(取决于编码器)可能太低,无法提供足够的输出质量。您可以复制视频作为-codec:v copy输出选项,而不是重新编码。

对于如此低的音频比特率,我建议使用支持 HE-AAC 的 AAC 编码器。此示例改编自FFmpeg 和 AAC 编码指南立体声输出时每通道大约使用 16kb/s:

ffmpeg -i input.mkv -codec:v copy -codec:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.mkv

根据输入音频的内容,如此低的比特率即使使用此编码器,听起来可能也不会那么好。请注意,HE-AACv2可能不受支持被你的目标解码器,你可能需要编译 ffmpeg为了libfdk_aac支持。

Opus 音频是另一种很好的格式,但上次我检查时发现 Matroska 容器中 Opus 的规格尚未最终确定;不过传闻我认为正在取得进展。

相关内容