Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question

2 Answers 2

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.

share|improve this answer
@slhck when i use "-c:a libfaac" the error message "Unknown encoder 'libfaac'" appears, similar to libfdk_aac , any suggestion pls? –  athos Oct 3 at 10:07
@athos either use one of the other ffmpeg options, or download neroAacEnc and use that (I'd recommend neroAacEnc if you don't have libfdk_aac). –  evilsoup Oct 3 at 11:29
@athos The aac encoder should always work as it's built into ffmpeg. You can also build ffmpeg yourself if you're on Linux, or install it through Homebrew on OS X, which gives you the libfdk_aac encoder, and that's the one with the best quality. –  slhck Oct 3 at 12:15
@slhck is there a Windows solution? –  athos Oct 4 at 5:11
@athos It is possible (see here trac.ffmpeg.org/wiki/CompilationGuide#Windows) but probably a little more complicated. But just use the internal aac encoder—it's quite decent. –  slhck Oct 4 at 8:38

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

for i in *mp3 ; do ffmpeg -i $i -sameq $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.

share|improve this answer
This will not add chapter metadata to result file, will it? –  Artem Tikhomirov Oct 18 '09 at 17:27
And it will not merge those mp3 files into one. What's the point? –  Artem Tikhomirov Oct 18 '09 at 19:50
I didn't see a requirement to combine the chapters in your original question. You want to combine all the MP3 files for each audiobook into a single file, including adding metadata that marks the beginning and end of each chapter? That's not the question you originally asked. Unless that metadata is in the original MP3 files, I'm fairly sure you'll have to add it manually. –  CarlF Oct 19 '09 at 14:47
My ffmpeg on Ubuntu 12.04 did not seem to know how to convert to .m4b but I worked around that by converting to .m4a and then renaming. –  tripleee Oct 3 '13 at 7:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.