XBMC Community Forum
[PATCH] LaunchPlayer - External Video Player Launcher (to launch third-party players) - Printable Version

+- XBMC Community Forum (http://forum.xbmc.org)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Development (/forumdisplay.php?fid=93)
+--- Thread: [PATCH] LaunchPlayer - External Video Player Launcher (to launch third-party players) (/showthread.php?tid=40136)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27


[PATCH] LaunchPlayer - External Video Player Launcher (to launch third-party players) - konfoo - 2008-11-10 04:25

This thread is for external player support on Windows, i.e. ability to play your video content using an external player of your choice.

Current patch to SVN xbmc head is in Trac #5300.

ExternalPlayer implements a 'stub' player which fires off your favorite external media player when you select a video clip inside XBMC. This makes it handy if you want to play DRM content with Windows Media Player (please don't), use MPC with FFDShow (luma sharpen, etc), or something like TheaterTek. You can set ExternalPlayer to be the default player, or play content via context menu.

This is totally unofficial so don't expect any support (and don't ask the XBMC devs for any).

* If you can build from SVN (applause) you can get patchfiles here:
http://trac.xbmc.org/ticket/5300

Create a advancedsettings.xml file in your userdata directory (in \Documents and Settings\[user]\AppData\XBMC on WinXp or \Users\[user]\AppData\Roaming\XBMC on Vista) with the following:

Code:
<advancedsettings>
<video>
  <defaultplayer>externalplayer</defaultplayer>
</video>
<externalplayer>
  <filename>c:\applications\mplayer\mplayer.exe</filename>
  <args>-fs</args>
  <forceontop>false</forceontop>
  <hideconsole>false</hideconsole>
  <hidecursor>false</hidecursor>
</externalplayer>
</advancedsettings>

Legend:
video/defaultplayer - use this to force the default video player to externalplayer
filename - absolute location of the executable to launch (MPC, Media Player, MPlayer, Zoom Player etc.)
args - arguments to pass to the player

Tweaks:
forceontop - (suggested setting: false) set to true to attempt to force problematic players to be on top. Note that this doesn't work for some players. If you are having problems with XBMC staying 'in front' of your application (you are using zoomplayer or you get a frozen XBMC window), set this to false.
hideconsole - (suggested setting: true) set to true to hide a launched console (useful for MPlayer for windows which opens a console window before starting playback)
hidecursor - (suggested setting: true) set to true to position the cursor offscreen (useful for MPC for example)

Note you can also set extplayer as the default audio player:

Code:
<advancedsettings>
<audio>
  <defaultplayer>externalplayer</defaultplayer>
</audio>

If you don't need these and want to use the default players (dvdplayer/paplayer/mplayer), don't include the defaultplayer and audio/video tags!

ExternalPlayer will not function on XBOX. Win/Lin/OSX only.

When browsing video content, bring up the context menu and select ExternalPlayer to play the content using your external player. If you set defaultplayer you won't have to.

Use eventghost to map your remote control to your new media player. Note that the player needs to *QUIT* on end of file in order for XBMC to resume.

If your player doesn't launch, you need to enable debug mode and check the XBMC log for all CEXTPlayer notices.

(Thanks to amoller @ ext_player_patch and dummy player sources) Wink

Problems/Resolutions:
- XBMC freezes : check your log to see if advancedsettings was parsed without error
- Nothing plays : did you set your advancedsettings parameters correctly and place the file in the right location
- I hear audio but see no video: set your player to 'ontop' via prefs, or map a remote button to alt-tab (bring the player to the front)
- Extplayer should 'do more stuff': your player should 'do more stuff' -- extplayer is a launcher for video playback, nothing more or less
- But I want it to do X before my video launches: make a wrapper batch file or application that does what you need and then launches the player you want


- PantsOnFire - 2008-11-10 04:55

Hmm, so presumably since this triggers an external player and uses ffdshow, it could also be used to employ use of CoreAVC decoder?

If i understand correct, does this then mean a full-screen external app is launched to play the video? Im just trying to understand, how seemless it is in motion (between xbmc, and this ext app). does it revert back to xbmc gui once finished/stopped? Presumably you can have remote control mappings for this particular app which is launched.


- konfoo - 2008-11-10 05:00

PantsOnFire Wrote:Hmm, so presumably since this triggers an external player and uses ffdshow, it could also be used to employ use of CoreAVC decoder?

If i understand correct, does this then mean a full-screen external app is launched to play the video? Im just trying to understand, how seemless it is in motion (between xbmc, and this ext app). does it revert back to xbmc gui once finished/stopped? Presumably you can have remote control mappings for this particular app which is launched.

Exactly. The way the external app behaves depends on how you launch it ofcourse. mplayer (in the example) when run with -fs runs fullscreen. Or you could use MPC. XBMC will sit and wait until the app completes.

If I get annoyed enough with MPC I may just write a slimmed down player that uses directshow and can parse XBMC data fed on the commandline.


- midgetspy - 2008-11-11 00:24

Is there any chance you could upload a compiled win32 XBMC binary with the patches applied to rapidshare or something? This sounds great, I'd love to give this a try.


- konfoo - 2008-11-11 01:12

I'll try throw a build up later tonight.


- midgetspy - 2008-11-11 01:22

Awesome, thanks. Does this require a skin mod to add the item to the context menu? Does it work in Library mode?


- konfoo - 2008-11-11 01:32

midgetspy Wrote:Awesome, thanks. Does this require a skin mod to add the item to the context menu? Does it work in Library mode?

No and yes.


- marlboroman1 - 2008-11-11 02:40

thanks for the effort will check it out cheers mate


- rernst - 2008-11-11 03:45

Stupid question: If I launch Media Player - does this mean I can finally watch DRM content?


- konfoo - 2008-11-11 04:40

rernst Wrote:Stupid question: If I launch Media Player - does this mean I can finally watch DRM content?
Stupid answer: yes.


- room312 - 2008-11-11 05:04

in for compiled build. Big Grin


- konfoo - 2008-11-11 08:21

Compiled build available (see first post).


[PATCH] LaunchPlayer - External Video Player Launcher - How to get approved for SVN? - konfoo - 2008-11-11 08:28

After reading all the whining/bitching on the windows forum for external player support (and actually wanting to use an external player myself (bluray content from HD, etc.)), I stepped up and created a stub player that launches external video players - http://forum.xbmc.org/showthread.php?tid=40136. I've included all the patches and source files in an archive.

So, how can I get this into SVN? Perhaps I can expand it to support OSX and Linux unless someone objects. I'd be happy to help out with some other dev work as well.


- jmarshall - 2008-11-11 08:44

The best bet is to post a ticket on trac with all the stuff required - this makes it easy to track and comment etc. We can review from there and come to a decision as to whether or not we want it included. You are welcome to expand it to the *nix platforms as required.

As for other dev work, feel free to jump in and start cracking on whatever takes your fancy. Pop along to #xbmc and get in touch with a dev if you'd like to discuss anything prior to taking something on, or are looking for ideas etc. Smile

Cheers,
Jonathan


- konfoo - 2008-11-11 08:57

Thanks - http://trac.xbmc.org/ticket/5300