COMP 3000 2011 Report: XBMC

From Soma-notes
Revision as of 21:20, 21 October 2011 by Akwiatko (talk | contribs)

Report - Part 1

Friday, October 14, 2011

5:26 PM

Background:

XBMC is short for Xbox Media Center. This operating system is focused primarily on media playback, including music, podcasts, television and movies. Its main goal is to serve as a versatile dashboard for personal media, acting as a set-top box. It is an open source software solution whose target audience/usage is similar to that of the Apple TV, PlayStation 3 and Xbox 360. XBMC is meant as robust operating system for home theatre PCs.

XMBC is itself developed by the XBMC Foundation. It is a non-profit organization that is made up of volunteer developers/translators from around the world. These developers were the original creators of the distribution, and have been updating XBMC since 2003.

XBMC can be downloaded as a media player/dashboard for Windows, MacOS, Linux, and can be used as a standalone Linux OS for PCs as well as other devices such as Xbox and iOS devices like the Apple TV, iPad, iPhone and iPod Touch. Distributions for all these platforms (except the original Xbox) can be obtained from xbmc.org and Cydia which is an alternative app store for iOS users.

The stand-alone XBMC (XBMC Live) with an embedded Linux OS (Ubuntu) is approximately 490 MB in size. The specific installation instructions cite a 2 GB minimum capacity USB key in order to boot/install from USB.

XBMC gets its namesake from the platform that it was first developed for. In 2003 XBMC was released, but only as an OS for hacked Xbox's. It was a notable piece of software, as it turned the video game console into a remarkably well featured media center. The OS was acclaimed for having great flexibility in terms of video and audio playback, as well as expanded functionality through user-created plug-ins and utilities. In many regards XBMC was the first major media center platform, predating the Apple TV, PlayStation 3, and other prominent set-top boxes.

XBMC quickly grew beyond its titular platform, making its way to Windows, MacOS and Linux, as well as hardware specific builds for PlayStation 3 and Apple TV. The software base of XBMC has also been used commercially as the backbone for the media center platform Boxee, which makes its own set-top boxes. While under a different name, XBMC has become the core for a widely popular consumer set-top box company.

Installation/Startup

Setup in Oracle VirtualBox VMWare

There were no real issues with installing XBMC in VirtualBox. I simply chose to create a virtual machine for a "Unknown/Other" OS type. The settings are detailed in the screenshot above, but the important details are as follows:

  • RAM: 1 GB
  • HDD Size: 10.4 GB (Dynamically Allocated)

UPDATE: Enabled 3D Acceleration within VirtualBox. Noticed a slight graphical improvement, but there was still no hardware acceleration within XBMC. This was likely due to the fact that I couldn't install the guest additions for XBMC. Sadly, I wasn't able to find suitable instructions for installing XBMC guest additions.

The installation process itself was smooth, albeit a little slow. It took around 5 minutes for the actual installation to complete, despite the fact that it is typically a lightweight installation as a host OS. When I installed XMBC on a HTPC and even an original Xbox (733 MHz CPU, 64 MB RAM) it didn't take more than a minute on either.

Aside from duration though, the installation went off without a hitch. Two partitions were created, filling the 10 GB disk. XMBC installed the appropriate drivers for USB devices, allowing me to use external controllers (such as an Xbox 360 Controller) to navigate the interface.

Basic Operation

Upon starting XBMC up, one major problem became readily apparent. XBMC is a graphically oriented OS, one that requires some graphical power to even run its basic dashboard smoothly. Virtualization, however, is only limited to the CPU, so the guest XBMC OS ran excessively very slowly, with a frame rate below 5 FPS. This is quite problematic, as the GPU is heavily involved in any interaction with the OS. This unfortunately cripples all of the functionality of the OS.

I spent some time looking into hardware acceleration for VirtualBox. However, most of my research turned up the same result; that it is only possible on major platforms acting as guest OSs (Windows, Mac, Linux). I will continue researching what alternatives might be available, but for now it is an exceedingly slow OS to virtualize.

Even browsing the basic dashboard took a frustrating amount of time. However, the actual design and interactivity of XBMC is impressive. The dashboard looks fantastic (even if it animates at the same speed as a slideshow), and actually importing videos and music was very intuitive, automated and took very few inputs (thankfully).

However, the keyboard controls for XBMC were quite intuitive, which was very appreciated in a virtualized environment. It is very easy to see how these controls would work well on a remote, or basic controller (tested with an Xbox controller).

