Linux-powered devices are everywhere. They're so ubiquitous that Linux often isn't even mentioned. It's just there. One case in point is the Popcorn Hour A-100. Linux isn't mentioned in the technical specifications of the device at all. What is mentioned are the formats and codecs and other capabilities of the device, and what a device it is.
The Popcorn Hour is a reference hardware implementation for a new Linux-based middleware layer from Syabas Technology called the Networked Media Tank. According to its Web site: “The Networked Media Tank (NMT) is a state-of-the-art integrated digital entertainment system that allows you to watch, store and share digital content on your home network.”
Think of tank in terms of fish, not Abrams or Sherman. The NMT is designed to be able to access all your media, no matter what computer or networked storage system it resides on, and display it on whatever television you connect to it. According to Syabas, other devices are in the works from other manufacturers that will be using the same NMT middleware and similar hardware.
The Popcorn Hour is not designed to compete with your TiVo or MythTV box; it can connect to on-line video streams and podcasts, but it doesn't do live over-the-air (or cable) television. The closest device it competes with, at least partially, is the Neuros OSD. The Neuros can encode video though, which is something the Popcorn Hour can't do—it's strictly a playback device.
For me, the encoding capabilities of the Neuros OSD are not needed. I've already digitized most of my DVD library. I have a mix of media in both MPEG-4.2 and H.264 formats, and the Popcorn Hour's support of both formats was one of the things that attracted me to it over the MPEG-4.2-only Neuros OSD. For more on the differences between MPEG-4.2 and H.264, see the When MPEG-4 Isn't MPEG-4 sidebar.
Another thing that caught my eye on the Popcorn Hour were the various outputs, which include composite, component, S-Video and HDMI. I currently have a standard-definition television, but we plan on replacing it with an LCD-HDTV before the end of the year, and the Popcorn Hour will work on both. It can output NTSC, 480p, 720p, 1080i and 1080p among others.
The Popcorn Hour casing is sleek and rather empty inside. Only about one-third of the case is the actual hardware for the device. The other two-thirds is reserved for installing your own ATA hard drive.
Under full operation, and especially with a hard drive installed, the Popcorn Hour becomes quite warm, so although the nice flat top of the unit seems to be begging for something to be stacked on it, it's probably a good idea to give it a little breathing room all the way around.
Installing a hard drive into the Popcorn Hour is essential if you want to use it as a file server or BitTorrent client. For those uses, there needs to be some sort of local storage. Installing a hard drive is as easy as sliding it in and screwing it to the bottom of the case. All of the necessary screws and cables are provided. One nice touch is that the top of the case is attached with thumbscrews, so accessing the interior is easy.
Setting up the Popcorn Hour is easy. For basic operation, you simply plug it in and turn it on. From the factory, the Popcorn Hour is set to detect the appropriate video output settings automatically, so after a few seconds of my television blinking, the startup screen appeared and the main interface loaded.
The Popcorn Hour interface is attractive, but it is not flashy or fancy. It is very serviceable, and it gets the job done.
If you have DHCP set up on your network, the Popcorn Hour will connect automatically. Otherwise, you need to put in the appropriate network settings manually. On my network, the Popcorn Hour was given the IP address 192.168.1.148, which I mapped in my /etc/resolv.conf file to popcorn, so in the examples in this article, that's what I use.
After the home screen appeared, my first step was to visit the Setup section to set my default output settings—so it doesn't have to scan for the correct setting every time it starts—and to install the extra apps to the hard drive along with setting other preferences.
The initial step of installing the apps to the hard drive involves making sure all firmware updates have been applied. The firmware upgrading process was easy and took only a few minutes. Once the firmware is at the latest version, the hard drive apps can be installed.
The apps can be installed over the Internet or from a USB key (if the Popcorn Hour doesn't have an Internet connection). After installing the apps, my next step was connecting it to my NFS server. The process was easy once I actually read the documentation for the proper URL formatting. By default, when specifying an NFS address, such as nfs://fileserver/mnt/files, the Popcorn Hour tries to connect over UDP. For my setup, I had to use nfs-tcp://fileserver/mnt/files, and then it worked.
For my setup, I installed the NFS server and BitTorrent client. There is also a Samba server option, but I don't have any Windows machines, so I didn't enable it. Once installed and started, I was able to mount the Popcorn Hour NFS share from any of my machines with the following:
mount -t nfs popcorn:/opt/sybhttpd/localhost.drives/HARD_DISK ↪/mnt/popcorn
The brief documentation that comes with the Popcorn Hour is Windows-centric, so I had to use the showmount command to discover what the export was called on the Popcorn Hour, like so:
danielb@d610:~$ showmount -e popcorn Export list for popcorn: /opt/sybhttpd/localhost.drives/HARD_DISK 192.168.1.0/ ↪255.255.255.0
The on-line forum and wiki also came in very handy whenever I had similar questions.
One of my first orders of business after the initial setup was out of the way was to test the capabilities of the Popcorn Hour to see whether it could play all the formats advertised.
For video tests, I used Big Buck Bunny from the Open Movie Project. This Creative Commons-licensed animated short is available at bigbuckbunny.org in several video formats and sizes. The sizes range from 1920x1080 pixels (1080P) at the high end down to 320x180 pixels at the low end. For each size, there is a selection of container formats, including AVI, Ogg, M4V and MOV. Each container format has a different video format inside it, including MPEG-4.2, H.264, MS MP4 and Theora. The audio is in MP3, AAC, AC3 and Vorbis formats. These various versions provide a pretty good test suite for the capabilities of any video player.
The only container format it doesn't have is Matroska (.mkv). This, however, was not an insurmountable problem, because it is simple to create it, thanks to mkvmerge. For more on this and the Matroska container format, see the Matroska sidebar.
The most dominant video format of the past ten years (or more) has been MPEG-2, the format DVDs use. Thankfully, the Open Movie Project has me covered there too. Big Buck Bunny can be downloaded as a DVD ISO file from Archive.org (www.archive.org/details/BigBuckBunny), which can be burned to a DVD or simply opened by the Popcorn Hour (more on playing ISO files later).
The Fast Forward button on the remote works as advertised for all supported video files. Rewind works with varying levels of success on .avi, .mov and .m4v files. Rewind did not work at all with the .mkv files I have. Hopefully, a firmware upgrade will fix this.
All the video formats I tried worked with the exception of Microsoft's implementation of MPEG-4.2 (msmp4) and the Theora-encoded version. I also noticed some slight jitteriness with the 1080p versions when I played them off my NFS server. They played without a hitch when the files were on the local hard drive. The scaling that the Popcorn Hour applied to the large files to shrink them down to my television screen looked flawless. There was pixelation (naturally) when I played the smaller versions that had to be scaled up, but they still were very watchable. Audio playback likewise was flawless.
For audio tests, I tried a variety of files, including MP3, FLAC, Ogg Vorbis and M4a. The Popcorn Hour had no problems with the MP3 and FLAC files, but it would not play the Ogg or M4a files. The failure of the M4a files was surprising, as both the M4a container and the AAC audio format are listed as supported. More than 95% of my music is in either MP3 or FLAC format (with FLAC being the preferred format), so the lack of M4a and Ogg support is not that big of a deal, but I hope they will be enabled at some point.
One thing I should note is that the Popcorn Hour does not play any sort of DRM-infected content. So, if you've been purchasing things from iTunes and/or similar digital stores that cripple their content, the Popcorn Hour probably is not a good purchase.
One of the big selling points of the Popcorn Hour is the built-in BitTorrent client. My experience with it has been mixed.
On one hand, the BitTorrent client works. On the other hand, it's very painful to use with the remote. I do like the fact that I can check on the status of torrents I am downloading or seeding right on my television, but anything more than that (like setting up the schedule) is difficult at best. Thankfully, there is a Web interface that is much easier to use.
The Web interface has all the features of the TV interface with the addition of an upload interface to add new torrents. To add torrents to the list, you first need to download the .torrent file to your desktop and then connect to the Web-based torrent front end and upload the file through that. The address for the Web-based front end is at popcorn:8883/torrent/bt.cgi.
The Online Services area has a lot of content preconfigured for it. The biggest section is the Media Service Portal, which is filled with dynamically updated content from various providers, such as YouTube, Revision3, DLTV, SayaTV, Vuze, Mevio and even a selection of podcasts from the NBC, CBS and CNN news networks.
There also are slots for adding podcasts (video or audio) of your own. Simply choose the Edit link from the Online Services page, and then enter the title of the podcast and the RSS feed URL. After saving your changes, when you select the newly created entry, the Popcorn Hour will fetch and parse the RSS and give you a link to the audio or video file. Select it, press the Enter button, and the podcast will play after a delay. The length of the delay is dependent on your Internet bandwidth and the size of the file you are downloading. In my testing with some large-format (480p and up) video podcasts, the Popcorn Hour had trouble downloading the files and even crashed a couple times. So, although it's nice that the Popcorn Hour can connect to RSS podcast feeds that I specify directly, a much more reliable solution for me is to download them on my local file server and then access them through the NFS share.
The Popcorn Hour can play DVDs either from a USB DVD-ROM drive plugged in to one of the USB ports or from a DVD ISO file. There is one huge caveat to this ability, however; it can't play encrypted DVDs, which basically covers nearly all commercial DVDs and ISO files of those DVDs. The only DVDs I found in my collection that can be played directly by the Popcorn Hour are the ones I purchased at the dollar store and Big Buck Bunny from the Open Movie Project.
Assuming you have some unencrypted DVDs or ISO files, playing them is similar to using any off-the-shelf DVD player. One note though: playing an ISO of a DVD off of a network share takes a lot of bandwidth, so you'll have your best luck with NFS and a wired connection as opposed to Samba and/or a wireless connection.
For people who don't want to go to the trouble of setting up an NFS or Samba server, there is another option for sharing media from your computer to the Popcorn Hour: myiHome. The myiHome application can be downloaded from www.networkedmediatank.com/download/myihome.html. There are versions for Windows, Mac OS and Linux.
For Linux, you simply download a tar.gz file. Untar it, and you will have a folder named something like myiHomeLinux-v5.0.2. Inside this folder is a startserver.sh script. Running this script starts myiHome. To stop it, simply press Ctrl-C, and it will quit.
Once the server is started, it shows up in the list of media sources on the Popcorn Hour automatically. On Linux, the server automatically looks in your home directory for folders named My Videos, My Music and My Pictures.
After connecting to a myiHome server, you can set various preferences from the television interface, such as selecting the photo folder to use as a slideshow source when playing back music and vice versa, among other things.
When navigating music or video folders on a myiHome server, you have the option to play the contents randomly with the Shuffle command. There also is a Search button that you can use to find specific tracks or photos.
Navigating with the remote is easy; you simply use the arrow keys on the remote and the Enter key to select things—much like navigating DVD menus. To go up a directory, use the Return key. The combination number/letter keys are used during initial configuration when setting network settings and configuring shares, and I haven't had much use for them since.
The DVD-specific keys (Menu, Title, Angle and so on) work as expected with DVDs, but are useless otherwise.
My biggest complaint about the remote is the location of the Page Up and Page Down keys. They're way up in the top-right corner. A much better location would have been next to the arrow keys.
There is a Suspend BT button on the remote that the manual says is for suspending all BitTorrent traffic with one click. It does not work at the time of this writing, but the promise is that a firmware update will enable it (hopefully, by the time you read this). I hope it's sooner rather than later, because although it isn't hard to suspend BitTorrent traffic, it does take several clicks with the remote to do it, and you have to stop whatever you're watching or listening.
There also are some colored buttons at the bottom of the remote that don't do anything at the moment.
One trick I learned was that if you want to play everything in a folder, first navigate into the folder and then press the Play button. If you want to play only a single file, highlight the file and press the Enter button. Also, when playing a file, you need to press the Stop button before you can use the Return or Home buttons.
The Popcorn Hour is a very capable little box. It plays a wide variety of music and video formats—provided they aren't encumbered with DRM.
Right now, there are several unfinished pieces, but thankfully, firmware updates are coming regularly, and each one unlocks more functionality. Despite the rough spots, I have to admit I am perfectly happy with the core functionality, and I recommend it (as long as you don't have a lot of DRM-infected content). It is well worth the modest purchase price of $179.