bulk / batch converter arquivos mp3 para ogg via linha de comando?

44

é possível converter mp3 para ogg via linha de comando?

Gostaria apenas de converter rapidamente meus arquivos mp3 em ogg para poder reproduzi-los no firefox sem problemas.

chrisjlee
fonte
firefox deve reproduzir arquivos mp3 muito bem
mchid

Respostas:

37

Procurando por pacotes correspondentes ao ogg, encontrei o dir2ogg que parece ser exatamente o que você deseja. Somente

sudo apt-get install dir2ogg
dir2ogg -r /path/to/mp3s/

E localiza e converte recursivamente todos os arquivos mp3 em /path/to/mp3s/para ogg (assumindo que eu li o manual corretamente).

Geirha
fonte
30

Use uma combinação de FFMPEG e manipulação de string .

Mude para a pasta onde estão os seus mp3:

cd mp3folder

Um exemplo é usar um loop "for" simples:

for file in *.mp3
  do ffmpeg -i "${file}" "${file/%mp3/ogg}"
done

As aspas duplas impedem que espaços nos nomes de arquivos sejam tratados como 'novas linhas'.

O ffmpeg tem várias opções para incluir na conversão, como codecs, taxa de bits, tamanho da amostra, estéreo / mono, etc ... A descrição acima é a conversão mais genérica com as configurações padrão.

SaultDon
fonte
Excelente. dir2ogg não funcionou no ofegante, mas esta resposta funcionou como um encanto
Onimusha
O dir2ogg também não funcionou para mim, mas eu estava convertendo m4a -> ogg. <a href=" linuxquestions.org/questions/linux-general-1/… "title= linuxquestions.org"> lq </a> mas o loop for acima funcionou (substituindo ffmpeg por avconv). Ao converter m4a / mp3 em ogg com o processo acima, o tamanho do arquivo aumenta 9 vezes, no entanto, se você primeiro converter m4a para mp3 e depois mp3 para ogg, o tamanho do arquivo será apenas 4x maior. <pre> <code> avconv -i "ManjusriMantra.m4a" " ManjusriMantra.mp3 "wait avconv -i" ManjusriMantra.mp3 "" ManjusriMantra.ogg "<code> <pre>
afc888ny
isso funcionou para mim: ffmpeg -i sound.mp3 -c:a libvorbis -q:a 10 sound.oggconfiguração de qualidade mais alta, ainda notavelmente pior que o original. As configurações padrão não funcionaram para mim (no Cygwin, então me processe :)), mas esta pergunta tinha boas informações: superuser.com/questions/273797/convert-mp3-to-ogg-vorbis
Kai Carver
19

Tenha cuidado com as conversões de MP3, M4A, etc. para OGG, pois o resultado pode parecer ruim!

Aviso : MP3 e OGG são formatos com perdas , ao contrário de WAV ou FLAC. Isso significa que eles alcançam sua compressão em grande parte jogando fora informações de áudio que são imperceptíveis ao ouvido humano (chamadas psicoacústica [wikipedia] )

Quando você codifica (transcodifica) de um formato com perda para outro, a maioria desses bits psicoacoustically redundantes já se foram, portanto a qualidade da transcodificação será prejudicada e poderá ser "audível" no resultado. Portanto, não é recomendável fazer essas conversões, a menos que seja absolutamente necessário.


Minimizar o efeito se você fizer isso, escolhendo uma maior taxa de bits de destino do que a fonte de taxa de bits

Se você fizer essa conversão de MP3 para OGG, poderá minimizar a chance de artefatos (baixa qualidade) usando uma taxa de bits de destino mais alta que a taxa de fonte , por exemplo, se seus MP3s estiverem em 128 kbps, tente usar Ogg em -q7(nível de taxa de bits variável) 7), que geralmente fica em torno de ~ 200 kbps.

Você pode passar a -qopção para dir2ogg (disponível nos repositórios como @geirha mencionado), que deve fazer o que você deseja.

ish
fonte
10

você pode usar o programa avconv a gpl, fiz um shell para exemplificar (execute-o na pasta com os arquivos .mp3):

#!/bin/bash
if hash avconv > /dev/null; then
    for file in *.mp3
        do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
    done
else
    echo "avconv not found"
fi

ou uma versão mais simples, sem validação da instalação do avconv:

#!/bin/bash
for file in *.mp3
    do avconv -i "${file}" "`echo ${file%.mp3}.ogg`";
done
ademar111190
fonte
NOTA: O pacote avconv é uma ramificação / fork recente do ffmpeg , com sintaxe e recursos semelhantes.
David6
NOTA 2: ffmpeg foi oficialmente reprovado e menciona explicitamente que você deve usar avconv.
ashes999
3

A análise / substituição de mp3 por ogg está incorreta. O formato correto deve ser:

for file in *.mp3;

   do ffmpeg -i "${file}" -acodec libvorbis "${file%mp3}ogg";

done
John Jacq
fonte
2

Aqui está um usando o mplayer. Acho que isso é mais rápido que o avconv. Embora o firefox deva reproduzir arquivos mp3 nativamente.

#!/bin/bash
for f in *.mp3; do
 newname=`echo $f | tr ' ' '_' `
 mv "$f" $newname
 f=$newname
 mplayer $f -novideo -ao pcm:file=tmp.wav
 lame -V 0 -q 0 tmp.wav ${f/.mp3/.ogg}
 rm -f tmp.wav
done
mchid
fonte
1

Caso você esteja usando apenas áudio, use o código abaixo [caso contrário, o FF não reproduz o .ogg]

for file in *.mp3;
   do ffmpeg -i "${file}" -acodec libvorbis "${file/%mp3/ogg}"; 
done
Arup Bhanja
fonte
1

Há também conversor de som . Ele suporta GUI e CLI e pode executar transformações em massa nos dois modos.

zakkak
fonte
0

Parece que isso pode resolver seu problema http://www.perturb.org/display/entry/687/

Garry Cairns
fonte
Você pode elaborar o que é "isso"? Seria adicionar mais contexto para a sua resposta e melhorar a sua usabilidade se o link que você referência foram a desaparecer um dia =)
SaultDon
Estava indo fazer o que você sugere, mas depois vi a resposta de Geirha, que parece muito melhor do que a minha, então eu votei nele.
Garry Cairns