Kodi Community Forum

Full Version: HOW TO - Kodi 2D - 3D - UHD (4k) HDR Guide Internal & External Players
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Yes, that's what I've been using for a while.  The other color space method works as well.
That's great news brazen1.

Question - Do we need to change anything from Post #1 & Post #205 in terms of setup instructions? Or does everything remain the same?

Thanks!

PS: I have also switched to "use default color settings" in NCP, per your advice, and as far as I can tell, everything seems to be working perfectly.
(2018-01-06, 05:08)brazen1 Wrote: [ -> ]This will open PowerDVD for 2D iso's so you have menus.  Kodi now has menus also btw. 
This will open MPC-BE for UHD HDR's.
This will open Kodi internal video player for everything else.
You didn't want 3D so I didn't include anything.
You can still manually select any player using the 'play using' tab after pressing 'C' aka context menu.

Code:
<playercorefactory>
  <players>
    <player name="PowerDVD" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files (x86)\CyberLink\PowerDVD17\PowerDVD.exe</filename>
      <args>"{1}" /fullscreen /close</args>
      <hidekodi>false</hidekodi>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
    <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files\MPC-BE\mpcbe.exe</filename>
      <args>"{1}" /fullscreen /close</args>
      <hidekodi>false</hidekodi>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
  </players>
   <rules action="prepend">
    <rule filename=".*HDR10.*|.*HDR.*|.*hdr.*" player="MPC-BE"/>
    <rule filetypes="iso|bdmv|mpls|m2ts" player="PowerDVD"/>
   </rules>
 </playercorefactory>

This is the same as above but includes 3D opened with PowerDVD.  As stated above, you can still manually select a different player.

Code:
<playercorefactory>
 <players>
    <player name="PowerDVD" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Users\YOURUSERNAMEGOESHERE\AppData\Roaming\Kodi\userdata\PDVD3DISO.bat</filename>
      <playcountminimumtime>1140</playcountminimumtime>
    </player>
    <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Users\YOURUSERNAMEGOESHERE\AppData\Roaming\Kodi\userdata\MPCBE3DISO.bat</filename>
      <playcountminimumtime>1140</playcountminimumtime>
    </player>
 </players>
 <rules action="prepend">
    <rule filename=".*HDR10.*|.*HDR.*|.*hdr.*" player="MPC-BE"/>
    <rule filetypes="iso|bdmv|mpls|m2ts|.*3D.*|.*.3D.iso|3D.*" player="PowerDVD"/>
 </rules>
</playercorefactory>
 
(2018-01-06, 04:38)bsoriano Wrote: [ -> ]Hello,

I think you should just leave the filename rule for MPC and remove the filetype part, since it is the same as the rule for PowerDVD, and it is evaluated last, so that's the one Kodi will use.

Please let me know how it goes, since I need to do something quite similar to this. Thanks.

Regards,

Bart
 @brazen1 & @bsoriano :

Thank you both for your scripting advise & suggestions. Unfortunately neither of the two solutions are working for me. In all instances, EVERYTHING plays in MPC-BE. Nothing is playing in Kodi's internal player or PowerDVD. 

This is what my playercorefactory.xml looks like:

Code:

<playercorefactory>
<players>
   <player name="PowerDVD" type="ExternalPlayer" audio="false" video="true">
     <filename>C:\Program Files (x86)\CyberLink\PowerDVD17\PowerDVD.exe</filename>
     <args>"{1}" /fullscreen /close</args>
     <hidekodi>false</hidekodi>
     <hideconsole>false</hideconsole>
     <warpcursor>none</warpcursor>
   </player>
   <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
     <filename>C:\Program Files\MPC-BE x64\mpc-be64.exe</filename>
     <args>"{1}" /fullscreen /close</args>
     <hidekodi>false</hidekodi>
     <hideconsole>false</hideconsole>
     <warpcursor>none</warpcursor>
   </player>
</players>
<rules action="prepend">
   <rule filename=".*4K.*|.*4K.*|.*4K.*|*4K*.*" player="MPC-BE"/>
   <rule filetypes="iso|bdmv|mpls|m2ts" player="PowerDVD"/>
   </rules>
</playercorefactory>

*My UHD HDR files are appended with the keyword "4K" as opposed to HDR. 

Logically, what I had initially scripted, or what Bart suggested or what Brazen1 shared - all make sense and should work. Yet neither do. I'm at a loss. Doesn't make sense to me that everything is playing in MPC-BE, and nothing in Kodi's internal or PowerDVD after coding the above in playercorefacory. 

Any suggestions?

