Convertendo FLAC para MP4 AAC
Publicado por Nighto e arquivado em Linux, Música, TecnologiaApesar de utilizar o Symbian OggPlay para tocar arquivos OGG e FLAC no meu N95, a não-utilização do player de música padrão da Nokia me impedia de usufruir de certas funcionalidades, como o scrobbling para o Last.fm (com o Mobbler), o AVRCP (controle das faixas com o fone bluetooth), integração com o Nokia Sports Tracker etc. Assim, resolvi converter minhas músicas em FLAC para AAC.
Por que AAC?
Ao contrário do MP3, o modelo de licenciamento do formato AAC é menos pior, permitindo a distribuição de músicas no formato, embora ainda haja a necessiade de (quebra de) patentes para binários dos codecs (codificadores e decodificadores). Além disso, a compressão é melhor que a do MP3, permitindo arquivos menores com qualidade semelhante.
Na verdade, o AAC foi criado para ser o sucessor do MP3. Todos os tocadores de música decentes o suportam, como iPods, a grande maioria dos celulares, videogames, dentre outros, tirando os players chineses MPn. Além disso, ele é o formato utilizado no ISDB-T(b), de forma que provavelmente esses arquivos tocarão (ou poderiam tocar…) nos decoders de TV digital.
Para criar e tocar arquivos AAC no Linux, existe a dupla FAAC e FAAD2 (Free Advanced Audio Coder / Decoder). Para utilizá-los no Ubuntu, basta instalar os pacotes flac, faac e ubuntu-restricted-extras.
Os arquivos AAC possuem a extensão .aac, mas geralmente são encapsulados pelo container MPEG4 (para poder conter metadados), possuindo a extensão .mp4 ou .m4a.
Script flac2mp4
Assim sendo, criei um script para converter minhas músicas FLAC para MP4. Sua utilização é: flac2mp4 arquivo.flac capa.jpg A imagem é opcional. Segue o código do script:
#!/bin/sh echo "" echo "flac2mp4 - script de conversão de áudio FLAC para MP4 (AAC)" echo "Por Arlindo \"Nighto\" Pereira" echo "" if [ "$2" ] then flac --totally-silent -d -c "$1" | faac - -o "$(pwd)/$(basename "$1" .flac).m4a" \ --title "$(metaflac --show-tag=TITLE "$1" | sed 's/TITLE=//g')" \ --artist "$(metaflac --show-tag=ARTIST "$1" | sed 's/ARTIST=//g')" \ --album "$(metaflac --show-tag=ALBUM "$1" | sed 's/ALBUM=//g')" \ --year "$(metaflac --show-tag=DATE "$1" | sed 's/DATE=//g')" \ --track "$(metaflac --show-tag=TRACKNUMBER "$1" | sed 's/TRACKNUMBER=//g')" \ --genre "$(metaflac --show-tag=GENRE "$1" | sed 's/GENRE=//g')" \ --cover-art "$2" elif [ "$1" ] then flac --totally-silent -d -c "$1" | faac - -o "$(pwd)/$(basename "$1" .flac).m4a" \ --title "$(metaflac --show-tag=TITLE "$1" | sed 's/TITLE=//g')" \ --artist "$(metaflac --show-tag=ARTIST "$1" | sed 's/ARTIST=//g')" \ --album "$(metaflac --show-tag=ALBUM "$1" | sed 's/ALBUM=//g')" \ --year "$(metaflac --show-tag=DATE "$1" | sed 's/DATE=//g')" \ --track "$(metaflac --show-tag=TRACKNUMBER "$1" | sed 's/TRACKNUMBER=//g')" \ --genre "$(metaflac --show-tag=GENRE "$1" | sed 's/GENRE=//g')" else echo "Entre com o nome do arquivo para converter:" echo "flac2mp4 arquivo.flac [capa-do-disco]" echo "" exit 1 fi
Para utilizar o script, salve-o com o nome de flac2mp4 e, num terminal, digite: chmod +x flac2mp4 && sudo mv flac2mp4 /usr/local/bin. Para converter todas as músicas de um disco (todos os arquivos de um diretório), pode utilizar da seguinte forma:
for i in *.flac ; do flac2mp4 "$i" capa.jpg ; done
Fontes:
- Ubuntu Forums: From .mp3 to .m4a conversion
- Maikimo.net – Flickin’ Flackin’ eargasms! (FLAC audio rocks)
- macosxhints.com – A suite of shell scripts for FLACs and MP3s
Edit: troquei a extensão do arquivo gerado de mp4 para m4a para ficar semelhante ao arquivo gerado pelo iTunes ao ripar CDs e adicionei os pacotes flac e faac na lista de pacotes para utilizar o script no Ubuntu. (Em 28/02/2010)
Edit: adicionei uma subrotina de verificação para utilização sem imagem de capa de disco. (Em 01/03/2010)
Tags:aac, codec, faac, flac, Linux, m4a, mp4, n95, nokia
Posts (RSS)
Valeu pela dica!
O final é praticamente um álbum do g0!
=D
[...] como o flac2mp4, você pode converter vários arquivos num diretório com for i in *.flac ; do flac2mp4 "$i" [...]