Ecco come ho fatto alla fine, dal momento che non ho avuto successo con VLC. In alcuni casi, ho trovato il file statico e le istruzioni della riga di comando di alcune delle guide che ho postato nella domanda non sono riuscite, poiché i comandi sembrano essere cambiati.
Ho provato anche strumenti come ffmpeg
, ma non ho ottenuto alcun output utilizzabile da questo.
Ciò che ha funzionato alla fine sono state le istruzioni trovate qui: link
Per prima cosa, ho installato i seguenti strumenti usando Homebrew :
$ brew install lame
$ brew install mplayer
In secondo luogo, per ottenere un elenco dei capitoli del DVD, l'ho usato con il DVD nell'unità del mio MacBook Pro:
$ mplayer -identify -frames 0 dvd://1 | grep "_CHAPTERS"
Questo stamperà il numero di capitoli per titolo, nel mio caso ho notato che ci sono 13 tracce nel primo titolo.
Per ottenere i canali audio disponibili elencati, ho usato un comando simile:
$ mplayer -identify -frames 0 dvd://1 | grep "aid"
Questo ha dimostrato che il canale con il valore aiuto di 160 aveva la traccia stereo del DVD ( lpcm ).
Per estrarre l'audio e convertirlo in MP3, ho scritto il seguente script riutilizzabile ( ripaudio.sh
), che estrae e converte un capitolo:
#!/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
Rendi eseguibile lo script usando
$ chmod +x ripaudio.sh
Chiamalo per estrarre il primo capitolo usando
$ ./ripaudio 1 160
Ciò che sostanzialmente fa è questo:
- MPlayer estrae la traccia audio con id 160 della prima traccia e la salva in un file chiamato
1.wav
. La parte video della traccia è ignorata
- Il codificatore Lame viene utilizzato per codificare il file
.wav
in un file MP3 denominato 1.mp3
. Viene utilizzata la preimpostazione standard di Lame.
- Il file
1.wav
è stato eliminato.
- I comandi sono concatenati usando l'operatore
&&
per assicurarsi che vengano eseguiti solo quando il precedente ha esito positivo. L'intero comando mplayer etc.
deve essere su una singola riga.
Per convertire tutti i capitoli, è possibile utilizzare il seguente ciclo for
:
for i in {1..13}; do ./ripaudio.sh $i 160 ; done
Ci vorrà un po ', ma una volta terminato, ti ritroverai con un file MP3 per capitolo nella directory corrente.
Lo script può essere facilmente adattato per usare qualcosa come flac invece di lame per la codifica. Inserisci lo script nella cartella ~/bin
dell'utente per chiamarlo da qualsiasi posizione.
Anche se questo ha richiesto un po 'di tempo per la ricerca e non ha un'interfaccia utente sofisticata, è stato il metodo migliore che ho trovato.