Thanks!
Working perfectly here.  Maybe someone else will confirm.
I see you altered the code and it looks like it should work.  At the very least PDVD should be opening all of those file types and Kodi everything else but a file name containing HDR.... not MPC even with your alteration.  You have something else screwy directing all files to be played back using MPC.  Maybe your Windows default player action?  I couldn't tell you?  Only you know how your system is setup.  The only logical thing that makes any sense is if you have 4K as part of every file name for every title you have or at least tested but I doubt that.  I also know how easy it is to have a bunch of playercorefactory.xml's on hand renaming them as you go.  Are you sure this one is named proper and is indeed the one in use?  Give some examples of your file names and how they fail to open the proper default player.  Maybe we can see something.
luci5r,

I am also not sure of what is going on in your case.  I think you can (but this should not affect what you are seeing) change the line in the xml with the rule for MPC to this:

<rule filename=".*4K.*" player="MPC-BE"/>

Since it is not needed to have multiple times, and also there is an error in the last 4K entry in your line, since there should be a period (.) before the asterisk (*) before 4K as well.

Again, I don't think this will change your current situation, but will be a syntactically shorter and correct xml file.

I know this might sound like a dumb question, but are you sure (besides what @brazen1 pointed out about Windows default player for the type of files your are playing) you have the xml in the right place?

Regards,

Bart
(2018-01-08, 23:15)brazen1 Wrote: [ -> ]Working perfectly here.  Maybe someone else will confirm.
I see you altered the code and it looks like it should work.  At the very least PDVD should be opening all of those file types and Kodi everything else but a file name containing HDR.... not MPC even with your alteration.  You have something else screwy directing all files to be played back using MPC.  Maybe your Windows default player action?  I couldn't tell you?  Only you know how your system is setup.  The only logical thing that makes any sense is if you have 4K as part of every file name for every title you have or at least tested but I doubt that.  I also know how easy it is to have a bunch of playercorefactory.xml's on hand renaming them as you go.  Are you sure this one is named proper and is indeed the one in use?  Give some examples of your file names and how they fail to open the proper default player.  Maybe we can see something.
 I hear you brazen1 - I'm as confounded as fathomable. It should be working, but it isn't. I don't see any logical mistake in the code. 

Upon your suggestion, I did some deeper investigation:

i. There are absolutely no default associations with MPC-BE on my system. It is not the default player for any file type. 
ii. As you assumed, all of my media files do not have "4K" appended to them. Only the 2160p media. I tested "1408.mkv", "Beetlejuice.iso", "battleship.mkv", etc.
iii. Checked & re-checked, only one single "playercorefactory.xml" exists in Kodi's userdata folder. Removed all others. Checked code before launching Kodi - code as described. 

This code works well; it opens everything in Kodi's Internal player, except ISOs, bdmv, etc.
Code:

<playercorefactory>
<players>
   <player name="PowerDVD" type="ExternalPlayer" audio="false" video="true">
     <filename>C:\Program Files (x86)\CyberLink\PowerDVD17\PowerDVD.exe</filename>
     <args>"{1}" /fullscreen /close</args>
     <hidekodi>false</hidekodi>
     <hideconsole>false</hideconsole>
     <warpcursor>none</warpcursor>
   </player>
</players>
<rules action="prepend">
   <rule filetypes="iso|bdmv|mpls|m2ts" player="PowerDVD"/>
   </rules>
</playercorefactory>

This code opens EVERYTHING in MPC-BE, no exceptions.
Code:

<playercorefactory>
  <players>
    <player name="PowerDVD" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files (x86)\CyberLink\PowerDVD17\PowerDVD.exe</filename>
      <args>"{1}" /fullscreen /close</args>
      <hidekodi>false</hidekodi>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
    <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files\MPC-BE x64\mpc-be64.exe</filename>
      <args>"{1}" /fullscreen /close</args>
      <hidekodi>false</hidekodi>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
  </players>
   <rules action="prepend">
    <rule filename="*(4K).*|.*4K.*|.*4K.*|.*4k.*" player="MPC-BE"/>
    <rule filetypes="iso|bdmv|mpls|m2ts" player="PowerDVD"/>
   </rules>
</playercorefactory>

It just doesn't make any sense!!

I'm stumped.
(2018-01-08, 23:24)bsoriano Wrote: [ -> ]luci5r,

I am also not sure of what is going on in your case.  I think you can (but this should not affect what you are seeing) change the line in the xml with the rule for MPC to this:

<rule filename=".*4K.*" player="MPC-BE"/>

Since it is not needed to have multiple times, and also there is an error in the last 4K entry in your line, since there should be a period (.) before the asterisk (*) before 4K as well.

