Voici comment j'ai finalement fait, puisque je n'ai pas réussi avec VLC. Dans certains cas, j'ai obtenu des parasites dans le fichier, et les instructions en ligne de commande de certains des guides que j'ai publiés dans la question ont échoué, car les commandes semblent avoir changé.
J'ai également essayé des outils comme ffmpeg
, mais je n'ai pas non plus obtenu de résultat utilisable.
Ce qui a finalement fonctionné étaient les instructions trouvées ici : http://www.essl.de/wp/2008/01/28/rip-audio-from-a-dvd/
Tout d'abord, j'ai installé les outils suivants en utilisant Homebrew :
$ brew install lame
$ brew install mplayer
Ensuite, pour obtenir une liste des chapitres du DVD, j'ai utilisé cela avec le DVD dans le lecteur de mon MacBook Pro :
$ mplayer -identify -frames 0 dvd://1 | grep "_CHAPTERS"
Cela affichera le nombre de chapitres par titre, dans mon cas, j'ai remarqué qu'il y a 13 pistes dans le premier titre.
Pour obtenir la liste des canaux audio disponibles, j'ai utilisé une commande similaire :
$ mplayer -identify -frames 0 dvd://1 | grep "aid"
Cela a montré que le canal avec la valeur aid de 160 avait la piste stéréo du DVD (lpcm).
Pour extraire l'audio et le convertir en MP3, j'ai écrit le script réutilisable suivant (ripaudio.sh
), qui extrait et convertit un chapitre :
#!/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
Rendez le script exécutable en utilisant
$ chmod +x ripaudio.sh
Appelez-le pour extraire le premier chapitre en utilisant
$ ./ripaudio 1 160
Ce que cela fait essentiellement, c'est ceci :
- MPlayer extrait la piste audio avec l'id 160 de la première piste et la sauvegarde dans un fichier appelé
1.wav
. La partie vidéo de la piste est ignorée
- L'encodeur Lame est utilisé pour encoder le fichier
.wav
en un fichier MP3 appelé 1.mp3
. Le préréglage standard de Lame est utilisé.
- Le fichier
1.wav
est supprimé.
- Les commandes sont enchaînées en utilisant l'opérateur
&&
pour s'assurer qu'elles ne s'exécutent que si la précédente réussit. Toute la commande mplayer etc.
doit être sur une seule ligne.
Pour convertir tous les chapitres, la boucle for
suivante peut être utilisée :
for i in {1..13}; do ./ripaudio.sh $i 160 ; done
Cela prendra un certain temps, mais une fois terminé, vous obtiendrez un fichier MP3 par chapitre dans le répertoire actuel.
Le script peut facilement être adapté pour utiliser quelque chose comme flac au lieu de lame pour l'encodage. Placez le script dans le dossier ~/bin
de votre utilisateur pour pouvoir l'appeler depuis n'importe quel emplacement.
Malgré le temps consacré à la recherche et l'absence d'une interface élaborée, c'était la meilleure méthode que j'ai trouvée.