If you have followed my guides you know I spend a decent amount of time focusing on Windows Media Center. However, I don’t like to lock myself into just one Front End, but instead like to test out different Front Ends. If one comes along that does a better job at what I am looking for with my HTPCs then I have no problem switching over. I have messed around with XBMC for quite some time, but for one reason or another it just never quite fit in with what I was looking for. However, some of the changes I have seen come through with XBMC of late really have me looking at it as a serious contender for my HTPCs. Over the next couple of weeks I hope to put together a few writeups highlighting XBMC and some of the great features it has to offer.
One of the most important features I look for when looking at a front end is the ability and ease to bitstream HD audio (DTS-MA and TrueHD) from my Blu Ray mkvs. As I have documented previously, I found the easiest way to bitstream HD Audio was using a 3rd party player called Media Player Classic – Home Cinema (MPC-HC). Being able to use MPC HC is not enough though, it has to integrate into whatever Front End I use seamlessly. I have been able to successfully launch MPC HC from Media Browser, so let’s take a look at how to do the same with XBMC.
Files To Download:
- MPC HC – To ensure that bitstreaming works, you need to get the latest build, which can be found here.
- DirectX End-User Runtime Web Installer – necessary to run the latest MPC HC
- Optional – EventGhost, AutoHotKey, or LM Remote KeyMap
- Optional – NotePad++
Setup (I am assuming you already have XBMC installed):
1. Download and install MPC HC as well as the DirectX End-User Installer (if needed)
2. You need to tell XBMC to use MPC HC as an external player. There are two methods that can be used:
UPDATE- UNLESS YOU ARE USING AN EARLIER VERSION OF XBMC (I THINK 9.04 OR EARLIER) SKIP 2(a) AND GO RIGHT TO STEP 2(b) WHICH DISCUSSES CONFIGURING USING PLAYERCOREFACTORY.XML. BIG THANKS TO STEELMAN1991 FOR GIVING ME A HAND SORTING THROUGH ALL THIS.
(a) AdvancedSettings.xml – this method is fairly straightforward, simply specify the location of the 3rd party player you want to use and adjust a few other settings (such as hiding XBMC when launching the 3rd party player). Copy the below code (obviously adjust the player path if yours is different) into NotePad++, save the file as advancedsettings.xml, and save in your Userdata folder (Users\[user]\AppData\Roaming\XBMC\)
<advancedsettings> <video> <defaultplayer>externalplayer</defaultplayer> </video> <externalplayer> <filename>c:\Program Files\MPC HomeCinema\mpc-hc.exe</filename> <args>-fs</args> <forceontop>true</forceontop> <hidexbmc>true</hidexbmc> <hideconsole>false</hideconsole> <hidecursor>false</hidecursor> </externalplayer> </advancedsettings>
(b) Playercorefactory.xml – this method allows for more options then with advancedsettings.xml. Not only can you specify an external player, put you can also assign rules for when a player should be used. For instance, I only really care to have MPC HC launch for my Blu Ray mkv movies for the purpose of bitstreaming HD Audio. For all other mkvs I am fine just using the internal XBMC player. All my Blu Ray mkvs have “1080p” in the filename, so using playercorefactory.xml I can actually specify that I only want MPC HC to launch for mkvs that have “1080p” in the filename. Pretty neat, huh!!! You may ask why not have MPC HC launch for all mkvs. The reason is because every once in a while I run into issues with MPC launching from Media Browser where it either launches but doesn’t close properly or it launches but the WMC internal player starts playing a movie as well. I don’t mind dealing with a little bug here and there, but my non Blu Ray mkvs my wife usually plays when I am not home, so if I can minimize or eliminate the chance of bugs when she uses the better. Copy the below code (obviously adjust the player path if yours is different) into NotePad++, save the file as playercorefactory.xml, and save in your Userdata folder (Users\[user]\AppData\Roaming\XBMC\)
<playercorefactory> <players> <player name="MPC-HC" type="ExternalPlayer" audio="false" video="true"> <filename>C:\Program Files\MPC HomeCinema\mpc-hc.exe</filename> <args>"{1}" /fullscreen /close</args> <hidexbmc>false</hidexbmc> <hideconsole>false</hideconsole> <warpcursor>none</warpcursor> </player> </players> <rules action="prepend"> <rule filetypes="mkv" filename=".*1080p.*" player="MPC-HC"/> </rules> </playercorefactory>
One interesting thing I noticed, by default a playercorefactory.xml file is saved in the C:\Program Files\XBMC\System folder. If you delete this file and instead only use the playercorefactory.xml saved in the UserData folder XBMC ignores any rules set forth. So for example using the xml above, XBMC will play all videos with MPC HC instead of only 1080p mkvs as specified in the rules. If the playercorefactory.xml file is not deleted then XBMC will honor whatever rules are set. Also, you may be asking why not just edit the playercorefactory.xml file in the System folder instead of creating a new one in the UserData folder? The main reason is if you do a clean install of XBMC the files in the system folder will be overwritten so you lose any custom settings. Using the UserData folder all settings will remain even after uninstalling (as long as you uncheck the option to delete this folder).
Obviously you can customize the settings to your liking, and for more information I would recommend reading the Wiki that was put together over on the XBMC forum. I am very impressed with the integration of the 3rd party player in XBMC. When launching MPC from MediaBrowser you can see the desktop background as the switch goes from MediaBrowser to MPC. With MPC launching from XBMC you feel like you are just using the internal player, the transition feels seamless. Also, don’t forget you can easily launch XBMC from WMC as well. Stay tuned as over the coming weeks I hope to post a few more articles looking closer at XBMC.
{ 26 comments }
this is actually really helpful as if you want to run xbmc and 1080p on a low powered htpc you would need to use MPC-HC as it can do hardware decode…..
@Damian – sent you a PM via the xbmc website regarding this guide – could you check it out and get back to me – thanks
@amit – you really need to keep up to speed – xbmc has been doing hardware acceleration natively for months now!!!!!!!!
…. only in the nightlies (for windows) which is what I’ve switched to – looks very promising!
Hi Damian
Just a quick question – have you tried using an external player with any of the new nightly builds – I cannot get it to work in any of them.
Hey Steelman,
No I haven’t tried a nightly build. I actually just checked the forums but can’t find them where I used to look. If you have a link I can download and test out
Hi Damian
Here you go http://mirrors.xbmc.org/nightlies/win32/
OK, just tested using r31901 and MPC HC launches without issue (using PlayerCoreFactory)
Damn there must be some sort of gremlin in my system – I can’t even get the option to ‘play using…’. Just fully uninstalled (including profile folder) and reinstalled will see what happens once library has rescraped (three cheers for backups – oh and the ‘Open’ on telly – hurrah)
Good luck. Where would the fun be if everything worked as expected!!!
Hi Damian
Think I’ve solved it and if so – might be something worth adding to the guide. Could you check your settings and see whether you are running in ‘fake’ or fullscreen mode – I was trying to use the external player in fullscreen mode – if as I suspect it doesn’t like it then you might consider changing the guide to warn others.
Derek
Derek,
Sorry for the late response, somehow I missed your comment. In MPC HC I do not have “Launch files in fullscreen” checked off, I rely on playercorefactory to run it in fullscreen mode (I assume this is what you mean by fake mode?). I will update the guide to mention this. As always, thanks for pointing out.
Cheers
Damian
Damian,
I tried doing the 2b fix but XBMC doesn’t seem to want to play nice. It still uses the built-in player for 1080p MKVs and I’m at a loss as to why. I copied that xml into notepad, saved it as a .xml in %appdata%\Roaming\XBMC\ with the modified player path copied/pasted directly out of windows explorer. But no dice.
I’m sure this is a Layer 8 Error but I’m not sure what I did wrong. Any suggestions?
@ Chase,
Try setting the playercorefactory to just play mkvs (don’t filter for 1080p), see if it works then. Also, to confirm you saved the xml in the Userdata folder in (\AppData\Roaming\XBMC)
hey. this guide is awesome as I wanted mpc-hc for hardware decoding aswell. I was wondering if you found a way to have mpc automaticaly close automatically after a movie or if there is any way to control it. I am currently using the xbmc remote app for the iphone and wanted to be able to pause and stuff while in mpc. I saw somebody before write a script to close mpc after playback so it automatically switches back to xbmc. Let me know what you think and thanks again for the awesome guide.
-michael
@ Michael,
In MPC HC in the Keys section set exit to Media_Stop. That is what I have so when I hit the stop button MPC HC exits out. It should work the same when you get to the end of your movie. Let me know if that does the trick. Thanks.
Hi,
the folder structure on windows is a bit strange. At first glance, the userdata folder could also be
\program files\XBMC\userdata\
or
\Users\[user]\AppData\Roaming\XBMC\userdata\
Hmmm, i’ve managed to get XMBC to use MPC, but for some reason it runs really laggy (seems that my CPU gets overworked).
Is there any option/switch i can use that can stop this? (the videos run absolutely fine if i just run them via MPC, so it’s 100% not an issue with my hardware or the videos themselves.
Thanks!
Can i use 3 different wild cards for the playercorefactory.xml
meaning i sometimes use 720p files with DTS audio.
can i use another line:
will that work?
hi Damian,
i not able to call the mpc-hc to play the normal english series with stereo sound. i’m not looking to use xbmc for the HD content.
i’m using the same xml you put in this site, maybe u can light me which path i do it wrong? the only difference compare to your xml is the path of the mpc-hc. here’s mine.. C:\Program Files\Media Player Classic – Home Cinema\mpc-hc.exe
most of file i have in library is avi, mp4, and wmv. and i plan to use mpc-hc as default player for video and audio.
or perhaps you can suggest me some xml that can fit my need?
I realize this is an older post but wanted to add my experience. First, thanks for posting this guide, i found it very helpful. Second, unless I’m missing something you will have to map your network drives containing movies in XBMC. I can only assume that XBMC is using Win cmdline to call external players, and cmdline does not support network paths (\\server). Lastly, I had to replace the xml in the system folder to get this to work, probably an ID10T error on my part though. Again, great article and tips, if only I can get my wife to adjust to using XMBC now…
If I remember I did not need to map accounts as XBMC can see the UNC path, you just have to navigate via the Windows SMB option
Hi Damian
Great guide, however I’m looking at using MPC-HC with reclock as the external player for XBMC, wondering if you can shed some light?
Thanks!
Dennis
Hi Dennis,
Unfortunately I have only tinkered with Reclock a few times, but not enough to provide any sort of usable information
Cheers
Damian
Hi Damian, thanks for a great guide, I found it invaluable in getting VC1 encoded files working on my HTPC. Your comment about getting MPC-HC to exit after playback was also very helpful.
I know this is an old thread but wanted to put this right in case someone comes along, like me and finds it.
XBMC will play all the formats you have listed above just fine and has for a long time.
Anyone reading this take this for what it is.. an advertisement which is making false claims.
Hi Kris,
The comment you replied to is spam and will be deleted.
FYI – the point of this guide was to use MPC HC in place of the XBMC player if desired. One of the benefits (for someone like me) is HD Audio bitstreaming which XBMC does not support (there are some offshoot builds but nothing official)
Cheers
Damiain