Đây là cách tôi đã làm nó cuối cùng, vì tôi đã không thành công khi sử dụng VLC. Trong một số trường hợp, tôi đã kết thúc với tĩnh trong tệp và các hướng dẫn dòng lệnh từ một số hướng dẫn tôi đã đăng trong câu hỏi không thành công, vì các lệnh dường như đã thay đổi.
Tôi cũng đã thử các công cụ như ffmpeg
, nhưng cũng không nhận được bất kỳ đầu ra có thể sử dụng từ đó.
Những gì cuối cùng đã làm việc là các hướng dẫn được tìm thấy ở đây: http://www.essl.de/wp/2008/01/11/rip-audio-from-a-dvd/
Đầu tiên, tôi cài đặt các công cụ sau bằng Homebrew :
$ brew install lame
$ brew install mplayer
Thứ hai, để có được danh sách các chương của DVD, tôi đã sử dụng nó với DVD trong ổ đĩa MacBook Pro của tôi:
$ mplayer -identify -frames 0 dvd://1 | grep "_CHAPTERS"
Điều này sẽ in số lượng chương trên mỗi tiêu đề, trong trường hợp của tôi, tôi nhận thấy rằng có 13 bài hát trong tiêu đề đầu tiên.
Để có được các kênh âm thanh có sẵn được liệt kê, tôi đã sử dụng một lệnh tương tự:
$ mplayer -identify -frames 0 dvd://1 | grep "aid"
Điều này cho thấy rằng kênh với viện trợ giá trị của 160 có bản nhạc stereo của DVD ( lpcm ).
Để trích xuất âm thanh và chuyển đổi nó thành MP3, tôi đã viết đoạn script có thể sử dụng lại sau đây ( ripaudio.sh
), trích xuất và chuyển đổi một chương:
#!/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
Làm cho tập lệnh thực thi bằng cách sử dụng
$ chmod +x ripaudio.sh
Gọi nó để trích xuất chương đầu tiên bằng cách sử dụng
$ ./ripaudio 1 160
Điều này về cơ bản là đây:
- MPlayer trích xuất đoạn âm thanh với id 160 của bản nhạc đầu tiên và lưu nó vào một tệp có tên
1.wav
. Phần video của bản nhạc bị bỏ qua
- Các Què bộ mã hóa được sử dụng để mã hóa
.wav
tập tin vào một tập tin MP3 được gọi là 1.mp3
. Lame Tiêu chuẩn cài sẵn được sử dụng.
- Tập tin
1.wav
bị xóa.
- Các lệnh được xâu chuỗi bằng cách sử dụng
&&
Toán tử để đảm bảo chúng chỉ chạy khi cái trước thành công. Toàn bộ mplayer etc.
lệnh cần phải nằm trên một dòng duy nhất.
Để chuyển đổi tất cả các chương, sau đây for
vòng lặp có thể được sử dụng:
for i in {1..13}; do ./ripaudio.sh $i 160 ; done
Việc này sẽ mất một lúc, nhưng sau khi hoàn thành, bạn sẽ kết thúc với một tệp MP3 cho mỗi chương trong thư mục hiện tại.
Kịch bản có thể dễ dàng được điều chỉnh để sử dụng một cái gì đó như flac thay vì què cho việc mã hóa. Đặt tập lệnh vào người dùng của bạn ~/bin
thư mục để gọi nó từ bất kỳ vị trí.
Mặc dù điều này mất một thời gian để nghiên cứu và không có giao diện người dùng ưa thích, nhưng đó là phương pháp tốt nhất tôi tìm thấy.