Linux Stream Videos and Pictures to an Apple TV with airstream and airimg

Tuesday, May 14, 2013

The first installation step is specific to Fedora, but as long as your particular Linux distribution has a working Ruby environment the airstream gem should install without problem.

Repository Packages Required

yum install avahi-compat-libdns_sd-devel rubygem-gem-nice-install

Ruby Gem Required

gem install airstream

Open Firewall Hole

If you are streaming files from your local computer, airstream will start an HTTP server on TCP port 7000 to stream the file to the Apple TV. If you are streaming from a web URL, such as http://example.com/foo.mp4, the file will stream to the Apple TV from there. If you have iptables or firewalld running, be sure to open TCP port 7000.

iptables Port Rule

Be sure to place the following rule above the last iptables rule in the INPUT chain (assuming the last entry in the INPUT chain is a REJECT rule).

iptables -A INPUT -m state --state NEW -p tcp --dport 7000 -j ACCEPT

Be sure to save the new iptables rules so it persists on iptables service restarts.

firewalld Port Rule

firewall-cmd --permanent --zone=public --add-port=7000/tcp && firewall-cmd --reload

airstream Usage

Assuming the file you want to stream to the Apple TV is foo.mp4, use the airstream command like so:

airstream -o apple-tv.example.com /path/to/foo.mp4

airimg Usage

Assuming the file you want displayed on the Apple TV is foo.jpg, use the airimg command like so:

airimg -o apple-tv.example.com /path/to/foo.jpg

You can also display many pictures in a slide show on the Apple TV by using a wild card with the airimg command like so:

airimg -o apple-tv.example.com /path/to/*.jpg

An additional switch can be added to display pictures for particular lengths of time.

The expected behavior when displaying many pictures in a slide show is to show one picture after another without interruption, but I have seen situations where displaying many pictures in a slide show will show the picture, go back to the last thing displayed on the Apple TV, display the next picture, and rinse and repeat. I have not been able to figure out why this behavior happens and other times does not.

References

Linux and apple tv

Push video and images to ATV with linux with airstream; cmd (Fedora 18 install instructions)



comments powered by Disqus