Subsonic is a really efficient music streaming server. You can get a good overview of the possibilities from the main site http://www.subsonic.org/.
This server can stream your complete music library to any internet connected device, handling on-the-fly compression. A subsonic client is available on the Android market for all android devices.
The main specificity of streaming music to a mobile phone, is that it uses a 3G or even a Edge access, where the available bandwith is quite restricted. You then need to use a very efficient codec and a high compression ratio to remain compatible with the network capacity.
After doing few tests, I realised that Ogg Vorbis is very good at low bitrate. Using this open source codec, it is possible to keep a good music quality with a bitrate as low as 80 or 96 kbits.
This tutorial explains how to configure your Subsonic personnal server to stream your music to your android device thru your 3G data plan, using a 96kbits Ogg stream.
1. Main configuration
To do the main configuration, you need to connect to your subsonic server using the admin account.
1.1. Declare the ogg transcoding chain
To allow your subsonic server to serve an Ogg stream, you need to declare the Ogg Vorbis transcoding chain.
In fact, few transcoding chains are declared by default, but not the Ogg one.
To do so, go in the Settings / Transcoding menu.
You need to add as many transcoding chains as music file formats you have in your server library. For example, if you have some .mp3, .mp4 and .flac files in your library, you will need to create 3 transcoding chains, one for each file extension.
You will get a lot of information on transcoding chains setup from http://sourceforge.net/apps/mediawiki/subsonic/index.php?title=Transcoders. All the main file format conversions are explained.
In my case, I have only mp3 files (128 to 320 kbits), so I need to declare only one transcoding chain with the following setup.
- name : mp3 > ogg
- convert from : mp3
- convert to : ogg
- step 1 : ffmpeg -i %s -acodec libvorbis -ab %bk -f ogg -
- tick Default
- tick Enabled
1.2. Create a specific user for the Android client
To connect to the subsonic server, your android client will need a specific user account.
You need to create it thru the Settings / Users menu, using some specific parameters as follow :
Here, you set the maximum bitrate allowed to 80 or 96 kbits.
Save the new user.
2. Android user configuration
Once the new user is created, you need to indicate the subsonic server to always serve a Ogg vorbis compressed stream to that client.
To do so, disconnect from the admin account and reconnect to the subsonic interface using the new user account ( youruser in this tutorial ).
Then go in the Settings / Players menu and configure it that way :
The main things done here are :
- to remove all the transcoding chains, other than the ones you have just created (mp3 > ogg in my case)
- to fix a maximum serving bitrate to 96 kbits
- to fix the covert art size (medium for a phone, large for a tablet)
Once your configuration is saved, you are ready to configure your android client, using this new account.
You should now be able to listen to your home music thru a 3G or even a Edge network.
Enjoy the listening :-)
As you have noticed on the subsonic site, the server is time limited if serving to an android device.
After a specific amount of time, you need to donate to get an activation key which will allow unlimited serving to your android device.
An MD5 hash of your email address should help to wait ...