想要了解如何使用 Opus 进行编码,以便在 FFmpeg 中实现最高音频质量。比特率停留在 96kbps?

想要了解如何使用 Opus 进行编码,以便在 FFmpeg 中实现最高音频质量。比特率停留在 96kbps?

我对 FFmpeg 还不熟悉,但掌握了很多基础知识。我正在尝试了解如何使用 Opus 编码音频。我对音频、比特率、采样率和 Hz 的了解有点薄弱。

我的 MP4 输入文件(音乐视频)使用 AAC 音频编码,具有以下 FFprobe 音频参数:

[sample_rate] => 44100
[channels] => 2
[channel_layout] => stereo
[bit_rate] => 127999

我正在使用以下 FFmpeg 命令将此 MP4 文件转换为 WEBM:

ffmpeg -i input.mp4 -map 0:s? -map 0:v -map 0:a? -vf scale=-2:720 -movflags +faststart -c:v libvpx-vp9 -crf 32 -b:v 1024k -c:a libopus output.webm

当我运行 shell 命令时,出现以下警告:

[libopus @ 0x55ccad7dc440] No bit rate set. Defaulting to 96000 bps.

据我所知,Opus 默认启用可变比特率 (VBR),这应该可以检测并匹配输入音频比特率。但是,Opus 似乎与原始的 127,999 bps 不匹配。

这是否意味着 Opus 正在降低音频质量?输出的音乐实际上听起来不错大部头书,但我的听力有问题。据我所知,很多人可以感知到高达 256kbps 比特率的音频质量差异,这些音乐视频是为了让观众观看的,而不仅仅是我自己。音乐质量对这些视频至关重要。

我也不想设置恒定的比特率-b:a 256k,因为输入可能没有那么高,这只会浪费磁盘空间来尝试升级。我希望 opus 能够-vbr最大化音频质量,至少与原始输入质量一样好!但如果 96k 是 Opus 的最高值-vbr,那就意味着如果输入具有更高的保真比特率,我们将损失很多音频质量,对吗?我假设输入文件的更高比特率相当于更高的音频质量?

帮我理解一下。你会在 Opus 的 FFmpeg 命令中使用哪些标志来最大化音频质量?

答案1

libopus 编码器不支持基于质量的编码。

默认比特率基于通道数。您必须设置一些手动比特率。它可以高达256k * # of channels。默认情况下,VBR 处于启用状态,这意味着并非所有音频帧都会被限制为固定比特率。它将在目标比特率附近徘徊。

相关内容