Quais são as configurações do afconvert para a configuração de codificação do iTunes Plus AAC?

8

O desafio

Eu gostaria de converter uma grande coleção de arquivos WAV para AAC usando a configuração "iTunes Plus" no iTunes. O iTunes descreve essa configuração como:

128 kbps (mono) / 256 kbps (estéreo), 44,100 kHz, VBR, otimizado para MMX / SSE2.

Eu gostaria de automatizar esse processo de importação.

Tentativa e erro

o afconvert ferramenta de linha de comando pode converter entre formatos de arquivo de áudio. Eu tentei algumas configurações e o mais próximo que consegui é:

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

Então: seja verboso ( -v ), use o formato de dados AAC ( -d aac ), codifica a 256 kbps ( -b 256000 ), armazene no formato de arquivo de áudio Apple MPEG-4 ( -f m4af ), use a mais alta qualidade ( -q 127 ), use VBR restrito ( -s 2 ) e adicione dados do SoundCheck ao arquivo.

Eu também criei um m4a arquivo usando a configuração iTunes Plus.

o m4a arquivo criado por afconvert é aproximadamente do mesmo tamanho que o arquivo do iTunes; apenas 65536 bytes menores.

Resultados

Usando o afinfo ferramenta, eu comparei o arquivo gerado pelo iTunes para o arquivo gerado pelo afconvert. Existem duas diferenças no afinfo saída:

  1. O arquivo gerado pelo iTunes tem um audio data file offset de 131072, o de afconvert 65536. Isso explica a diferença no tamanho do arquivo
  2. De alguma forma, o arquivo gerado pelo iTunes tem diferentes sound check valores que o convertido por afconvert:

    • arquivo do 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 Arquivo:

      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
      

    Especialmente o sc peak amplitude msec e sc max perceived power msec valores diferem bastante. Estes são os mesmos arquivos de entrada, o que poderia causar essa diferença?

Questão

Existe uma maneira de obter resultados ainda mais próximos da configuração "iTunes Plus"?

rdvdijk
fonte

Respostas:

6

Eu tive exatamente a mesma obsessão, e acabei criando um importador FLAC-to-iTunes que decodifica arquivos FLAC para WAV e os importa para o iTunes usando o próprio codificador do iTunes: https://github.com/cbguder/FLAC2iTunes

Deve ser bastante fácil modificar o FLAC2iTunes para suportar a entrada direta do WAV.

Quanto aos valores da passagem de som, comparei o iTunes, XLD e afconvert codificando arquivos WAV para AAC e decodificando-os de volta para WAV e comparando os dados de áudio decodificados. Eu também comparei saídas afinfo para os arquivos codificados. Embora os valores souncheck sejam diferentes para cada arquivo, os WAVs decodificados são exatamente os mesmos, portanto, mesmo que você use XLD ou afconvert, as chances são de que os arquivos resultantes soem exatamente iguais.

Para afconvert, usei os parâmetros sugeridos pela Apple no " Masterizado para o iTunes "guia, com um arquivo CAF intermediário:

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

Para o XLD, usei estas configurações:

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
Can Berk Güder
fonte
Obrigado, eu não tentei descompactar os dois arquivos AAC e comparar os dois arquivos decodificados. Eu ainda não tenho certeza porque o sound check os valores seriam diferentes e o que eles realmente significam. Eu aceito sua resposta. (E: eu realmente tenho muitos arquivos FLAC também ;-))
rdvdijk
3

Você pode usar o droplet "Mastering For iTunes" disponível no site da Apple.

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

Eu precisei modificar o script para rodar em Yosemite / El Capitan, mas é bastante trivial:

  • Mostrar o conteúdo do pacote do aplicativo no Finder (Aplicativos / Utilitários / Master para o iTunes Droplet).
  • Navegue até Conteúdo / Recursos / Scripts
  • Abra main.scpt
  • Atualize as linhas de comparação de versão do sistema para "10.10" (há duas linhas que precisam dessa alteração):

    if systemVersion is less than "10.10" then

  • Salvar main.scpt

Agora você pode simplesmente arrastar e soltar seus arquivos FLAC ou WAV no droplet e ele criará um arquivo CAFF intermediário seguido pelo arquivo iTunes Plus AAC.

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

Para os interessados, parece que as sub-rotinas afconvert usam os seguintes comandos (note que eles são retirados do contexto do código e não serão executados como estão):

  • WAV / FLAC para CAFF:

    • se o sampleRate for maior que "44100":

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

    • outro

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

  • CAFF para AAC

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

niagarajohn
fonte