Empfohlene Einstellungen zum Konvertieren von Opus in AAC

1630
Peter K.

Ich lade gerade Musik von Youtube herunter, und es scheint, dass in den meisten Fällen (beliebte Videos) die beste Audioqualität eine Opus-Datei ist.

Ich weiß, dass (1) Opus der neueste und effizientere Codec ist und (2) das Konvertieren von einem verlustbehafteten Codec zu einem anderen nicht empfohlen wird.

Da ich jedoch dieselbe Datei verwenden möchte, dh denselben Container für Windows / iOs / car verwenden möchte, möchte ich in AAC oder MP3 konvertieren.

Ich habe hier gelesen , dass Sie den Erzeugungsverlust durch Verwendung einer höheren Bitrate für den Ziel-Codec bis zu einem gewissen Grad verringern können.

Welche Einstellungen (zB ffmpeg) würden Sie also empfehlen, eine Opus-Datei in AAC zu konvertieren, um die gleiche Audioqualität zu erhalten (ich weiß, dass dies subjektiv ist ...)?

Laut den youtube-dl -FDaten sind es 160 kbs, aber MediaInfo liefert beim Herunterladen eine Gesamt-Bitrate von 127 Kbps und eine Abtastrate von 48 KHz.

Wäre 192kbs eine gute Wahl für die AAC-Datei? (Ich gehe davon aus, dass AAC auf jeden Fall die bessere Wahl ist als MP3?) Ich weiß, dass VBR von CD oder Lossless am meisten empfohlen wird, aber für die Transcodierung von Opus wäre CBR besser? Und sollte ich die 48kHz-Samplerate aus der Opus-Datei behalten oder auf die üblichen 44.1kHz von AAC herabsetzen?

Und schließlich kann youtube-dl auch eine AAC-Datei mit 128 kbs herunterladen. Da Opus effizienter / besser ist, ist die Qualität bei gleicher Bitrate höher. Aber das Transcodieren des Opus in AAC (z. B. bei 192kbs / 212kbs) würde diesen Qualitätsunterschied beibehalten, oder würde die Transcodierung (sogar zu einer höheren Bitrate) Artefakte verursachen, so dass die Audioqualität der 192kbs AAC-Datei tatsächlich schlechter wäre als die AAC 128kbs Datei ?

BEARBEITEN

Lassen Sie mich erklären, warum ich „konzeptionell“ Schwierigkeiten habe, zu verstehen, wie optimierte Einstellungen für die Transcodierung festgelegt werden.

In den meisten Fällen beginnen Sie mit einer verlustfreien Datei (z. B. einer 50-MB-WAV-Datei) und wählen die Gebereinstellungen für die Qualität (VBR) oder die gewünschte Bitrate (CBR / ABR). Der Encoder führt dann seinen Hokuspokus aus (verwerfen unhörbare Informationen, Komprimierung usw.), wodurch Sie je nach den gewählten Einstellungen eine kleinere verlustbehaftete Datei erhalten. Für Argumente sagen wir vielleicht 3 MB für 128 kbs MP3, 5 bis 6 MB für eine VBR von höchster Qualität (dh höchste Einstellungen für Lame oder Qaac) und 7-8 MB für 320 kbs CBR.

In diesem Fall handelt es sich bei der Quelldatei jedoch um eine 5-MB-Opus-Datei mit 128 KBit / s. Der erste Schritt beim Transcoding besteht darin, die Datei zuerst zu decodieren (in einen PCM-Stream?) Und dann erneut im neuen Format zu codieren.

Also ist mein Verständnis richtig, dass die maximale Information in der Datei nicht mehr als 5 MB beträgt. Wenn Sie also nicht kodieren möchten (und wenn es nicht erforderlich ist, die Dateigröße zu verringern), sollte ich nur die VBR mit der höchstmöglichen Qualität oder möglicherweise eine hohe CBR ( 256 oder 320), um praktisch alle Informationen zu erfassen, die noch in der Opus-Datei vorhanden sind. Die resultierende Datei wäre auf jeden Fall nicht größer als 5 MB, da ich davon ausgehe, dass keine neuen Informationen erfunden / generiert werden können (ich werde am Wochenende einige Experimente durchführen, um dies zu testen).

Die erste Antwort scheint dies zu suggerieren.

2
Heh, schön, dass du meine alte Antwort gefunden hast. Ich habe es mit neuen Informationen aktualisiert. Als ich es 2013 geschrieben habe, war Opus relativ neu, aber jetzt wird es viel häufiger verwendet. slhck vor 5 Jahren 0
@slhck Deine Antwort war wirklich sehr nützlich! Aber wahrscheinlich ist Opus im Jahr 2013 weniger gereift als erwartet. Nicht in Bezug auf die Browserunterstützung, sondern in Bezug auf die Verwendung in eigenständigen Musikdateien (kein allgemeines / plattformübergreifendes Containerformat - zumindest nach Wikipedia). ..). Peter K. vor 5 Jahren 0
Ja, es wird eher in YouTube- und VoIP-Implementierungen verwendet. slhck vor 5 Jahren 0

