Como dizem por aí, fazendo na unha...
Vamos precisar dos pacotes:mplayer , lame, normalize-audio e libdvdcss2; todos disponíveis via apt-get.
1. Extrair o áudio do DVD com o pacote mplayer, rodando:
$ mplayer dvd://1 -chapter 1-1 -af resample=44100:0:0 -ao pcm:file=arquivo.wav -vc dummy -vo null
O nome do <arquivo> fica a sua escolha claro.
Parâmetros:
dvd://1: o n. 1 indica o título do DVD. Vc pode ver que títulos o DVD possui com o pacote lsdvd.
-chapter 1-1: isto defini qual(is) capítulos serão copiados (1-1 que dizer de 1 até 1);
-af: define um filtro de audio, ajustando a frequencia para o padrao de CD (44100hz), que difere do padrao DVD (48000hz)
-ao: especifica o tipo de saída de áudio
pcm: indica áudio digital sem compressão
file: define o nome do arquivo gerado.
-vc: indica o codec de vídeo utilizado, como não faremos uso do vídeo, usamos um codec fictício (dummy).
-vo: define a saída do vídeo, como não precisamos dela, será nula.
2. Depois de gerado o arquivo de áudio, podemos aplicar uma normalização do seu volume. Isso é bom pra evitar variação no volume das músicas. Basta instalar o pacote normalize-audio e rodar:
$ normalize-audio arquivo.wav
3. Em seguida, convertemos o formato do som para mp3 com o pacote lame, rodando:
$ lame --noreplaygain -b 192 -c -o --tt "titulo da musica" --ta "nome do artista" --tl "título do DVD/CD" --ty 1980 --tg "genero" arquivo.wav arquivo.mp3
Parâmetros:
noreplaygain: define que não será aplicada normalização/ganho no áudio, pois isso já foi feito anteriormente no arquivo.wav sem compressão, o que é melhor.
-b: define o bitrate em 192 kbps
-c: indica que o arquivo possui direitos autorais
-o: indica que o arquivo é uma cópia
os parâmetros -tt são tags mp3 e são auto-explicativos
Obs. O mplayer faz uso do pacote libdvdcss2 para ler DVD protegido/criptografado.