At £29 the Raspberry Pi is a great device for tinkering around and learning about Linux and programming. But the Pi also makes a great Media Center device thanks to its cheap price, lower power consumption, small size and the ability to run XBMC.
XBMC is an open source Media Center project original designed for the first Xbox (hence the name Xbox Media Center) and runs on a variety of platforms including Android, Windows and Linux. As XBMC is an open source project you could make your own build for the Pi but the fantastic Raspberry Pi community have put together various pre-made packages of XBMC specifically for the Pi.
So the first thing you need to do is get a Raspberry Pi, head to raspberrypi.org, select a distributor. In my case I ordered one from RS Components and one from element14 and both were pretty good.
Once you have your Pi you will need to install a distribution. The Raspberry Pi uses an SD card for storing the operating system and programs so you will need a SDi. I use a 16GB card but you could get away with a 4GB card, the nice thing about using SD cards is that you can have different distributions on each card so its really easy to try out new configurations.
Connecting up a Raspberry Pi to your TV is best done with the HDMI cable, the Pi outputs audio via HDMI so it’s the easiest way to get the audio and video output all in one cable. You can also route audio out through the headphone port on the Pi but there is no optical output on it. Video can also be connected up using the Composite Video port but this is standard definition and not HD so its ok for playing around with but not great. The audio settings are in the Settings/System/Audio Output. Here you can choose between HDMI audio or Analog output. You can also select AC3 and DTS options.
When it comes to installing an operating system on the Pi there are plenty of options to choose from. For the Media Center project you will want to use XBMC and there are a few different builds to choose from: Raspmbc, OpenELEC, XBian and DarkELEC are some of the most popular. All of them are based on XBMC and designed for the Raspberry Pi, they all have subtitle differences and very strong communities around them. For this guide I am going to use Raspbmc as it’s the distribution that I have spent the most time with.
Right so you have you Pi and SD card next you need to download the XBMC image, so head to Raspbmc http://www.raspbmc.com/download/ and get the download. There are installers for Windows and Mac OSX or you can download an image and copy it to the SD, all the details are on the download page and it’s all pretty simple to get working.
Once you have XBMC up and running you can use it to watch videos in encoded in mp4 format either attached via a USB drive, a network drive or via a DLNA server. If you want more information on XBMC I would head to XBMC.org, there are tons of tutorials and guides to getting started with XBMC.
If you want to watch DVD rips or Windows Media Center Recorded TV files on the Raspberry Pi you will need a MPEG2 decoder and the Raspberry Pi foundation sell the license key for £2.40. Installing the license is very simple, you purchase a license from the Raspberry Pi store and they email a code to you. The codes that the Raspberry Pi foundation email should then be added to a file called config.txt which is located on the boot partition of the Pi’s SD card. You must do this for each image you have built for the Raspberry Pi and the code is linked to the serial number of your Pi so you will need to purchase a code for each Pi you own. You can read more about what the codecs get you in this blog post.
Most builds of XBMC have a simple way of adding the code. In Raspmbc you can go to the Programs section and load Raspbmc settings and then in the system configuration tab go to advanced settings and click on the MPEG2 codec license and enter the key you got in your email. The Raspberry Pi foundation also have VC1 codec licence that you can install on the Pi if you need that format.
With the codecs you can now you can play h.264 and mpeg2 encoded files so that means you can record TV shows in Windows Media Center and play them on the Raspberry Pi (Unfortunately not copy protected shows). You can copy media content to a USB stick and plug it into the Pi and play content straight from it. So you could record a show on your Media Center system and copy it to a USB drive and then play it on the Pi. I used a powered USB hub so I can plug a 1TB external hard drive in to it.
You can find the USB content in XBMCs videos section, click Add Files and then click on the drive name and you will see all the content on the drive and be able to play them in XBMC.
You can also use UPNP and browse content stored on NAS devices, Windows boxes and other servers. To do this you click on Add Video sources and then click on Browse. You can then pick from pick from a variety of sources. All my UPNP machines on the network where listed as a source, I added my PC as a source and then I could browse the content and playback the videos on the Raspberry Pi. I can play mkv, WMV, WTV files and MOV files stored on my Media Center box on the Pi.
Most NAS boxes have DLNA servers built into them and Windows Media Player is DLNA server. You could also setup another Raspberry Pi as a media server, plug in external storage into it and stream the content to a Raspberry Pi client, see this post for more details. You could even stream content from an iPad or Android device using an app like Twonky Beam or Samsung Allshare, I was able to send videos from my phone to the Pi using Twonky Beam. Network shares can be added a a source, so you could share out folders on a PC or server and connect to them from the Pi.
There are other options for consuming content on the Pi, if you have Media Center system setup you can use DVBLink from DVBLogic. DVBLink network enables Media Center TV tuners so you can watch TV on other devices in the home. As well as having clients for Android, Windows Phone and iOS there is an addin for XBMC. So you can install the addin on your Pi XBMC setup and then watch live TV.
To get this working you need to download DVBLink for Windows PC and walk through the setup wizard to network enable your tuners, the best place for help on DVBLink is to go to DVBLogic’s forums. Once you have DVBLink up and running you can download the DVBLink XBMC addin and then watch live TV on the Pi browse the EPG and setup recordings.
There are other options like using a networked TV tuner. I have a HDHomerun which is a TV Tuner with a network port so you can access it from any device on your network. Getting this working is pretty simple and I have written a step by step guide here and it’s another way of getting live TV on the Pi.
There are also streaming options as XBMC supports many addins, there are many addins for video services like YouTube, Vimeo and others, for live TV there is TVCatchUp which has most of the UK terrestrial channels and works very well on Pi.
As well as using a mouse and keyboard to control XBMC you use a remote control. I got my old Windows Media Center remote with USB IR device and plugged it in to the Pi. You will need to configure the remote and map the buttons, you can find out how to do that from this guide.
You could also use a smartphone or tablet app to control XBMC. I use the official XBMC remote app for Android which works very well. As well as working as a remote it also can give you things like now playing info and you can browse content stored in XBMC. You can find the app in Google Play.
There are many other things you can do with XBMC including using CEC over HDMI to control the Pi with your normal TV remote control. CEC enables passing remote control commands from one device to another so your TV remote can control XBMC. You can also use XBMC built in PVR features which are still in development and use back end servers like TVHeadend, DVBLink, MediaPortal and MythTV. You can read more about XBMC’s PVR here.
I haven’t talked about music or pictures in this post but with XBMC sharing music and pictures is just about the same as with video. So the same features apply, you can access content stored on a USB drive, network share or UPNP.
You may also want to get a case for your Raspberry Pi, there are lots available and I got a laser cut Acrylic case for £9.99 (more details here)
So for £29 the Raspberry Pi makes a great little Media Center and at the same time will help you learn a lot about XBMC and Linux. The way I got it to work in my home is by having a Windows Media Center PC with all my content on and have it serving TV via DVBLink, I then use the Raspberry Pi as a Media Center Extender and plug it into which ever TV I want to watch the content on.
I have only covered some of the basics here, there is a lot more you can do with XBMC but hopefully this will get you started and it would be great if we can keep updating this post with tips on using the Raspberry Pi.
{"id":null,"mode":"button","open_style":"in_place","currency_code":"GBP","currency_symbol":"\u00a3","currency_type":"decimal","blank_flag_url":"https:\/\/thedigitallifestyle.com\/w\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/thedigitallifestyle.com\/w\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"none","featured_image_url":false,"featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Leave a tip","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"TheDigitalLifestyle.com","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"TheDigitalLifestyle.com","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for being a supporter!","payment_confirmation_title":"TheDigitalLifestyle.com","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
Nice article, thank you
great write up. I will be tackling this project here in a couple days. Thank you.
Simon Erkelens liked this on Facebook.
Richard Danis liked this on Facebook.
RT @isdixon: TDL Post: Building a Media Center with a Raspberry Pi: http://t.co/Qz5fjSAx @raspberry_pi
Great post was very interesting read it. Need to buy my first Raspberry PI soon I think! Thanks
Thnaks for this post, it makes me movitvated enough to buy a raspberry pi to use id as a media center ! I chose OpenElec for the system.
What surprised is how simple it is to get a full usable media center with a raspberry pi. No advanced knowledge is needed, which is pleasing.