Así es como lo hice al final, ya que no pude usar VLC. En algunos casos, terminé con estática en el archivo y las instrucciones de la línea de comandos de algunas de las guías que publiqué en la pregunta fallaron, ya que los comandos parecen haber cambiado.
También probé herramientas como ffmpeg
, pero tampoco obtuve ningún resultado utilizable.
Lo que finalmente funcionó fueron las instrucciones que se encuentran aquí: enlace
Primero, instalé las siguientes herramientas usando Homebrew :
$ brew install lame
$ brew install mplayer
En segundo lugar, para obtener una lista de los capítulos del DVD, utilicé esto con el DVD en la unidad de mi MacBook Pro:
$ mplayer -identify -frames 0 dvd://1 | grep "_CHAPTERS"
Esto imprimirá el número de capítulos por título, en mi caso, noté que hay 13 pistas en el primer título.
Para obtener una lista de los canales de audio disponibles, usé un comando similar:
$ mplayer -identify -frames 0 dvd://1 | grep "aid"
Esto mostró que el canal con el valor de aid de 160 tenía la pista estéreo del DVD ( lpcm ).
Para extraer el audio y convertirlo a MP3, escribí la siguiente secuencia de comandos reutilizable ( ripaudio.sh
), que extrae y convierte un capítulo:
#!/bin/bash
CHAPTER=$1
AID=$2
mplayer -benchmark -vc null -vo null dvd://1 -chapter $CHAPTER-$CHAPTER -aid $AID -ao pcm:fast:file=$CHAPTER.wav && lame --preset standard $CHAPTER.wav $CHAPTER.mp3 && rm $CHAPTER.wav
Haga el script ejecutable usando
$ chmod +x ripaudio.sh
Llámelo para extraer el primer capítulo usando
$ ./ripaudio 1 160
Lo que esto hace básicamente es esto:
- MPlayer extrae la pista de audio con el ID 160 de la primera pista y la guarda en un archivo llamado
1.wav
. La parte de video de la pista se ignora
- El codificador Lame se utiliza para codificar el archivo
.wav
en un archivo MP3 llamado 1.mp3
. Se utiliza el ajuste preestablecido estándar de Lame.
- El archivo
1.wav
se eliminó.
- Los comandos se encadenan utilizando el operador
&&
para asegurarse de que solo se ejecutan cuando el anterior tiene éxito. El comando entero mplayer etc.
debe estar en una sola línea.
Para convertir todos los capítulos, se puede utilizar el siguiente bucle for
:
for i in {1..13}; do ./ripaudio.sh $i 160 ; done
Esto tomará un tiempo, pero una vez que lo hayas hecho, terminarás con un archivo MP3 por capítulo en el directorio actual.
El script se puede adaptar fácilmente para usar algo como flac en lugar de lame para la codificación. Coloque la secuencia de comandos en la carpeta ~/bin
de su usuario para llamarla desde cualquier ubicación.
Aunque esto tomó un tiempo para investigar y no tiene una interfaz de usuario elegante, fue el mejor método que he encontrado.