FFmpeg で最高のオーディオ品質を得るために Opus を使用したエンコードを理解したい。ビットレートが 96kbps で止まっていませんか?

FFmpeg で最高のオーディオ品質を得るために Opus を使用したエンコードを理解したい。ビットレートが 96kbps で止まっていませんか?

私は FFmpeg についてはあまり詳しくないのですが、基本はほとんど理解しています。Opus でオーディオをエンコードする方法を理解しようとしています。オーディオ、ビットレート、サンプル レート、Hz に関しては、私の知識はやや乏しいです。

私の MP4 入力ファイル (ミュージック ビデオ) は、次の FFprobe オーディオ パラメータを使用して AAC オーディオでエンコードされています。

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

この MP4 ファイルを WEBM に変換するために、次の FFmpeg コマンドを使用しています。

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

シェル コマンドを実行すると、次の警告が表示されます。

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

私の理解では、Opus ではデフォルトで可変ビット レート (VBR) が有効になっており、入力オーディオ ビット レートを検出して一致させるはずです。ただし、Opus は元の 127,999 bps と一致していないようです。

これは Opus がオーディオの品質を低下させていることを意味しますか? 出力された音楽は実際には良い音です私にですが、私は聴覚障害があります。私が読んだところによると、256kbps までのビットレートでは多くの人がオーディオ品質の違いを認識できるそうです。また、これらのミュージック ビデオは、私だけでなく、視聴者が視聴することを意図しています。これらのビデオでは、音楽の品質が最も重要です。

また、-b:a 256k入力がそれほど高くない可能性があり、アップスケールしようとしてディスク領域を無駄にしてしまうため、固定ビットレートを に設定することも望んでいません。-vbrオーディオ品質を少なくとも元の入力品質と同じくらいに最大化するために、Opus を にしたいと思います。しかし、96k が Opus の最高速度である場合、-vbr入力の忠実度ビットレートが高いと、オーディオ品質が大幅に低下することになりますよね? 入力ファイルのビットレートが高いほど、オーディオ品質も高くなると想定していますか?

理解を助けてください。オーディオ品質を最大化するために、Opus の FFmpeg コマンドでどのフラグを使用すればよいですか?

答え1

libopus エンコーダーは品質ベースのエンコードをサポートしていません。

デフォルトのビットレートはチャンネル数に基づきます。手動でビットレートを設定する必要があります。最大 まで設定できます256k * # of channels。VBR はデフォルトでオンになっており、すべてのオーディオ フレームが固定ビットレートに制限されるわけではありません。ターゲット ビットレート付近で推移します。

関連情報