2 Antworten auf die Frage

2
slhck

Im Allgemeinen würde ich empfehlen, die FFmpeg-Wiki- Seite zur AAC-Codierung zu lesen. Hier finden Sie Tipps, wie Sie die beste Qualität erreichen können. Dazu gehören:

  • Verwendung des libfdk_aacEncoders anstelle des eingebauten (der Encoder kann einen großen Qualitätsunterschied ausmachen!)
  • Verwendung von VBR - Es ist nicht erforderlich, die Geschwindigkeit oder das Abfallbit einzuschränken
  • Deaktivieren des Hochpassfilters, da standardmäßig einige hohe Frequenzen während der Konvertierung verloren gehen

Somit würde folgendes funktionieren:

ffmpeg -i input.opus -c:a libfdk_aac -vbr 5 -cutoff 18000 output.m4a 

Dies sollte für jedermann absolut transparent sein. Sie können sogar verwenden -vbr 4und prüfen, ob Sie den Unterschied erkennen können. Ich denke du wirst nicht.


Genauer gesagt, fragen Sie:

Und schließlich kann youtube-dl auch eine AAC-Datei mit 128 kbs herunterladen. (…) Aber würde die Transcodierung des Opus in AAC (…) diesen Qualitätsunterschied beibehalten oder würde die Transcodierung (…) Artefakte verursachen, so dass die Audioqualität (…) tatsächlich schlechter wäre?

Eine großartige Frage, die ich nicht beantworten kann, ohne einen formalen Hörtest durchzuführen.

Wenn Sie jedoch davon ausgehen, dass Stereo-AAC mit 128 Kbit / s mindestens von guter Qualität (aber nicht ausgezeichnet) ist, können Sie auf eine Konvertierung verzichten und diese direkt verwenden, wenn sie für Sie gut klingt. Ich denke, ich würde mir die originalen Opus- und AAC-Samples anhören, die Sie direkt heruntergeladen haben, und einen Blindtest durchführen. Können Sie den Unterschied zuverlässig erkennen? Wenn nein, verwenden Sie einfach AAC und speichern Sie die Konvertierung.

PS: Ich habe mir ein paar Musikclips von YouTube sowohl mit der Opus- als auch mit der AAC-Variante angehört, und Opus und ich persönlich mochten Opus besser - es schien etwas mehr Hochfrequenz-Räumlichkeit zu haben. Aber betrachten Sie das nicht als wissenschaftlich fundierte Schlussfolgerung!


Schließlich gibt es einen Thread, der über ein ähnliches Problem spricht, und hier glaubt ein Benutzer, dass die VBR-Codierung aggressivere psychoakustische Formen enthält, die bereits vorhandene Artefakte verbessern können, wenn eine verlustbehaftete Datei erneut codiert wird. Er kommt zu dem Schluss, dass ABR bei einer hohen Bitrate für solche Aufgaben möglicherweise besser geeignet ist.

