Como extrair áudio de DVDs no muque
Referência: Ubuntu. Usando MPlayer, FFmpeg e LAME.
Senta que lá vem história...
Esse exemplo leva em conta um DVD com apenas um título (
No script acima, o MPlayer busca direto da unidade óptica. Se for um DVD comercial, você precisa ter instalado o pacote
Caso queira usar uma pasta no HD contendo a estrutura de um DVD (VIDEO_TS), use a opção
Caso o DVD tenha mais de uma trilha de áudio, existem duas opções. Primeiro, descubra o "aid" de cada uma:
Se existir uma trilha estéreo ("stereo"), prefira-a, colocando o respectivo identificador na opção
Ah, tudo é feito na pasta atual. Modifique se quiser usar outro lugar como "meio campo".
Bônus
Salvar em Vobris ao invés de MP3. Instale o pacote
Método que dispensa o uso do FFmpeg
Pena não ser possível direcionar a saída do MPlayer para STDOUT para jogar via pipe diretamente para o LAME. Apesar disso, essa forma tem a vantagem de escrever menos no disco (o WAV é menor que o VOB) e o MPlayer automaticamente faz mixdown para estéreo quando necessário.
sudo apt-get install mplayer ffmpeg lame
#!/bin/bash for capitulo in $(seq 1 10) do mplayer dvd://1 -chapter ${capitulo}-${capitulo} -dumpfile "cap-${capitulo}.vob" -dumpstream ffmpeg -i "cap-${capitulo}.vob" -f wav - 2>/dev/null | lame -V 2 - "faixa-${capitulo}.mp3" rm "cap-${capitulo}.vob" done
Senta que lá vem história...
Esse exemplo leva em conta um DVD com apenas um título (
dvd://1
). Se forem mais, terá que ser adaptado de acordo. -chapter ${capitulo}-${capitulo}
instrui o MPlayer a extrair (-dumpstream
) capítulo por capítulo individualmente. O FFmpeg, então, decodifica e extrai o áudio do arquivo VOB (MPEG2-TS) e passa via pipe no formato WAV (pcm_s16le
) para o LAME, que converte para MP3 usando o modo -V 2
, que é a minha recomendação. Finalmente o arquivo VOB é apagado. Começa novamente para cada capítulo definido no intervalo do comando seq 1 10
(1 a 10 nesse caso). Veja aí quantos capítulos tem determinado título do seu DVD.No script acima, o MPlayer busca direto da unidade óptica. Se for um DVD comercial, você precisa ter instalado o pacote
libdvdcss2
. No Medibuntu você acha.Caso queira usar uma pasta no HD contendo a estrutura de um DVD (VIDEO_TS), use a opção
-dvd-device
do MPlayer, como em -dvd-device /home/marcos/Downloads/FOO
.Caso o DVD tenha mais de uma trilha de áudio, existem duas opções. Primeiro, descubra o "aid" de cada uma:
mplayer dvd://1 -vo null -ao null -frames 0 2>/dev/null | grep aid
Se existir uma trilha estéreo ("stereo"), prefira-a, colocando o respectivo identificador na opção
-aid xxx
do MPlayer. Se existir apenas trilha 5.1, daí só resta mandar o FFmpeg fazer mixdown, adicionando a opção -ac 2
ao comando do FFmpeg, mas nem sempre fica bom...ffmpeg -i "cap-${capitulo}.vob" -ac 2 -f wav - 2>/dev/null | ...RESTO...
Ah, tudo é feito na pasta atual. Modifique se quiser usar outro lugar como "meio campo".
Bônus
Salvar em Vobris ao invés de MP3. Instale o pacote
vorbis-tools
e substitua a linha do FFmpeg por:ffmpeg -i "cap-${capitulo}.vob" -f wav - 2>/dev/null | oggenc -q 5 --ignorelength - -o "faixa-${capitulo}.ogg"
Método que dispensa o uso do FFmpeg
#!/bin/bash for capitulo in $(seq 1 10) do mplayer -benchmark dvd://1 -chapter ${capitulo}-${capitulo} -vc null -vo null -ao pcm:fast:file="cap-${capitulo}.wav" lame -V 2 "cap-${capitulo}.wav" "faixa-${capitulo}.mp3" rm "cap-${capitulo}.wav" done
Pena não ser possível direcionar a saída do MPlayer para STDOUT para jogar via pipe diretamente para o LAME. Apesar disso, essa forma tem a vantagem de escrever menos no disco (o WAV é menor que o VOB) e o MPlayer automaticamente faz mixdown para estéreo quando necessário.
Comentários
Postar um comentário