When it comes to video playback, mobile devices are usually limited by two things: capacity and file compatibility. Apple’s devices only play videos encoded with the H.264 codec, packaged in an .mp4 or .mov container, and limited to a very modest resolution and bitrate. They also top out in capacity at around 64GB, which is hardly enough for your entire collection of Simpsons season rips. To get video to play natively on your iPhone, your options are to either rip from Handbrake into a compatible format or transcode your existing collection into an Apple-friendly copy (which isn’t guaranteed to be future-proof). But you’re either sacrificing the quality of your original rips or wasting drive space with duplicate videos–both undesirable compromises.
Real-time video transcoding solves these problems. Instead of converting videos beforehand (taking considerable processing time and drive space), you want to have your computer process them on the fly and stream them to your device to watch videos on demand. The Air Video iPhone app does just that. We’ll show you how to effortlessly set up Air Video so you can tap into your video library either on Wi-Fi or over 3G.
Getting Air Video Up and Running
The Air Video works in two parts. A piece of server software sits on your desktop computer (both Windows and Mac OS are supported), watching folders that you’ve selected or an iTunes playlist. The other component is an iPhone/iPod Touch app that connects to the server and lets you browse and play video. The app costs $2.99, but there is a free trial version that limits how many files the server software can index.
Setting up Air Video is easy. Download the appropriate server file for your machine and install it. Launch the program to bring up the Properties window. There are only a few settings that you will need to adjust. First, you’ll need to tell Air Video where you store your video files. Just click the Add Disk Folder button under the Shared Folders tab and direct Air Video to the folders you want it to monitor. These can be local drives or network drives.
Next, head to the Settings tab, and check the “Start at Login” and “Disable Startup Notification Bubble” boxes. Finally, head over to the Subtitles tab and choose your preferred subtitle language. If subtitle tracks are available in your video files (like in .MKV containers), Air Video gives you the option of rendering the subtitles as a part of the converted video streamed to your device.
That’s it! Just click the Start Server button at the top left of the properties window and Air Video should be running. On your iPhone, download and install the Air Video app. Air Video primarily runs over a local network, so your iPhone should be connected to the same Wi-Fi router as the computer where you installed the server software. The app will automatically detect the local server and let you browse videos found on the monitored folders. It uses the open source FFmpeg encoder to covert files in real-time with minimal quality degradation and moderate processor load. On our Core i7 machine, the Air Video server steamed a 1080p video with ease, tasking four processor cores to only 25% load. File format compatibility is also impressive—the libavcodec codec library included in FFmpeg is pretty comprehensive.
You can also set up video scaling and subtitle rendering settings for individual videos on the mobile app, as well as a server-side password to prevent anyone else on your network from playing your videos.
Stream Video over 3G
If you want to stream your video while you’re away from your local network, Air Video has 3G support as well. Though this feature is still in beta, we had no problems getting it working—with minor tweaks. In the Air Video server Properties window, navigate to the Remote tab and check the Enable Access from Internet box.
Air Video gives each server client installation a unique nine-digit PIN that lets you find your server from the iPhone app. Disable the Automatically Map Port option, as it’s easier just to set up port forwarding yourself.
Head to your router’s admin page and set port forwarding on port 45631 using the TCP protocol. If you’re unfamiliar with how to open up ports on your router, refer to the Port Forward website for detailed guides on how to do this for your specific router model. Back in the Air Video Properties window, click the Test Connection button in the Remote tab to check if your router settings work. You should get a pop up window indicating whether or not your server is accessible over the internet.
Playing videos over 3G requires a pretty stable connection, though we were able to get smooth video with three bars of service. Any weaker signal and we would see intermittent buffering notices. We also recommend that you set up a strong password for your Air Video server if you’re running it over the internet.
Install Air Video on a Dedicated Server
One of the coolest things you can do with Air Video is run it on a dedicated server, such as a Windows Home Server. The advantage of this is that you’ll be able to offload real-time processing and storage duties onto the server so you don’t have to keep your desktop machine on 24/7. We’ll show you how to set up server streaming on a Windows Server 2003-based machine.
For our test, we used a HP MediaSmart EX495 with a dual-core processor and running Windows Home Server. CPU load on both cores were up to 90% while converting video, so this is not recommended for Atom-based home servers.
Since Air Video is a desktop app, the trick is to install it as a Windows Service so it won’t need an active user session to run (ie. You won’t have to log into the server every time you want to start Air Video).
First, you’ll need install Air Video as a typical program on your server to configure its settings. We used Windows’ built-in Remote Desktop tool to access our server and logged in as the administrator. Using a network share to transfer the installation file, we installed and configured Air Video as we did before on our Desktop, locating video directories, setting up a password, and enabling remote connectivity as well. The one difference is that we made sure to disable the Start at Login option, since we’ll never be logging into the server to use Air Video. While we the Server Status was set to “Server Running”, we quit the Air Video program.
The point of doing this setup while logged in is to save a configuration state that the Service will be able to access, since we can’t configure the Air Video settings directly when it’s a Service.
To actually turn Air Video into a Service, we downloaded Microsoft’s server tools package, srvtools.zip. We extracted the included files into a directory on our Desktop, and looked for two files: instsrv.exe and srvany.exe. These are the two executables that will turn any program into a Windows Service. Copy those two files and paste them into the AirVideoServer install directly (located in Program Files by default).
Next, open up the Windows Command Prompt and navigate to the Air Video installation folder (C:\program files\airvideoserver). Type in the following command:
This adds a new Service called AirVideoServer, which you’ll be able to see if your system Registry. But this new Service isn’t yet associated with the actual Air Video executable. You’ll need to add that as a new parameter in the registry, which is easily done with a simple .reg file.
Open up Notepad on your server and type the following:
Windows Registry Editor Version 5.00
[ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ AirVideoServer \ Parameters ]
"Application" = "\"C:\\Program Files\\AirVideoServer\\AirVideoServer.exe\""
Save the file as a .reg file on the Desktop and double click it to add the parameter. You can check your registry with RegEdit to see if these changes were done correctly.
Air Video is now properly installed as a Service on your server, but you still have one last thing to do to get it working. By default, Services are run by the Local System, but you need to associate the Air Video Service with the Administrator user so it can access the settings you previously made.
Under Control Panel/Administive Tools, open the Services manager. Find the AirVideoServer Service, right-click it, and open up its properties. Under the Log On tab, choose the This Account option and click Browse. Type in Administrator as the user account and enter your password. Then click OK and close the Window. In the Services manager window, AirVideoServer should now to associated with the Administrator user instead of Local System.
Finally, restart your server and test Air Video out using both Wi-Fi and 3G. Remember to set up port forwarding for your server as well, if you’re doing remote streaming.