Wenn jemand wissen möchte, wie hoch der Grenzwert für den benutzerdefinierten Tiefpassfilter ist (bei einer beliebigen Abtastrate von 44100 Hz): -f lavfi -i sine = f = 18000`. Verringern Sie die Einstellung, bis "Kreischender Anruf" hörbar ist oder bis Ihre Ohren bluten. In einem lauten Büro mit offenem Kopfhörer ist meine ~ 16100. LordNeckbeard vor 5 Jahren 0
@LordNeckbeard Wenn Sie den Befehl starten (zumindest auf meinem Mac), hören Sie ein knallendes Geräusch, was vermutlich auf den plötzlichen Beginn zurückzuführen ist. Sie kann mit `sine = f = 18000, afade = d = 0,1 'vermieden werden. slhck vor 5 Jahren 0
@slhck Danke für deinen Beitrag. Durch die Verwendung von Voreinstellungen (zB -vbr 5) "findet" der Encoder die optimale durchschnittliche Bitrate, um die Qualität zu erhalten. Ich verwende beim Rippen von Quellen (CD) Voreinstellungen, aber ich dachte, wenn die Quelle verlustbehaftet ist (Opus 128kbs), wäre das manuelle Einstellen von Parametern besser. Und was ist mit der Abtastrate? Stellen Sie 48Khz manuell wie in der Opus-Datei ein, oder behalten Sie die Standardeinstellung bei (was eine Neuabtastung bei 44.1Khz voraussetzt). Peter K. vor 5 Jahren 0
@PeterK Ja, VBR sorgt für optimale Geschwindigkeit und Qualität. Die Abtastrate sollte bei 48 kHz bleiben, sofern Sie keine andere festlegen. slhck vor 5 Jahren 0
@slhck Ich habe mir `libfdk_aac` angesehen, aber ich glaube nicht, dass ich die Fähigkeiten / Zeit habe, einen benutzerdefinierten ffmpeg-Build mit libfdk_aac zu erstellen. Ich gehe davon aus, dass ich "qaac" als Alternative verwenden könnte (entweder über die Befehlszeile oder mit fb2k). Aber dann muss ich noch die empfohlenen Einstellungen herausfinden. Auch für `qaac` gibt es viele Informationen zur Kodierung von der Quelle (CD oder verlustfrei), aber nicht viele Informationen für empfohlene Einstellungen, die auf verschiedenen verlustbehafteten Eingabedateien basieren. Peter K. vor 5 Jahren 0
@PeterK Welches Betriebssystem verwendest du? Bei "qaac" (das ich noch nie verwendet habe) würden Sie mit "--quality 2" und "--tvbr 127" die beste Qualität erzielen. Der Standard scheint 90 zu sein, so dass etwas dazwischen wahrscheinlich transparent ist. slhck vor 5 Jahren 0
@slhck Ich verwende Windows 10. Da "qaac" (im Grunde der Apple AAC-Encoder) sehr zu empfehlen ist (besser als "libfdk_aac" gemäß hydrogenaud.io) und einfacher zu bedienen ist, denke ich, dass ich diesen Weg einschlagen werde. Danke für die Einstellungsempfehlung. Ich habe auch meine ursprüngliche Frage bearbeitet, um den Hintergrund meiner Frage besser zu erklären und warum die Transcodierung für mich zu verwirrend ist (keinen technischen Audio- oder Codec-Hintergrund). Ihre Antwort scheint dieses Bauchgefühl zu bestätigen. Aber vielleicht irre ich mich ... Peter K. vor 5 Jahren 0
@PeterK Deine Annahmen sind korrekt! Sie können ohnehin nicht mehr Qualität erzeugen, als in der Originaldatei vorhanden ist. Die höchste VBR-Rate zu wählen bedeutet nur, das meiste davon zu erhalten. Möglicherweise erhalten Sie jedoch eine größere Datei, da dies letztendlich davon abhängt, wie viele Bits der Encoder für die Ausgabe auswählt. slhck vor 5 Jahren 0
@slhck Ich habe einige Tests mit verschiedenen Qualitätseinstellungen durchgeführt (ich habe ffmpeg / lame verwendet, um in mp3 zu konvertieren; ich weiß, dass aac im Allgemeinen besser ist als mp3 für niedrigere Bitraten, aber aac kann nicht auf meinem Autoradio abgespielt werden und ich nicht will fb2k installieren, um ein paar hundert Songs zu konvertieren). Source ist ein Pop-Song mit 3,6 MB (Opus 126 KB), -q: Eine 0 ergibt eine 7,1 MB-Datei, -q: eine 1 6,3 MB, -q: eine 2 5,3 MB. Auch wenn Opus bei der Kodierung effizienter ist, können Sie nicht sicher sein, ob die Dateigröße angemessen ist ... Peter K. vor 5 Jahren 0
@ PeterK Ich bin mir nicht sicher, ob ich deinen Punkt verstanden habe. Wollen Sie damit sagen, dass die Zunahme der Dateigröße nicht akzeptabel ist? slhck vor 5 Jahren 0
@slhck Nun, die Dateivergrößerung ist größer als ich erwartet hatte. Die Erklärung meines "Laien" ist, dass die Dekodierung von Opus (in PCM?) Rauschen / Interpolationen hinzufügt, und dass durch die Auswahl von v0 (oder gleichwertig) eine Menge dieser (ich nehme an, dass es nicht wesentlich ist) Informationen erneut codiert werden und im Speicher verbleiben neue MP3-Datei. Ich bin immer noch nicht klar, ob es in diesem Fall sinnvoll wäre, tatsächlich eine niedrigere Einstellung v1 oder v2 oder sogar v3 zu verwenden, so dass die vom Opus-Decoder hinzugefügten Informationen vom MP3-Encoder verworfen werden. Das bedeutet aber natürlich, dass der Encoder den Unterschied zwischen Rauschen und Audioinformationen ausmachen kann ... Peter K. vor 5 Jahren 0
@PeterK Ah, so funktioniert es nicht. Die Dekodierung ist verlustfrei. Es werden keine neuen Informationen hinzugefügt. Das Kodieren ist wie das Falten / Zerknittern eines Blattes Papier und das Dekodieren ist wie das Entfalten. Alle Informationen sind vorhanden, aber vielleicht etwas verzerrt (mit "Falten"), je nachdem, wie gut Sie sie falten können. MP3 ist weniger effizient, daher wird Ihre Ausgabe nie so gut komprimiert wie AAC. Oder wenn eine MP3-Datei die gleiche Größe wie AAC hat, wird sie sicherlich mehr Verzerrung haben. Daher würde ich erwarten, dass die Dateigröße mit MP3 steigt, und ich würde bei einer ziemlich hohen Qualitätseinstellung bleiben. slhck vor 5 Jahren 0
@slhck Danke für deine Hilfe und Einblicke. Also sollte ich vielleicht doch für AAC gehen und mir die Mühe machen, fb2k mit dem Apple AAC-Codec zu installieren. Daher kann ich für die gleiche resultierende Dateigröße eine höhere VBR-Qualitätseinstellung als für MP3 verwenden. Peter K. vor 5 Jahren 0
@PeterK Gern geschehen. Fühlen Sie sich frei zu fragen, falls Sie Fragen haben. slhck vor 5 Jahren 0
@slhck Bei Interesse gibt es auch eine Diskussion in den HA-Foren zu diesem Thema. Nicht sicher, ob es in der TOU von SU ist, einen Link zu einem anderen Forum hinzuzufügen. In jedem Fall hat jemand empfohlen, ABR zu verwenden, da das von (wahrer) VBR verwendete Psy-Modell "verwirrt" sein könnte, da die Quelle eine verlustbehaftete Datei ist. Peter K. vor 5 Jahren 0
@ PeterK Interessant! Bitte teilen Sie den Link und ich füge ihn der Antwort hinzu. slhck vor 5 Jahren 0
@slhck Hier geht es: [article] (https://hydrogenaud.io/index.php/topic,116040.0.html). Danke noch einmal ! Peter K. vor 5 Jahren 0
@ PeterK. Ahh, danke! Foren, in denen es schwierig ist, die relevanten Informationen zu finden :) (Ich neige dazu, mich in etwas zu verlieren, das kein Super User / Stack Overflow ist.) Ich habe in meinem Beitrag eine Erwähnung hinzugefügt. slhck vor 5 Jahren 0
0
Tetsujin