Again, I don't think this will change your current situation, but will be a syntactically shorter and correct xml file.

I know this might sound like a dumb question, but are you sure (besides what @brazen1 pointed out about Windows default player for the type of files your are playing) you have the xml in the right place?

Regards,

Bart
 Changing the code & checking right now!!

Yes, absolutely, 100% positive about default player - nothing associated w/ MPC-BE. 

Will report back. Hang tight.
(2018-01-08, 23:24)bsoriano Wrote: [ -> ]luci5r,

I am also not sure of what is going on in your case.  I think you can (but this should not affect what you are seeing) change the line in the xml with the rule for MPC to this:

<rule filename=".*4K.*" player="MPC-BE"/>

Since it is not needed to have multiple times, and also there is an error in the last 4K entry in your line, since there should be a period (.) before the asterisk (*) before 4K as well.

Again, I don't think this will change your current situation, but will be a syntactically shorter and correct xml file.

I know this might sound like a dumb question, but are you sure (besides what @brazen1 pointed out about Windows default player for the type of files your are playing) you have the xml in the right place?

Regards,

Bart
 Bart,

You are a genius, a scholar and a gentleman! You struck bang on target, and I understand now what happened. 

It was the missing dot before the filename rule. I believe it caused an error in the code, such that the entire rule "filename" was being ignored, but not the player, and therefore everything being played back was being thrown at MPC-BE. 

Adding that initial dot, in fact changing the code to what you suggested, removing all unnecessary duplicated instances of "4K" in "filename", essentially fixed almost the entire issue. 

I say almost as I'm now faced with a somewhat conversed issue. 

So this is what my script looks like now:

Code:

<playercorefactory>
  <players>
    <player name="PowerDVD" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files (x86)\CyberLink\PowerDVD17\PowerDVD.exe</filename>
      <args>"{1}" /fullscreen /close</args>
      <hidekodi>false</hidekodi>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
    <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files\MPC-BE x64\mpc-be64.exe</filename>
      <args>"{1}" /fullscreen /close</args>
      <hidekodi>false</hidekodi>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
  </players>
   <rules action="prepend">
    <rule filename=".*4K.*" player="MPC-BE"/>
    <rule filetypes="iso|bdmv|mpls|m2ts" player="PowerDVD"/>
   </rules>
</playercorefactory>

All 1080p MKV media is playing in Kodi's internal player
All 1080p ISO media is playing in PowerDVD

However, any media with "4K" in file name sends Kodi into "not responding" and MPC-BE does not launch!!

I'm not exactly sure why that would be, since Kodi was launching everything in MPC-BE moments ago, and now won't launch anything in MPC-BE, even though it is clearly recognizing "4K" filename rule, because it won't launch that file in Kodi's internal player or PowerDVD. 

Investigating.
Guys,

I have a final update - Everything is working perfectly fine. I made one minor adjustment to the code, and for some reason that seems to have solved the final issue. I changed the player name from "MPC-BE" to simply "MPC". I'm not sure why the hyphen would cause any issues, but incidentally it was one of the first things I tried and it just worked. 

All 1080p non ISO media plays in Kodi internal player.
All 1080p ISO media plays in PowerDVD.
All 2160p media with "4K" in filename plays in MPC-BE.

nVidia Control Panel, LAV Filters, MadVR, MPC-BE & Kodi have all been setup using brazen1's instructions in Post #1 & Post #205. 
nVidia drivers are updated to latest 390.65. Minor adjustments updated per brazen1's instructions on Post #359.

Thanks!!
I am glad you got it all working!

Regards,

Bart
Hello again,

I have a new strange issue that I can't figure out.  Once I play a file using MPC-BE, every file after that will be played with MPC-BE, even if you choose "VideoPlayer" in the context menu "Play Using...".  I don't know if this is a Leia issue (I am using the latest nightly), or if there is something wrong in my playercorefactory.xml.  This is what I have:

<playercorefactory>
  <players>
    <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files\MPC-BE x64\mpc-be64.exe</filename>
      <args>"{1}" /fullscreen /close</args>
      <hidekodi>false</hidekodi>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
  </players>
   <rules action="prepend">
    <rule name="4K" filetypes="mkv" filename=".*4K.*" player="MPC-BE" />
   </rules>
</playercorefactory>

