Cách chuyển đổi loạt MP3 sang M4B theo đợt


9

Tôi có một loạt sách dựa trên MP3. Một số trong số chúng chia thành các tệp theo cấu trúc riêng của cuốn sách: chương và vv. Một số trong số họ chỉ được chia thành các phần dài bằng nhau.

Vì thế. Tôi đã mua một chiếc iPhone và tôi muốn chuyển đổi tất cả chúng sang định dạng M4B. Làm thế nào tôi có thể chuyển đổi chúng trong một lô? Ý tôi là tôi đã thiết lập một quy trình một lần, cho mỗi cuốn sách và sau vài tuần, nhận được thư viện hoàn toàn chuyển đổi.

Chương trình duy nhất có thể chuyển đổi như vậy tôi đã tìm thấy là Audiobook Builder cho Mac. Nhưng về nguyên tắc thì nó khá chậm và không hỗ trợ theo đợt.

Giải pháp cho bất kỳ nền tảng, xin vui lòng.

Câu trả lời:


6

Để ghép các tệp MP3 thành M4B, bạn có thể sử dụng ffmpeg. Tải xuống một phiên bản gần đây , sau đó chạy:

ffmpeg -i "concat:input0.mp3|input1.mp3|input2.mp3" -c:a libfdk_aac -b:a 64k -f mp4 output.m4b

Ffmpeg của bạn có thể không fdk_aacđược kích hoạt; nếu đó là trường hợp, bạn có thể thử sử dụng

  • -c:a libfaac (chất lượng cao)
  • -c:a aac -strict experimental (chất lượng khá, nhưng sử dụng bitrate cao hơn)
  • -c:a libvo_aacenc (chất lượng khá tệ)

Xem hướng dẫn mã hóa AAC để biết thêm.


Nếu bạn muốn sử dụng neroAacEnc thay thế, bạn có thể sử dụng:

ffmpeg -i "concat:input0.mp3|input1.mp3|input2.mp3" -f wav - | neroAacEnc -if - -ignorelength -q 0.3 output.m4b

Không ai trong số này sẽ thêm siêu dữ liệu chương, tôi sợ.


@slhck khi tôi sử dụng "-c: libfaac", thông báo lỗi "Bộ mã hóa không xác định 'libfaac'" xuất hiện, tương tự như libfdk_aac, có gợi ý nào không?
vận động viên

@athos sử dụng một trong các tùy chọn ffmpeg khác hoặc tải xuống neroAacEnc và sử dụng tùy chọn đó (Tôi khuyên bạn nên dùng neroAacEnc nếu bạn không có libfdk_aac).
evilsoup

@athos Bộ mã hóa aac phải luôn hoạt động khi được tích hợp vào ffmpeg. Bạn cũng có thể tự xây dựng ffmpeg nếu bạn dùng Linux hoặc cài đặt nó thông qua Homebrew trên OS X, cung cấp cho bạn bộ mã hóa libfdk_aac và đó là một bộ có chất lượng tốt nhất.
slhck

@slhck có giải pháp Windows không?
vận động viên

@athos Có thể (xem ở đây trac.ffmpeg.org/wiki/CompilationGuide#Windows ) nhưng có lẽ phức tạp hơn một chút. Nhưng chỉ cần sử dụng bộ mã hóa aac nội bộ thì nó khá tốt.
slhck

0

Mở một Terminal. Thay đổi thư mục các tệp MP3 nằm trong. Nhập:

for i in *mp3 ; do ffmpeg -i $i -qscale 0 $i.m4a ; done

Tất nhiên, ffmpeg phải được cài đặt.

Lưu ý rằng tôi đã sử dụng "m4a" ở trên. Định dạng m4b có vẻ giống nhau, chỉ với một chữ cái được thay đổi để chỉ ra rằng đó là một cuốn sách. Bạn có thể đổi tên tất cả sau này nếu sự khác biệt một chữ cái làm phiền bạn. Họ chơi giống nhau.

EDIT: Tôi giả sử bạn sử dụng máy Mac. Ở trên cũng sẽ hoạt động trên PC nếu bạn chạy HĐH giống Unix hoặc cài đặt Cygwin trong Windows.


Điều này sẽ không thêm siêu dữ liệu chương vào tệp kết quả, phải không?
Artem Tikhomirov

2
Và nó sẽ không hợp nhất các tập tin mp3 thành một. Vấn đề ở đây là gì?
Artem Tikhomirov

Tôi không thấy yêu cầu kết hợp các chương trong câu hỏi ban đầu của bạn. Bạn muốn kết hợp tất cả các tệp MP3 cho mỗi audiobook thành một tệp duy nhất, bao gồm thêm siêu dữ liệu đánh dấu điểm bắt đầu và kết thúc của mỗi chương? Đó không phải là câu hỏi ban đầu bạn hỏi. Trừ khi siêu dữ liệu có trong các tệp MP3 gốc, tôi khá chắc chắn rằng bạn sẽ phải thêm nó theo cách thủ công.
CarlF

Tôi ffmpegtrên Ubuntu 12.04 dường như không biết cách chuyển đổi .m4bnhưng tôi đã khắc phục điều đó bằng cách chuyển đổi sang .m4asau đó đổi tên.
tripleee

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.