While the Apple AirPort Express Base Station with 802.11n and AirTunes is quite affordable, it’s a pity that Apple allow only AES encoded audio streams (aka Remote Audio Output Protocol — raop). However Jon Lech Johansen’s reversed the encryption and released JustePort — a .NET tool. Meanwhile other OpenSource applications support the raop protocol:
VLC works out of the box, although the syntax is a bit strange.
1 2 3 4 | $ cd /Applications/VLC.app/Contents/MacOS/ $ VLC –sout=’#transcode{acodec=alac,ab=192,channels=2}: raop{access=http,mux=raw,host=192.168.1.15,volume=77}’ /08-rex_the_dog-circulate.mp3 [0x14c15dd8] stream_out_raop stream out: Audio latency: 4384 [0x14c15dd8] stream_out_raop stream out: Jack type: analog |
The important parameter is “–sout=’#transcode{acodec=alac, channels=2, samplerate=44100}: raop{access=http,mux=raw, host=192.168.1.15,volume=77}’”.
You may also open the VLC prefs / All / Stream Output / Default Stream Output Chain and enter:
#duplicate{dst=“transcode {acodec=alac, channels=2, samplerate=44100}: raop{host=192.168.111.15,volume=77}:display”,dst=display}
Hint: VLC did not work for me with those parameter:
1 | –sout-raop-host= Host –sout-raop-volume= |
Info from the VLC forum:
The Airport Express will only take the Apple Lossless codec, make also sure the sound is encoded with 44.1 kHz and not something like 32 kHz or 22.05 kHz, as that’s all the Airport Express understands.
raop-play did not work for me (cvs version):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ ./raop_play –vol 100 192.168.111.15 ./a.mp3 DBG: Server: AirTunes/101.9 DBG: CSeq: 1 DBG: Apple-Response: HNjZjDtZKxwPGY5QU6PyEIZUdaxWLMSxn97hwT7X701Dxd3EJg1SJRkxtVtCYMDmyBjPNB2zN94re+9jpaLWMMEs5jp8lkF1lYDbrZ1krq+TN6PfSHUh+1K2iWzgCvWWB/mY0kx2zCj08FwZWcnhXzizBbwRzSoVHJ+ml/rlAolMge7+EOjT2ggkXs+zy91U7vWzi9+feUrLApBQVQsBqJkn3im4Sa78Y27Tl6rCk5HHRXTMQk1wIqlo6Cp7Qe8YXYmJ0Bg3aP218jcCG5beKQ0PQC1DcYNfNlKgYKXu4jAKvVZPL3j/NzpDoZ0jo2bLKqvhZWtlwoqIYj/cMCtaLg== DBG: Transport: RTP/AVP/TCP;unicast;mode=record;server_port=6000 DBG: Session: 1 DBG: Audio-Jack-Status: connected; type=analog DBG: Server: AirTunes/101.9 DBG: CSeq: 2 DBG: Audio-Latency: 4384 DBG: Server: AirTunes/101.9 DBG: CSeq: 3 DBG: Server: AirTunes/101.9 DBG: CSeq: 4 connected DBG: audio data type: 3 DBG: id3 tagsize: 4096 DBG: sample rate=44100 Segmentation fault |
There is also a ruby port of raop-play available, check https://rubyforge.org/projects/raop/.
Pulseaudio also supports the RAOP protocol, but I didn’t test it, but HE did…
AirTunes vs. Sqeezebox (found here)
Well, they are two different kinds of devices, really. The Airport Express is a “push” type of device. The music is decoded on your computer and broadcast to the AExp. All navigation of your music collection occurs on the computer; you can’t even skip to the next track without being in the same room as the machine. The Squeezebox is a “pull” device; it grabs files from your server and decodes them on-board. As such it has its own UI for choosing what you want to listen to and you don’t have to be in the same room (or, indeed, the same country) as the source of the music, and your computer doesn’t even have to be on if you just want to listen to Internet radio.
2 Comments
1 Fux wrote:
Also MPD from git supports now the RAOP protocol.
2 michu wrote:
yes, brand new (http://git.musicpd.org/cgit/master/mpd.git/commit/?id=79e0db4ca0e9c13ca226c06c9228d5afb4c9a277). thanks for that!!