As you can see from the main screen on the dashboard, access to personal media is incredibly quick and easy. XBMC also allows media to be imported by user-defined sources. These "sources" can be local or network sources. This is an intuitive system for defining and including specific media and libraries. Additionally, there are many robust and automated library building systems. XBMC is capable of building a remarkably large and complete database of metadata for any imported media, using online libraries like IMDB and TheTVDB.com as well as mp3tag to match metadata and artwork to entries in your movie, television, and music libraries. This feature is fantastic for users who like having their media organized (myself included); it also allows users to take advantage of the well-designed aesthetic of XBMC without having to take the time to manually input the metadata.

This is an ideal solution for organizing media from a variety of sources. While similar data would be included and displayed if obtained through a singular outlet (iTunes, Zune, etc.). However, in most cases, most users get their digital media from a variety of sources(imported CDs, DVD rips, torrent downloads, etc.). XBMC has one of the only systems in place that accommodates this reality.

In terms of it's use as a media player, XBMC was very impressive for both its ease of use, and format robustness. While sluggish, I was able to easily access my NAS and play a 480p movie. The video itself ran at a slideshow pace, but I was impressed with how few operations were required to open a video on a network device. Considering the level of complexity involved in using my NAS in a Windows environment, it was refreshing to see how easy it was to use.

While I was already familiar with XBMC's versatility with media files from all formats and codecs, its flexibility still deserves credit. Despite having a wide array of file types and formats in my collection, XBMC was able to play everyone one of them without issue. The same cannot be said for some contemporary home theatre platforms. Even years later, it is still much better at handling many varieties of video files than an Xbox 360 or PlayStation 3. This open source solution is still the easiest and in many ways, best platform for an HTPC.

XBMC also has embraced the idea of crowd-sourced applications. User-created add-ons and plugins are available. While there isn't a great deal of selection, those that are present heartily extend the usage of XBMC. While many act as important media extensions, including YouTube functionality, Netflix and others, there are add-ons that allow XBMC to take on other tasks.

Automated downloaders and torrent clients are available, allowing for XBMC to act as an Internet PVR. Emulators and game library plug-ins provide users with a retro arcade experience. Video plug-ins that improve you movie experience by automatically detecting the movie you are about to watch and gives you movie trivia questions related to that movie as well as playing trailers of current movies out in the theatre. Through these extensions, XBMC can provide a unique array of functionality, one that could only be found in an open-source environment.

Overall, XBMC is a media center platform that rivals its commercial counterparts, and in many respects excels beyond them. A great deal of the aforementioned functionality wasn't available for me to test out thoroughly; due to the lack of hardware graphics acceleration. These functions were instead tested out on other platforms (PC and Xbox hardware distributions). However, these distributions are functionally identical (another major advantage of XBMC). This may pose a problem for future sections of the report, but hopefully we can test out the Linux distribution of XBMC outside of a virtualized environment.

Usage Evaluation

As stated before, it is difficult to obtain a fair testing environment for XBMC through paravirtualization. However, in terms of meeting its design goals, XBMC remains an excellent media center OS. It recognized and played every media file in my library, regardless of format or codec. As a library/media manager, it was excellent; automatically organizing music, movie and television libraries, and populating them with the appropriate metadata and graphics.

Aesthetically, XBMC is equally impressive. The interface is well laid out, and intuitive. It also manages to take advantage of the detailed metadata for these libraries. For an open-source OS, XBMC presents a smooth interface that rivals major commercial platforms like iTunes and Xbox 360. In addition to this, users have the flexibility of changing the feel of the interface through several skins (themes) designed by the open source community. Some skins are specially optimized for particular platforms it runs on.

That alone speaks volumes about XBMC. It is a free and open-source distribution which is comparable and in many respects superior to platforms which have been created and backed by some of the largest and most successful software companies in the world.

It is also extensible in many interesting ways, taking advantage of being both an Internet connected device and an open platform. Through these plugins XBMC is almost limitless in its media center functionality, acting as a great interface for IPTV and other online content providers (Revision3, YouTube, IceFilms etc.) as well as being an arcade, supporting game ROM libraries and major emulators.

Seeing the potential customization and functionality of a stand-alone XBMC enabled device has made me very excited to incorporate it into a personal media center. Personally, I see the virtualization issues as an opportunity to test it out in a concrete environment. It is unlikely that there are many distributions chosen for this report which inspire the same sort of interest amongst students.

References