13

I have a batch of MP3 based books. Some of them divide into files according to book's own structure: chapters and so on. Some of them was just divided into equally lengthened parts.

So. I've bought an iPhone, and I want to convert them all to M4B format. How could I convert them in a batch? I mean how cold I set up a process once, for each book, and then, after couple of weeks, receive totally converted library.

The only able program for such conversion I've found was Audiobook Builder for a Mac. But it is pretty slow and do not support batching in principle.

Solutions for any platform, please.

quack quixote
  • 43,504

3 Answers3

12

To concatenate the MP3s to an M4B, you could use ffmpeg. Download a recent version, then run:

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

Your ffmpeg might not have fdk_aac enabled; if that's the case, you can try using

  • -c:a libfaac (high quality)
  • -c:a aac -strict experimental (decent quality, but use higher bitrates)
  • -c:a libvo_aacenc (rather bad quality)

See the AAC encoding guide for more info.


If you want to use neroAacEnc instead, you could use:

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

Neither of these will add chapter metadata, I'm afraid.

slhck
  • 235,242
evilsoup
  • 14,056
1

If you're a Mac user, try Audiobook Binder http://bluezbox.com/audiobookbinder.html

tnq177
  • 121
0

Open a Terminal. Change to the directory the MP3 files are in. Type:

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

Of course, ffmpeg must be installed.

Note that I've used "m4a" above. The m4b format appears to be the same, just with a letter changed to indicate that it's a book. You can rename them all later if the one-letter difference bugs you. They play the same.

EDIT: I'm assuming you use a Mac. The above will also work on a PC if you run a Unix-like OS, or install Cygwin under Windows.

CarlF
  • 8,872