So konvertieren Sie MP3-Serien in einem Stapel in einen M4B

9

Ich habe eine Menge MP3-basierter Bücher. Einige von ihnen teilen sich entsprechend der Buchstruktur in Dateien auf: Kapitel und so weiter. Einige von ihnen wurden nur in gleich verlängerte Teile geteilt.

Damit. Ich habe ein iPhone gekauft und möchte sie alle in das M4B-Format konvertieren. Wie könnte ich sie in einen Stapel konvertieren? Ich meine, wie kalt ich einmal für jedes Buch einen Prozess eingerichtet habe und dann nach ein paar Wochen eine vollständig konvertierte Bibliothek erhalte.

Das einzige Programm für eine solche Konvertierung, das ich gefunden habe, war Audiobook Builder für einen Mac. Aber es ist ziemlich langsam und unterstützt das Batching im Prinzip nicht.

Lösungen für jede Plattform bitte.

Artem Tikhomirov
quelle

Antworten:

6

Um die MP3s mit einem M4B zu verketten, können Sie ffmpeg verwenden. Laden Sie eine aktuelle Version herunter und führen Sie Folgendes aus:

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

Ihr ffmpeg ist möglicherweise nicht fdk_aacaktiviert. Wenn dies der Fall ist, können Sie es versuchen

  • -c:a libfaac (gute Qualität)
  • -c:a aac -strict experimental (anständige Qualität, aber höhere Bitraten verwenden)
  • -c:a libvo_aacenc (eher schlechte Qualität)

Weitere Informationen finden Sie im AAC-Codierungshandbuch .


Wenn Sie stattdessen neroAacEnc verwenden möchten, können Sie Folgendes verwenden:

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

Ich fürchte, keines dieser Elemente wird Kapitelmetadaten hinzufügen.

Übelsuppe
quelle
@slhck wenn ich "-c: a libfaac" benutze, erscheint die Fehlermeldung "Unbekannter Encoder 'libfaac'", ähnlich wie bei libfdk_aac, ein Vorschlag pls?
Athos
@athos verwendet entweder eine der anderen ffmpeg-Optionen oder lädt neroAacEnc herunter und verwendet diese (ich würde neroAacEnc empfehlen, wenn Sie keine haben libfdk_aac).
Evilsoup
@athos Der aac-Encoder sollte immer so funktionieren, wie er in ffmpeg eingebaut ist. Sie können ffmpeg auch selbst erstellen, wenn Sie unter Linux arbeiten, oder es über Homebrew unter OS X installieren, wodurch Sie den libfdk_aac-Encoder erhalten, der die beste Qualität aufweist.
Slhck
@slhck gibt es eine Windows-Lösung?
Athos
@athos Es ist möglich (siehe hier trac.ffmpeg.org/wiki/CompilationGuide#Windows ), aber wahrscheinlich etwas komplizierter. Aber verwenden Sie einfach den internen AAC-Encoder - er ist recht anständig.
Slhck
0

Öffnen Sie ein Terminal. Wechseln Sie in das Verzeichnis, in dem sich die MP3-Dateien befinden. Typ:

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

Natürlich muss ffmpeg installiert sein.

Beachten Sie, dass ich oben "m4a" verwendet habe. Das m4b-Format scheint dasselbe zu sein, nur dass ein Buchstabe geändert wurde, um anzuzeigen, dass es sich um ein Buch handelt. Sie können sie alle später umbenennen, wenn Sie der Unterschied aus einem Buchstaben stört. Sie spielen das gleiche.

EDIT: Ich gehe davon aus, dass Sie einen Mac verwenden. Das Obige funktioniert auch auf einem PC, wenn Sie ein Unix-ähnliches Betriebssystem ausführen oder Cygwin unter Windows installieren .

CarlF
quelle
Dadurch werden der Ergebnisdatei keine Kapitelmetadaten hinzugefügt, oder?
Artem Tikhomirov
2
Und diese MP3-Dateien werden nicht zu einer zusammengeführt. Was ist der Sinn?
Artem Tikhomirov
Ich habe keine Anforderung gesehen, die Kapitel in Ihrer ursprünglichen Frage zu kombinieren. Sie möchten alle MP3-Dateien für jedes Hörbuch in einer einzigen Datei kombinieren, einschließlich des Hinzufügens von Metadaten, die den Anfang und das Ende jedes Kapitels markieren? Das ist nicht die Frage, die Sie ursprünglich gestellt haben. Sofern sich diese Metadaten nicht in den ursprünglichen MP3-Dateien befinden, müssen Sie sie sicher manuell hinzufügen.
CarlF
Mein ffmpegunter Ubuntu 12.04 schien nicht zu wissen, wie man konvertiert, .m4baber ich habe das umgangen, indem ich zu konvertiert .m4aund dann umbenannt habe.
Tripleee