Möchten Sie die Kodierung mit Opus für maximale Audioqualität in FFmpeg verstehen? Die Bitrate bleibt bei 96 kbps hängen?

Möchten Sie die Kodierung mit Opus für maximale Audioqualität in FFmpeg verstehen? Die Bitrate bleibt bei 96 kbps hängen?

Ich bin relativ neu bei FFmpeg, habe aber die Grundlagen schon verstanden. Ich versuche zu verstehen, wie man Audio mit Opus kodiert. Meine Kenntnisse in Bezug auf Audio, Bitraten, Abtastrate und Hz sind etwas dürftig.

Meine MP4-Eingabedatei (ein Musikvideo) ist mit AAC-Audio mit den folgenden FFprobe-Audioparametern codiert:

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

Ich verwende den folgenden FFmpeg-Befehl, um diese MP4-Datei in WEBM zu konvertieren:

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

Wenn ich den Shell-Befehl ausführe, erhalte ich die folgende Warnung:

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

So wie ich es verstehe, sollte bei Opus standardmäßig die variable Bitrate (VBR) aktiviert sein, die die Bitrate des Audioeingangs erkennen und anpassen soll. Es scheint jedoch, dass Opus nicht die ursprünglichen 127.999 Bit/s erreicht.

Bedeutet das, dass Opus die Qualität des Audios verringert? Die Musik in der Ausgabe klingt eigentlich gutmir, aber ich habe ein Hörproblem. Soweit ich gelesen habe, können viele Leute Unterschiede in der Audioqualität bis zu einer Bitrate von 256 kbps wahrnehmen, und diese Musikvideos sind für ein Publikum gedacht, nicht nur für mich. Die Musikqualität ist dabei von größter Bedeutung.

Ich möchte auch keine konstante Bitrate von einstellen -b:a 256k, da der Eingang möglicherweise nicht so hoch ist und dies beim Hochskalieren nur Speicherplatz verschwendet. Ich möchte, dass Opus dies tut, -vbrum die Audioqualität auf mindestens die gleiche Qualität wie die ursprüngliche Eingangsqualität zu maximieren! Aber wenn 96k das Höchste ist, was Opus -vbrerreicht, bedeutet das, dass wir viel Audioqualität verlieren, wenn der Eingang eine höhere Bitrate hat, richtig? Ich gehe davon aus, dass eine höhere Bitrate der Eingangsdatei einer höheren Audioqualität entspricht?

Helfen Sie mir, das zu verstehen. Welche Flags würden Sie im FFmpeg-Befehl für Opus verwenden, um die Audioqualität zu maximieren?

Antwort1

Der Libopus-Encoder unterstützt keine qualitätsbasierte Kodierung.

Die Standardbitrate basiert auf der Kanalanzahl. Sie müssen eine manuelle Bitrate festlegen. Sie kann bis zu 1000 betragen 256k * # of channels. VBR ist standardmäßig aktiviert und bedeutet, dass nicht alle Audioframes auf eine feste Bitrate beschränkt sind. Sie schwankt um die Zielbitrate herum.

verwandte Informationen