The Popcorn Hour A-100
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.
According to the Matroska home page, “Matroska aims to become the standard of multimedia container formats.” A lofty goal to be sure, but it's making progress due to the tremendous flexibility the container format has.
The main trick that Matroska has over other container formats is that it can support multiple audio and video streams inside a single file. This enables you to, for example, have multiple selectable languages to go along with the video portion of the file. If you think that sounds like a DVD, you're on the right track. Many people feel that the era of physical formats, like DVDs and Blu-ray discs, is coming to an end. In fact, many of them feel that Blu-ray is the last physical format. The only problem with this line of thinking is that if the world moves away from physical formats, whatever replaces them should be able to do everything (or almost everything) they can do. This includes multiple languages, alternate video streams, subtitles in various languages and other features. The LGPL-licensed Matroska is trying to become that format.
Matroska containers can contain nearly any audio and video format, and one of the ways for putting those formats into a .mkv file on Linux is with mkvmerge. The mkvmerge tool can be downloaded as part of the mkvtools package from www.bunkus.org/videotools/mkvtoolnix/downloads.html. Follow the directions for your distribution to install it.
To change the container of any video file from whatever it is to Matroska, simply launch the mkvmerge GUI, and click the Add button to open the file you want to convert. By default, it will save the output .mkv file to the same directory. If you want to change that, click on the Browse button in the lower-right corner of the window, and choose where you want to save it. Finally, click the Start muxing button, and mkvmerge will begin the process of extracting the audio and video from the existing container and putting it all into a Matroska container. Because the tool is not converting the audio or video to a different format, the process is lossless and does not take long.
If you want to do the muxing from the command line, the GUI tool offers a Copy to Clipboard button that gives you the command and all of the options that it will do when you press the Start muxing button. The general command is this:
mkvmerge -o "destination-file.mkv" -a 1 -d 0 -S ↪"original-file.avi" --track-order 0:0,0:1
At the end of the process, you will have a Matroska container with whatever audio and video you copied out of the other container inside of it.
For more on Matroska, see matroska.org.
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.
- October 2014 Issue of Linux Journal: Embedded
- Encrypt Your Dog (Mutt and GPG)
- Practical Tiny Core in the Fire Service
- DevOps for Dummies
- Tech Tip: Really Simple HTTP Server with Python
- Python Scripts as a Replacement for Bash Utility Scripts
- New Products
- RSS Feeds
- Open Axiom
- Cooking with Linux - Serious Cool, Sysadmin Style!
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal