Convertendo wma para mp3 em massa sem alterar o diretório

8

Tenho milhares de faixas de música no formato WMA desde quando eu costumava usar o Windows Media Player para copiar CDs. Agora estou tendo problemas para reproduzi-los no meu desktop Linux no trabalho.

Existe uma boa solução (para Windows ou Linux) para converter todos os WMAs em MP3s e deixá-los nos mesmos diretórios de antes? Tentei usar o iTunes para fazer isso, mas ele começou a criar novos diretórios para armazenar todas as faixas convertidas, o que eu não quero.

Eddy
fonte
11
No Linux (que distro, a propósito?) Alguma combinação find -execdire ffmpegdeve ser feita, mas executarei alguns testes antes de postar uma resposta.
William Jackson
2
Lembre-se de que sempre que você converte entre formatos com perda, você perde qualidade. Se a perda de qualidade é audível depende da qualidade original, do codificador que você está usando para a transcodificação, do equipamento de reprodução e dos ouvidos. Se fosse eu, eu tentaria copiar novamente os CDs (se possível) em vez de transcodificar. Mesmo sabendo que isso leva muito mais tempo. Você também pode considerar armazenar seus CDs copiados em um formato sem perdas (o FLAC é o meu favorito, mas existem outros) e transcodificar isso para MP3 no seu MP3 player portátil, etc. Isso, obviamente, requer mais espaço em disco.
Flimzy
@ William: No trabalho eu uso o openSUSE, em casa eu uso o linux mint (ubuntu) e o windows 7. Vou precisar verificar o ffmpeg quando tiver tempo e ver se consigo escrever um script bash ou algo assim. Se você postar uma resposta que funcione, eu irei marcar isso
Eddy
@ Limlimzy: Vou tentar converter algumas faixas e verificar de ouvido se percebo a perda de qualidade. Eu não sou um audiófilo então eu suspeito que provavelmente será ok para mim, mas é melhor prevenir do que remediar suponho
Eddy
Eu uso DB PowerAmp Music Converter para isso, software incrível, mas não é livre (licença mp3 obrigatório) ... dbpoweramp.com/dmc.htm
Moab

Respostas:

6

Se você tiver milhares de arquivos, isso levará uma eternidade.

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k -map_metadata 0:s:0 {}.mp3 \;

(Versões mais antigas do ffmpeg pode precisar -map_meta_data, em vez de -map_metadata, 0:0em vez de 0:s:0.)

Eu testei isso no Ubuntu 16.04. Se você ainda não o fez, precisará instalar os pacotes ffmpege libavcodec-extra-52.

Inicie este comando no diretório pai que contém todos os seus arquivos WMA. Ele procurará em todos os subdiretórios por qualquer arquivo com uma .wmaextensão e tentará convertê-lo para MP3. Se o arquivo de origem for nomeado Awesome Song.wma, o novo arquivo estará Awesome Song.wma.mp3e estará no mesmo diretório que o arquivo de origem.

Se você normalmente usa uma taxa de bits maior ou menor que 192k, altere o -ab 192ksinalizador para o que quiser.

William Jackson
fonte
1

Este sinalizador adicionado informará ao ffmpeg para tentar preservar as tags ID3:

find . -iname "*.wma" -execdir ffmpeg -i {} -ab 192k **-map_metadata 0:0** {}.mp3 \;
normod
fonte
1

Este encontra os arquivos WMA, converte-os para MP3 com um nome de extensão limpo em .mp3vez de .wma.mp3e exclui o arquivo antigo. Isso foi testado para funcionar no Fedora 19 ao pesquisar arquivos WMA com 150 GB de arquivos organizados por artist/album/<disk number>/file.

find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;
Randell
fonte
Funciona em um Mac, parece preservar alguns metadados também. Embora eu tenha recebido muitos Queue input is backward in time [mp3 @ 0x7fbffb02ba00] Application provided invalid, non monotonically increasing dts to muxer in streamavisos.
adib