Was sind die Afconvert-Einstellungen für die iTunes Plus AAC-Codierungseinstellung?

8

Die Herausforderung

Ich möchte eine große Sammlung von WAV-Dateien mit der Einstellung "iTunes Plus" in iTunes in AAC konvertieren. iTunes beschreibt diese Einstellung wie folgt:

128 kbps (Mono) / 256 kbps (Stereo), 44,100 kHz, VBR, optimiert für MMX / SSE2.

Ich möchte diesen Importvorgang automatisieren.

Versuch und Irrtum

Das afconvertBefehlszeilentool kann zwischen Audiodateiformaten konvertieren. Ich habe ein paar Einstellungen ausprobiert und die nächste, die ich bekommen konnte, ist:

afconvert -v -d aac -b 256000 -f m4af -q 127 -s 2 --soundcheck-generate input.wav output.m4a

Also: seien Sie ausführlich ( -v), verwenden Sie das AAC-Datenformat ( -d aac), codieren Sie mit 256 kbps ( -b 256000), speichern Sie es im Apple MPEG-4-Audiodateiformat ( -f m4af), verwenden Sie die höchste Qualität ( -q 127), verwenden Sie VBR Constrained ( -s 2) und fügen Sie SoundCheck hinzu Daten in die Datei.

Ich habe auch eine m4aDatei mit der iTunes Plus-Einstellung erstellt.

Die von erstellte m4aDatei hat afconvertungefähr die gleiche Größe wie die iTunes-Datei. nur 65536 Bytes kleiner.

Ergebnisse

Mit dem afinfoTool habe ich die von iTunes generierte Datei mit der von iTunes generierten Datei verglichen afconvert. Es gibt zwei Unterschiede in der afinfoAusgabe:

  1. Die von iTunes generierte Datei hat eine audio data file offsetvon 131072, die von afconvert65536. Dies erklärt den Unterschied in der Dateigröße
  2. Irgendwie hat die von iTunes generierte Datei andere sound checkWerte als die von afconvert:

    • iTunes-Datei:

      sc ave perceived power coeff             343 407
      sc max perceived power coeff             6873 8940
      sc peak amplitude msec                   154389 194861
      sc max perceived power msec              194025 194025
      sc peak amplitude                        31129 30928
      
    • afconvert Datei:

      sc ave perceived power coeff             341 388
      sc max perceived power coeff             6087 4157
      sc peak amplitude msec                   212509 152323
      sc max perceived power msec              215481 185017
      sc peak amplitude                        31024 29857
      

    Besonders die sc peak amplitude msecund sc max perceived power msecWerte unterscheiden sich sehr. Dies sind genau die gleichen Eingabedateien. Was könnte diesen Unterschied verursachen?

Frage

Gibt es eine Möglichkeit, Ergebnisse noch näher an die Einstellung "iTunes Plus" heranzuführen?

rdvdijk
quelle

Antworten:

6

Ich hatte genau die gleiche Besessenheit und erstellte schließlich einen FLAC-zu-iTunes-Importer, der FLAC-Dateien in WAV dekodiert und sie mit dem iTunes-eigenen Encoder in iTunes importiert: https://github.com/cbguder/FLAC2iTunes

Es sollte einfach genug sein, FLAC2iTunes so zu ändern, dass es direkte WAV-Eingaben unterstützt.

Bei den Soundcheck-Werten habe ich iTunes, XLD und afconvert verglichen, indem ich WAV-Dateien in AAC codiert und sie wieder in WAV decodiert und die decodierten Audiodaten verglichen habe. Ich habe auch afinfo-Ausgaben für die codierten Dateien verglichen. Während die Souncheck-Werte für jede Datei unterschiedlich sind, sind die decodierten WAVs genau gleich. Selbst wenn Sie XLD oder afconvert verwenden, ist es wahrscheinlich, dass die resultierenden Dateien genau gleich klingen.

Für die Konvertierung habe ich die von Apple im Handbuch " Mastered for iTunes " vorgeschlagenen Parameter mit einer CAF-Zwischendatei verwendet:

afconvert source.wav intermediate.caf -d 0 -f caff --soundcheck-generate
afconvert intermediate.caf -d aac -f m4af -u pgcm 2 --soundcheck-read -b 256000 -q 127 -s 2 final.m4a

Für XLD habe ich folgende Einstellungen verwendet:

Format: MPEG-4 AAC
Mode: VBR (Constrained)
Encoder Quality: Max
Sample Rate: Auto
Target bitrate: 256 kbps
Add gapless information for iTunes: checked
Write accurate bitrate information: checked
Kann Berk Güder
quelle
Vielen Dank, ich hatte nicht versucht, die beiden AAC-Dateien zu dekomprimieren und die beiden dekodierten Dateien zu vergleichen. Ich bin mir immer noch nicht sicher, warum die sound checkWerte unterschiedlich sind und was sie tatsächlich bedeuten. Ich werde deine Antwort akzeptieren. (Und: Ich habe tatsächlich auch viele FLAC-Dateien ;-))
rdvdijk
2

Sie können das auf der Apple-Website verfügbare Droplet "Mastering For iTunes" verwenden.

http://www.apple.com/itunes/mastered-for-itunes/

Ich musste das Skript ändern, um es auf Yosemite / El Capitan auszuführen, aber es ist ziemlich trivial:

  • Zeigen Sie den Paketinhalt der App im Finder an (Anwendungen / Dienstprogramme / Master für iTunes Droplet).
  • Navigieren Sie zu Inhalt / Ressourcen / Skripte
  • Öffnen Sie main.scpt
  • Aktualisieren Sie die Systemversion und vergleichen Sie die Zeilen mit "10.10" (es gibt zwei Zeilen, die diese Änderung benötigen):

    if systemVersion is less than "10.10" then

  • Speichern Sie main.scpt

Jetzt können Sie Ihre FLAC- oder WAV-Dateien einfach per Drag & Drop auf das Droplet ziehen und eine CAFF-Zwischendatei erstellen, gefolgt von der iTunes Plus AAC-Datei.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Für Interessenten sieht es so aus, als würden die afconvert-Subroutinen die folgenden Befehle verwenden (beachten Sie, dass diese aus dem Kontext des Codes herausgezogen werden und nicht wie sie sind ausgeführt werden):

  • WAV / FLAC zu CAFF:

    • wenn die sampleRate größer als "44100" ist:

    afconvert -d LEF32@44100 -f caff --soundcheck-generate --src-complexity bats -r 127

    • sonst

    afconvert -d 0 -f caff --soundcheck-generate

  • CAFF zu AAC

    afconvert -d aac -f m4af -u pgcm 2 --soundcheck-read -b 256000 -q 127 -s 2

Niagarajohn
quelle