Friday, December 2, 2011

Air Video Server on openSUSE 12.1

In short, Air Video is a client-server product that streams, via live conversion, videos of many formats to any iOS device (eg iPhone, iPad etc).  The server software is free-of-charge but only runs on Mac OSX and Windows.  The client is also free-of-charge for iOS devices but "crippled".  If you like the solution, you pay for the client.

Since the Air Video Server is written in Java and uses a customized version of FFMPEG, it would be possible to run it on Linux.  The folks behind Air Video though supportive but are NOT offering official support for Linux. 

I have been successful in making Air Video Server (AVS) work on openSUSE 11.3, 11.4 and 12.1.  Here are the steps:


1)  You will need to add the popular packman external repository for openSUSE.  This is easily accomplished via one command (as root) and you will need Internet access.

For openSUSE 12.1:
zypper ar -f -n packman http://packman.inode.at/suse/openSUSE_12.1 packman

For openSUSE 11.4:
zypper ar -f -n packman http://packman.inode.at/suse/openSUSE_11.4 packman

2)  You will need to compile a customized version of FFMPEG and thus, also install the require libraries.  Execute the following, it is alright if you already have some of these packages installed as zypper would simply not act on it.

zypper in gcc make libmp3lame-devel libx264-devel git-core pkg-config yasm

3)  Download the customized FFMPEG from http://inmethod.com/air-video/download/ffmpeg-for-2.4.5-beta6.tar.bz2 and un-tar it:

tar jxvf ffmpeg-for-2.4.5-beta6.tar.bz2

4)  Change into the ffmpeg sub-directory and issue the following:

./configure --enable-pthreads --disable-shared --enable-static --enable-gpl --enable-libx264 --enable-libmp3lame 

Once configure ends successfully, execute:

make

5) Download the AirVideoServer (Alpha 6 at time of writing) from http://inmethod.com/air-video/download/linux/alpha6/AirVideoServerLinux.jar

6) Create a properties file, config.properties, using your preferred text editor for AirVideoServer:

path.ffmpeg = /directory/to/your/compiled/ffmpeg/ffmpeg
path.mp4creator = /usr/bin/mp4creator
path.faac = /usr/bin/faac
password = password
subtitles.encoding = windows-1250
subtitles.font = Verdana
folders = Movies:/path/to/my/Movies
[for more than one folder, use the following format] 
folders = Movies:/path/to/my/Movies, Holidays:/path/to/my/Holidays 
[to use any other port other than default 45631]
server.port = 45678

7)  Finally, to run the AirVideoServer that uses the custom compiled ffmpeg, execute the following command (not necessarily as root):

java -jar AirVideoServerLinux.jar config.properties

I used Sun Java in openSUSE 11.4.  On 12.1, the default openjdk worked just as well.

8)  If SuSEFirewall is running, you will need to open port 45631 (default) or any other relevant ports (if you have changed it in the properties file).

yast2 firewall
In the Firewall GUI, go to Allow Services (on the left panel) followed by Advanced button and enter your port number (eg 45631) in the textbox under TCP Ports.  If you want to open more than one port, use a space between the port numbers.

9)  On your iOS device, start the Air Video app.  Add your Linux server via the plus (+) button on the top left, followed by Specify Address Manually and enter the IP address OR resolvable hostname of the Linux server running the AirVideoServer and the appropriate port number and click Save.



10) Once connected, you will be prompted for a password.  This is the password you set in the config.properties file.  Finally, you can browse the directory (eg Movies) and all your movie files will show up.  Click on them and enjoy!

As of this writing, Air Video app in both iPhone and iPad worked.


Relevant Links:
Air Video - http://www.inmethod.com/air-video/index.html
AirVideo Server under Linux - http://wiki.birth-online.de/know-how/hardware/apple-iphone/airvideo-server-linux
AVS Linux thread at Air Video Forum - http://www.inmethod.com/forum/posts/list/1856.page

No comments:

Post a Comment