想要了解使用 Opus 進行編碼以在 FFmpeg 中獲得最佳音訊品質。比特率停留在 96kbps?

想要了解使用 Opus 進行編碼以在 FFmpeg 中獲得最佳音訊品質。比特率停留在 96kbps?

我對 FFmpeg 有點陌生,但我已經了解了很多基礎知識。我試圖了解如何使用 Opus 編碼音訊。我對音訊、位元率、取樣率和赫茲的了解有點薄弱。

我的 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 預設為啟用狀態,這表示並非所有音訊幀都將被限制為固定位元率。它將徘徊在目標位元率附近。

相關內容