Nicht so sehr eine Antwort als ein bisschen "Expertenmeinung" für das, was es wert ist [ich bin ein Toningenieur, aber kein Typ für Codierung / Algorithmus]

Für iOS / Auto erhalten Sie bei iTunes ein Resample bei 128k AAC. Die Option befindet sich in iTunes selbst. Es werden neue Versionen nur für Ihre Geräte erstellt. Sie werden den Unterschied nie hören, insbesondere im Auto, und von Mobiltelefonen nur im Stillen Umgebung mit sehr teuren Kopfhörern.

Fenster niedergedrückt, um Platz zu sparen ...

enter image description here

Wenn Sie bei "Maximum" archivieren möchten, verwenden Sie Apple Lossless [ALAC].
Es wird nichts zurückbekommen, aber es wird nicht mehr verloren gehen.

Übrigens, iOS selbst kann jetzt Opus-Dateien abspielen (seit iOS 11) - aber ich weiß nicht, ob dies über iTunes oder nur als Streaming-Format erfolgt.

AAC kann nicht verlustfrei sein, meinst du ALAC? slhck vor 5 Jahren 0
Ich meine "Apple Lossless Encoder", also meine ich wahrscheinlich ALAC. [Ich habe doch gesagt, dass ich kein Techniker bin ;-) Behoben. Tetsujin vor 5 Jahren 0
Heh! Die Verwendung von ALAC würde Ihnen jedoch nur mit macOS (und vielleicht auch mit iOS? Ich weiß nicht mal ...) viel Kompatibilität geben. slhck vor 5 Jahren 0
Ich nahm an, dass Windows / IOS / Car im Wesentlichen eine iTunes-Umgebung sein würde. Ich denke, FLAC würde auch funktionieren, aber da iTunes es nicht mag, wäre es umgekehrt genauso. Übrigens, ich arbeite und archiviere normalerweise in WAV und verwende alles, was ich brauche - aber ich fange von vorne an, nicht von fremden Quellen ;-)) Tetsujin vor 5 Jahren 0
@Tetsujin Danke! Ich versuche, meine Musikbibliothek von verschiedenen Versionen einer Datei für verschiedene Spieler freizuhalten (und für das Auto muss ich die Musikdateien manuell auswählen und direkt aus meiner Bibliothek kopieren). Wenn ich den verlustlosen Weg gehen würde, würde ich lieber FLAC als für ALAC wählen. Die bevorzugte Einstellung (für Dateigröße und universelle Abspielbarkeit) ist jedoch die Verwendung von AAC (oder MP3). Peter K. vor 5 Jahren 0