Resolvido - conversão de arquivos FLAC para m4a

Iniciado por olinto, 04 de Agosto de 2017, 16:42

tópico anterior - próximo tópico

olinto

Olá pessoal,

Estou com uUma dúvida sobre conversão de arquivos. Tenho arquivos flac e quero passar para m4a escolhendo o bitrate (320, 256, 192 ...). Li vários blogs sobre o assunto mas não cheguei à resposta que queria.
Com:

for f in ./*.flac; do avconv -i "$f" -c:a alac "${f%.*}.m4a"; done

consigo passar os arquivos flac de um diretório para m4a sem compressão. Os arquivos ficam do mesmo tamanho. Tentei várias mudanças mas nada.
Alguém sabe como determinar a taxa de bits? Uso Ubuntu 16.04. Obrigado.

Antônio Olinto
Antônio Olinto
Linux User 455618
Ubuntu User 31203

galactus

Você vai achar o que você está querendo no Guia de Codificação Avançada do AAC:

https://trac.ffmpeg.org/wiki/Encode/AAC

Boa sorte!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

druidaobelix

#2
Se usar o codec ALAC (Apple Lossless Codec de Áudio) não vai reduzir o tamanho, pois ele foi feito pela Apple exatamente para não perder qualidade, não vai fazer diferença se especificar bitrate.

Se a qualidade não for realmente importante então use o codec AAC (Advanced Audio Coding), vai reduzir enormemente o tamanho e talvez também a qualidade.

Evidentemente é um pouco mais complexo que isso, mas aí precisa estudar mais a fundo os conceitos de cada uma dessas coisas e entender realmente o que significam.

Como não entendo nada disso e tenho ouvido musical de surdo, pra mim não faz diferença alguma, ainda mais se estiver ouvindo num computador e seu mirrado sistema de som, que não é exatamente um poderoso home theater de zilhões de watss RMS de potência, porém os especialistas e sobretudo aqueles dos quais se diz terem ouvido absoluto dizem que sim, que faz muita diferença.

Dê uma lida nesse link, onde há considerações interessantes sobre qualidade e ainda arquivos flac de exemplos que podem ser testados e comparados:

http://www.eclassical.com/pages/24-bit-faq.html

Já que estamos num Linux, então usando o ffmpeg puro, como exemplo pode ser feito:

ffmpeg -i input.flac -acodec aac -b:a 128k -strict -2 output.m4a


Apenas para ilustrar, usando o arquivo de exemplo lá da página referência indicada, se obtém:

BIS1447-002-flac_24.flac.flac
originalmente ele tem:
tamanho: 106,2 MB (106.172.160 bytes)
taxa de amostra: 88200Hz
taxa de bits: 1622kbps

Se usar o codec alac:
tamanho: 111,2 MB (111.213.644 bytes)
taxa de amostra: 88200 Hz
taxa de bits: 2125 kbps

Se usar o codec aac com bitrate 256k:
tamanho: 13,8 MB (13.753.845 bytes)
taxa de amostra: 88200 Hz
taxa de bits: 259kbps

Se usar o codec aac com bitrate 128k:
tamanho: 6,9 MB (6.865.882 bytes)
taxa de amostra: 88200 Hz
taxa de bits: 128 kbps

Ou seja, vamos de 106,2MB para 6,9MB, o que é uma redução e tanto no tamanho, uma proporção cerca de 15 vezes menor.
Agora, para quem conhece realmente som, é uma questão de avaliar a qualidade.
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

olinto

Caros galactus e druidaobelix

Muito obrigado pelas repostas. O site https://trac.ffmpeg.org/wiki/Encode/AAC é ótimo.

Acabei utilizando o comando abaixo para fazer a conversão em lote.

for f in ./*.flac; do ffmpeg -i "$f" -strict -2 -b:a 256k "${f%.*}.m4a"; done

Fiquei interessado no assunto depois de ler sobre a "morte" do mp3 https://www.sciencealert.com/the-mp3-is-officially-dead-after-its-creators-abandoned-it. Li algumas coisas sobre as vantagens do aac/m4a e resolvi testar.

Um grande abraço!
Antônio Olinto
Linux User 455618
Ubuntu User 31203

druidaobelix

Citação de: olinto online 05 de Agosto de 2017, 12:23
Acabei utilizando o comando abaixo para fazer a conversão em lote.
for f in ./*.flac; do ffmpeg -i "$f" -strict -2 -b:a 256k "${f%.*}.m4a"; done

Excelente, um comando de lote, mais genérico, sempre facilita a vida na prática efetiva de conversões.  :)

A única razão para se usar o formato m4a é se tiver um dispositivo Apple que o requeira exclusivamente, especialmente o IPhone.

Também precisaria confirmar se essa transformação de flac para m4a usando o codec AAC funciona de fato em qualquer equipamento da Apple.

No comando que você postou para processar em lote observo que excluiu a explícita especificação do codec, usando apenas o parâmetro  -strict -2  que é necessário para ativar o AAC, nada obstante, esse codec continua implicitamente sendo utilizado, como se pode observar no relatório da conversão:

Stream #0:1: Audio: aac (libvo_aacenc) (mp4a / 0x6134706D), 88200 Hz, stereo, s16 (24 bit), 256 kb/s
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

#5
Eita!, fiz um teste aqui usando um IPhone 7 Plus e um IPhone 5 e em ambos não funcionou o arquivo convertido m4a com o codec AAC.  :(

A primeira dificuldade foi que sequer consegui transferir pelo WhatsApp, que não reconhece o formato m4a e não deixa subir e enviar, então precisou ir por email, do computador para o IPhone, baixando lá neles, mas uma vez baixado nos IPhones, apenas não funcionou, não toca nada.

Depois vou testar também num computador da Apple, tenho um aqui, mas ele não está imediatamente disponível.

Parece que estamos diante de uma não solução.  :-[
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.

druidaobelix

Citação de: druidaobelix online 05 de Agosto de 2017, 17:22
Depois vou testar também num computador da Apple, tenho um aqui, mas ele não está imediatamente disponível.

Testado num Mac Book Air da Apple, com sistema operacional atual, funcionou a execução do .m4a convertido com o codec AAC.
Mas isso de certa forma já era esperado que no computer funcionasse, porém no IPhone nada de nada, não sai do lugar.  :(

www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.