Can you spot any problems with this file? Also, does it matter that there is another playercorefactory.xml in the Kodi "system" folder (not the user's system folder)?

I thought that having that other playercorefactory.xml might have something to do with the issue, but it does not, since to test I renamed that file, and still the issue persists.  I also included my lines into that file, and still the issue is there.

Any ideas? Thanks!

Regards,

Bart
Yeah, you're deviating from working code trying to accomplish what has already been accomplished using a different mouse trap.  Why mess with a good thing?
1.  You're trying to add 2 separate rules into 1.
2. You're trying to do it on the same line of code instead of new line.
3. 4K is not a file type.
4. An mkv falls under too many commons.

It looks like you're trying to eliminate PDVD, open 4k.mkv's with MPC-HC and everything else plays using Kodi videoplayer.  Make sure 4k is in the title of all your 4k.mkv's and doesn't appear in any others.

<playercorefactory>
 <players>
    <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files\MPC-BE x64\mpc-be64.exe</filename>
      <playcountminimumtime>1140</playcountminimumtime>
    </player>
 </players>
 <rules action="prepend">
    <rule filename=".*4K.*" player="MPC-BE"/>
    </rules>
</playercorefactory>

No idea what the name your player MPC and remove the -BE is all about?  It's just a name.
(2018-01-09, 04:19)brazen1 Wrote: [ -> ]Yeah, you're deviating from working code trying to accomplish what has already been accomplished using a different mouse trap.  Why mess with a good thing?
1.  You're trying to add 2 separate rules into 1.
2. You're trying to do it on the same line of code instead of new line.
3. 4K is not a file type.
4. An mkv falls under too many commons.

It looks like you're trying to eliminate PDVD, open 4k.mkv's with MPC-HC and everything else plays using Kodi videoplayer.  Make sure 4k is in the title of all your 4k.mkv's and doesn't appear in any others.


No idea what the name your player MPC and remove the -BE is all about?  It's just a name.
Thanks brazen1! You are correct, since I don't use 3D or iso with menus, I was doing away with PDVD (which I don't own), and just want to use MPC-BE to play files which have 4K in the name.  No other files which are not 4K rips have 4K in the name.

So, following the code you provide in your post, what should I include in the MPCBE3DISO.bat? Would it be just something like the part to play mpls?

Thanks again for your help.

Regards,

Bart


EDIT: I re-created my playercorefactory.xml, following your advice, as follows:

<playercorefactory>
 <players>
    <player name="MPC-BE" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Users\bsori\AppData\Roaming\Kodi\userdata\MPCBE3DISO.bat</filename>
      <playcountminimumtime>1140</playcountminimumtime>
    </player>
 </players>
 <rules action="prepend">
    <rule filename=".*4K.*" player="MPC-BE"/>
    </rules>
</playercorefactory>

and I created an MPCBE3DISO.bat like this:

Set file=%1
Set dummy=%file:iso=%
IF NOT %dummy% == %file% (GOTO playiso) ELSE (goto next)

:next
Set file=%1
Set dummy=%file:mpls=%
IF NOT %dummy% == %file% (GOTO plaympls) ELSE (goto playbdmv)

:playiso
"C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvstlink.exe" /enable
timeout /t 2
"C:\Program Files (x86)\Elaborate Bytes\VirtualCloneDrive\VCDMount.exe" /d=0 %1
"C:\Program Files\MPC-BE x64\mpc-be64.exe" A:
"C:\Program Files (x86)\Elaborate Bytes\VirtualCloneDrive\VCDMount.exe" /d=0 /u
GOTO end

:plaympls
set pth=%1
set pth=%pth:~1,-25%
"C:\Program Files\MPC-BE x64\mpc-be64.exe" "%pth%" exit
GOTO end

:playbdmv
set pth=%1
"C:\Program Files\MPC-BE x64\mpc-be64.exe" %pth% exit
GOTO end

:end
exit

Unfortunately, the issue persists.  What version of Kodi are you using? I think I will try a different version to see if that has an impact on the issue.



Regards,

Bart
I've been editing here and the guide in other pages.  Look at the revised code above again.  You guys are too quick LOL!  I should do all the editing on desktop but I just do it here.  Sometimes it takes me a half hour or so.  Bare with me.  In this case, I don't think you need any .bats, just the xml.  Thanks for testing.  I'm not doing it, just putting up the various code.  Please delete or edit out that whole post of yours before this one.
(2018-01-09, 05:05)brazen1 Wrote: [ -> ]I've been editing here and the guide in other pages.  Look at the revised code above again.  You guys are too quick LOL!  I should do all the editing on desktop but I just do it here.  Sometimes it takes me a half hour or so.  Bare with me.  In this case, I don't think you need any .bats, just the xml.  Thanks for testing.  I'm not doing it, just putting up the various code.
 Thanks brazen1, I don't see any changes in the code you posted? Did you change the code in the guide?

EDIT: Sorry, now I can see the change.  I will test and let you know.  Thanks again!