Jakie są ustawienia konwersji dla ustawienia kodowania AAC iTunes Plus?

8

Wyzwanie

Chciałbym przekonwertować dużą kolekcję plików WAV do AAC przy użyciu ustawienia „iTunes Plus” w iTunes. iTunes opisuje to ustawienie jako:

128 kb / s (mono) / 256 kb / s (stereo), 44,100 kHz, VBR, zoptymalizowany dla MMX / SSE2.

Chciałbym zautomatyzować ten proces importowania.

Próba i błąd

Narzędzie afconvertwiersza polecenia może konwertować między formatami plików audio. Wypróbowałem kilka ustawień i najbliższe, jakie mogłem uzyskać, to:

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

Więc: bądź verbose ( -v), użyj formatu danych AAC ( -d aac), koduj z prędkością 256 kb / s ( -b 256000), przechowuj w formacie plików MP3 MPEG-4 Audio Apple ( -f m4af), używaj najwyższej jakości ( -q 127), używaj ograniczenia VBR ( -s 2) i dodaj SoundCheck dane do pliku.

Utworzyłem również m4aplik przy użyciu ustawienia iTunes Plus.

m4aPlik stworzony przez afconvertto o tym samym rozmiarze co plik iTunes; tylko 65536 bajtów mniejszych.

Wyniki

Za pomocą tego afinfonarzędzia porównałem plik wygenerowany przez iTunes z plikiem wygenerowanym przez afconvert. Istnieją dwie różnice w danych afinfowyjściowych:

  1. Plik wygenerowany przez iTunes ma audio data file offset131072, ten przez afconvert65536. To wyjaśnia różnicę w rozmiarze pliku
  2. Jakoś plik wygenerowany przez iTunes ma inne sound checkwartości niż ten przekonwertowany przez afconvert:

    • plik iTunes:

      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 plik:

      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
      

    Zwłaszcza wartości sc peak amplitude mseci sc max perceived power msecbardzo się różnią. Są to dokładnie te same pliki wejściowe, co może spowodować tę różnicę?

Pytanie

Czy istnieje sposób na zbliżenie wyników do ustawienia „iTunes Plus”?

rdvdijk
źródło

Odpowiedzi:

6

Miałem dokładnie tę samą obsesję i ostatecznie stworzyłem importera plików FLAC do iTunes, który dekoduje pliki FLAC do WAV i importuje je do iTunes za pomocą własnego kodera iTunes: https://github.com/cbguder/FLAC2iTunes

Modyfikacja FLAC2iTunes powinna być wystarczająco łatwa, aby obsługiwała bezpośrednie wejście WAV.

Jeśli chodzi o wartości kontroli dźwięku, porównałem iTunes, XLD i afconvert, kodując pliki WAV do AAC i dekodując je z powrotem do WAV i porównując dekodowane dane audio. Porównałem również wyniki afinfo dla zakodowanych plików. Podczas gdy wartości sounheck są różne dla każdego pliku, dekodowane pliki WAV są dokładnie takie same, więc nawet jeśli używasz XLD lub afconvert, istnieje prawdopodobieństwo, że pliki wynikowe będą brzmiały dokładnie tak samo.

Do konwersji użyłem parametrów sugerowanych przez Apple w przewodniku „ Mastered for iTunes ” z pośrednim plikiem CAF:

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

W przypadku XLD użyłem tych ustawień:

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
Czy Berk Güder
źródło
Dzięki, nie próbowałem dekompresować dwóch plików AAC i porównywać dwóch zdekodowanych plików. Nadal nie jestem pewien, dlaczego sound checkwartości byłyby inne i co one właściwie oznaczają. Przyjmuję twoją odpowiedź. (I: Właściwie mam też dużo plików FLAC ;-))
rdvdijk
2

Możesz użyć kropli „Mastering For iTunes” dostępnej na stronie Apple.

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

Musiałem zmodyfikować skrypt, aby działał na Yosemite / El Capitan, ale jest to dość trywialne:

  • Pokaż zawartość pakietu aplikacji w Finderze (Aplikacje / Narzędzia / Master dla iTunes Droplet).
  • Przejdź do Spis treści / Zasoby / Skrypty
  • Otwórz main.scpt
  • Zaktualizuj wersję systemu porównaj linie do „10.10” (są dwie linie, które wymagają tej zmiany):

    if systemVersion is less than "10.10" then

  • Zapisz main.scpt

Teraz możesz po prostu przeciągnąć i upuścić pliki FLAC lub WAV na kroplę, aby utworzyć pośredni plik CAFF, a następnie plik AAC iTunes Plus.

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

Dla zainteresowanych wygląda na to, że podprogramy afconvert używają następujących poleceń (zwróć uwagę, że są one wyciągnięte z kontekstu kodu i nie będą działać tak, jak są):

  • WAV / FLAC do CAFF:

    • jeśli parametr sampleRate jest większy niż „44100”:

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

    • jeszcze

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

  • CAFF do AAC

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

niagarajohn
źródło