Wed Mar 28 16:55:21 EDT 2007

Playing AAC/M4A in XMMS under Debian Sarge

So I don't forget how I did this: I've been listening to my ipod shuffle on my Debian Sarge box at work by plugging it into the usb place¹, then creating an m3u list and playing the mp3's from XMMS:

#!/bin/bash

mount /mnt/ipod
find /mnt/ipod/iPod_Control/Music -name "*.mp3" > ~/music/lists/ipod.m3u

I was getting annoyed at not being able to play m4a's that I'd ripped with iTunes on my iBook. To get them playing in XMMS, I just had to do the following:

  1. Find a prebuilt version of the XMMS m4a plugin. In particular, the files libmp4.so and libfaad.so.

  2. Install libmp4.so into ~/xmms/Plugins

  3. Install libfaad.so into /usr/local/lib

  4. In /usr/local/lib, ln -s libfaad.so libfaad.so.0

  5. Add /usr/local/lib to /etc/ld.so.conf

  6. Run 'sudo /sbin/ldconfig'

Note: Those last two steps aren't necessary if XMMS doesn't complain about being unable to find libfaad.so.0.

Now, quit and relaunch XMMS, and voila, I have an AAC player. Finally, I tweaked that last line of my ipod list script so it includes mp3 files and m4a files in the generated list, like so:

find /mnt/ipod/iPod_Control/Music -name "*.m[p4][3a]" > ~/music/lists/ipod.m3u

...and I'm off to the races!

¹How I actually got the box to recognize my ipod and mount it correctly as a fat32 "drive" is a subject all its own. Maybe I'll cover that in a future post.

Posted by dan | Permanent link | File under: tech, music

Comments


At Sat Jun 9 08:04:49 2007, Brolin Empey said:
Thanks! This seems to work so far with XMMS v1.2.10 on Gentoo Linux (i686 PC). I would have preferred a solution using Portage, but the required USE flags seem to have been removed from the required ebuilds, so I thought I would try your solution.

Here is what I did:

~/ $ wget http://fondriest.frederic.free.fr/fichiers/lib{mp4,faad}.so
~/ $ sudo mv libmp4.so /usr/lib/xmms/Input/
~/ $ sudo chmod +x /usr/lib/xmms/Input/libmp4.so
~/ $ chmod +x libfaad.so
~/ $ sudo mv libfaad.so /usr/local/lib/
~/ $ cd /usr/local/lib/
/usr/local/lib/ $ sudo ln -s libfaad.so libfaad.so.0

The first non-comment line of my /etc/ld.so.conf was already "/usr/local/lib", so I skipped your last two steps (5 and 6).

I then restarted XMMS and checked that libmp4.so was enabled in the Input Plug-ins. It was. I added an album (directory) of .m4a files that had been ripped and encoded with iTunes on Windows. It works! :)

PS: Your find(1) invocation will also find e.g. .mpa and .m43 files. A regex will match only .mp3 and .m4a files:

$ find /path/ -iregex '.*\.\(mp3\|m4a\)$'

At Mon Oct 1 15:01:04 2007, Hooty said:
This solution did not work with AAC+ streams...

At Tue Jan 22 17:36:45 2008, armandino said:
Excellent! worked like magic :)

Add a Comment

Name
Prove you're a human:
What is four plus three?
(What is this?)
Note: HTML won't work in comments. Just type plain text.