Win RemoteXtender - seamless integration of external players with XBMC remotes
#1
What?

RemoteXtender is a Windows-based tool that enables seamless integration of external players with Kodi when using HTTP-based remote control apps.

RemoteXtender is not a remote. It is a tool which enables you to continue using your current preferred remote control app (as long as it is communicating with Kodi using the HTTP-based remote protocol) with the added benefit of being able to control external players through that remote control app, as if they were not external players at all. You can use external players for as few or as many file/media types as you wish. RemoteXtender will not interfere with control of Kodi, it will only extend control to supported external players. When playing back video on an external player, RemoteXtender will enable your remote control app to play/pause, skip/seek, switch subtitles and audio, and display current playback progress and runtime duration.

Currently, RemoteXtender supports only MPC-HC. Support for PowerDVD and/or TotalMedia Theatre may be added at a later stage, if possible.

Why?

I have a large collection of DVDs (movies and TV shows) which are either not available on Blu-ray or which I'm not going to upgrade. I've found that playback of these videos with MPC-HC+madvr results in significantly better picture quality than the built-in player in Kodi. As far as I can see, the chances of madvr ever becoming part of the Kodirender-engine are looking slim-to-none (which is unfortunate as that would be the optimal solution). While there are other mediacenters which allow the use of madvr, I have yet to find any of them to match Kodi with regards to content presentation (fanart, etc.) and the powerful skinning engine. So, I've resorted to attempting to make Kodi work with MPC-HC as best as possible.

I'm using Kodi Remote and Roomie (both iOS) to control Kodi, and I found that while MPC-HC could easily be launched using playercorefactory.xml, playback control and obviously feedback from the external player (such as current position, duration of video) was quite difficult/missing.

How?

To solve this I have developed a Windows-based tool that works as a reverse proxy for Kodi. Basically it intercepts commands sent from the remote control app to Kodi and responses sent from Kodi back to the remote control. The tool will then forward commands to the external player, in this case MPC-HC. If the remote control queries Kodi to ask what the current playback position and duration of video/audio is, Kodi cannot provide this in the case of an external player. In this case, the tool would query MPC-HC to get the information needed, and then modify the response from Kodi with the correct information before it is passed back to the remote control.

The tool works only with remotes that use Kodi's HTTP-based remote protocol, such as Kodi Remote, Roomie, and most other (if not all) smartphone/tablet-based remotes. RemoteXtender is invisible to both Kodi and the remote control app. It will appear to the remote control app that it is communicating directly with Kodi , and that Kodi is not using an external player, even though it is.

Status

The tool currently supports most aspects of MPC-HC control, including:
- Play/pause
- Seek (jump forward/backward, skip to next/previous chapter, using position bar)
- Switch subtitle
- Switch audiostream

Switching of subtitles and audiostreams is limited to toggling (next/previous/off) because MPC-HC does not make information about subtitles and audiostreams available with the web interface. I have found a way to enable full support of this, but there is currently a bug in MPC-HC which prevents that workaround from being implemented. The bug is registered with MPC-HC developers and a fix is planned shortly, after which I will release an update for RemoteXtender.

If anyone is interested in trying out this tool, you are more than welcome. It can be downloaded here.

Quick setup guide:
  1. Install MPC-HC and accompanying tools such as madvr, I've found this excellent guide which will help you get the absolute best quality from MPC-HC.
  2. Launch MPC-HC, go to Options -> Web Interface. Make sure Listen on port is enabled, otherwise keep the default settings. Click 'Launch in web browser' and make a note of the full URL which you will need for setting up RemoteXtender.
  3. Setup Kodi to use MPC-HC as an external player for the file types you want to use it for. A guide can be found here.
  4. If you haven't already, in XBMC under Settings -> Services, check off 'Allow control of Kodi via HTTP' under Webserver and 'Allow programs on other systems to control Kodi' under Remote control. Make a note of the port under 'Web server'.
  5. Run RemoteXtender setup. After installation has finished, launch the program from the start menu. It will start minimized and can be found in the notification area (the icon is a remote).
  6. Double-click the application icon in the notification area to show the Settings dialog. Set 'Redirect to Kodi on port' to the port number set in Kodi (bullet no. 4). 'Listen for remote on port' is the port number which you should tell your remote control app that Kodi is listening on. RemoteXtender will automatically forward from this port to the port setup in Kodi.
  7. Go to the 'MPC-HC' tab and enter the Web Interface URL noted above in bullet no. 2. Check off 'Enabled' under this tab.
  8. Finally, check off 'Enabled' in the top left corner of the Settings window. RemoteXtender should now be running and doing it's job assuming everything is setup properly. You will likely get a question asking if RemoteXtender should be allowed through the firewall. Make sure to allow this. If you want, check off 'Start with Windows' if RemoteXtender should always start with Windows.

If you have any questions or find any bugs, please post them in this thread. Enjoy.


Road map

Outside of ironing out any bugs that may be in the current early release, the following is my wish list for upcoming versions:
  • MPC-HC: Support for subtitle and audiostream info passed back to the remote control app
  • Support for PowerDVD and/or TotalMedia Theatre, for Blu-ray playback.
Reply
#2
I'd be very interested in the proof-of-concept because I wanted to achieve something similar using Eventghost but I haven't had the time yet.
Quote:Basically it intercepts commands sent from the remote control app to XBMC

How exactly are you doing that?

In my case I wouldn't be using an app but an actual IR remote and I was planning on creating different macros in Eventghost for MPC and Kodi depending on which one is active. Controlling Kodi with Eventghost is easy but I haven't tried out how to control MPC yet so that would be interesting too.
Reply
#3
(2014-08-18, 19:59)iDude Wrote:
Quote:Basically it intercepts commands sent from the remote control app to XBMC

How exactly are you doing that?

RemoteXtender is set-up as a proxy between XBMC and the HTTP-protocol based remote control, for example:

XBMC (port 8080) <-----> (port 8080) RemoteXtender (port 8081) <-------> (port 8081) Remote control

The remote control thinks it is communicating directly with XBMC but in reality all communication is going through RemoteXtender.

(2014-08-18, 19:59)iDude Wrote: In my case I wouldn't be using an app but an actual IR remote and I was planning on creating different macros in Eventghost for MPC and Kodi depending on which one is active. Controlling Kodi with Eventghost is easy but I haven't tried out how to control MPC yet so that would be interesting too.

RemoteXtender uses MPC-HC's Web Interface to control MPC-HC and get information about playback position and runtime.
Reply
#4
I'm very interested in this. I just setup my projector and 110" screen... higher quality output would we nice!

Let me know when we can start testing!
I'm not an expert but I play one at work.
Reply
#5
The first early release of the application is now available for download. See the first post for instructions.
Reply
#6
FYI... I had a prbolem with both MPC-HC & MPC-BE crashes anytime I try to play a video... found out that if the Audio output is not working for some reason (I had to unplug/replug HDMI) it crashes.

Serious bug if you ask me... seems like exception handling is non-existant!
I'm not an expert but I play one at work.
Reply
#7
(2014-08-30, 01:19)Livin Wrote: FYI... I had a prbolem with both MPC-HC & MPC-BE crashes anytime I try to play a video... found out that if the Audio output is not working for some reason (I had to unplug/replug HDMI) it crashes.

Serious bug if you ask me... seems like exception handling is non-existant!

That sucks. I haven't encountered that bug, it's running like a charm on my PC.
Reply
#8
(2014-08-30, 01:27)vestergaard Wrote:
(2014-08-30, 01:19)Livin Wrote: FYI... I had a prbolem with both MPC-HC & MPC-BE crashes anytime I try to play a video... found out that if the Audio output is not working for some reason (I had to unplug/replug HDMI) it crashes.

Serious bug if you ask me... seems like exception handling is non-existant!

That sucks. I haven't encountered that bug, it's running like a charm on my PC.

I got it running but stutters like crazy... is my ATI 7400M powerful enough to run MadVR?
I'm not an expert but I play one at work.
Reply
#9
I'm no expert on madvr so I can't say for sure. What kind of video are you playing (video resolution, screen resolution, interlaced/progressive)? Have you checked that disabling madvr makes the stutter go away?

I know there are quite a few options to gradually scale back the quality of madvr to save on processing power. Some scaling algorithms are very demanding whereas others that might give nearly as good picture quality are significantly easier on the hardware.

I use a Haswell i5 NUC (Intel HD 5000 graphics). I use it primarily for playback of DVD-resolution interlaced content (so madvr scales and deinterlaces). According to this article, playback of such content (480i) is not as taxing as 720p would be.
Reply
#10
Looked like my video card was not powerful enough to smoothly run the Jinc 3 tap.

But now I'm having a problem where it does not go back to XBMC once I stop the video in MPC... anyone know how to fix?

my XML...

<playercorefactory>
<players>
<player name="MPC-HC" type="ExternalPlayer" audio="false" video="true">
<filename>C:\Program Files (x86)\MPC-HC\mpc-hc.exe</filename>
<args>"{1}" /fullscreen /play /close</args>
<hidexbmc>true</hidexbmc>
<hideconsole>true</hideconsole>
<warpcursor>none</warpcursor>
</player>
</players>
<rules action="prepend">
<rule filetypes="mkv|wmv|avi|m2ts|mp4" player="MPC-HC"/>
</rules>
</playercorefactory>
I'm not an expert but I play one at work.
Reply
#11
The <player> part of my playercorefactory looks like this:

Code:
<player name="MPC-HC" type="ExternalPlayer" audio="false" video="true">
     <filename>C:\Program Files (x86)\MPC-HC\mpc-hc.exe</filename>
     <args>"{1}" /fullscreen /close</args>
     <hidexbmc>false</hidexbmc>
     <hideconsole>false</hideconsole>
     <warpcursor>none</warpcursor>
     <playcountminimumtime>300</playcountminimumtime>
</player>

There are a couple of small differences.
Reply
#12
Thumbs Up 
Hi,

thanks for this nice tool.

I have a small request.

Several fields are not very lisible (port numbers) :
Image

Windows 7 x64
Resolution 1920x1080

Is it possible to fix this ?
Reply
#13
I uploaded a new version. It should update automatically when the application is restarted, if not try re-installing.

I did notice that for some reason SmartScreen blocked RemoteXtender after it was updated. You need to click 'More info' and then 'Run anyway'.

Please let me know if this helps. I tested with both small and large fonts on Windows 8.1 and it looks fine here in both cases.

/Kenneth

(2015-04-16, 03:44)lynx74 Wrote: Hi,

thanks for this nice tool.

I have a small request.

Several fields are not very lisible (port numbers) :
Image

Windows 7 x64
Resolution 1920x1080

Is it possible to fix this ?
Reply
#14
(2015-04-25, 20:50)vestergaard Wrote: I uploaded a new version. It should update automatically when the application is restarted, if not try re-installing.

I did notice that for some reason SmartScreen blocked RemoteXtender after it was updated. You need to click 'More info' and then 'Run anyway'.

Please let me know if this helps. I tested with both small and large fonts on Windows 8.1 and it looks fine here in both cases.

/Kenneth

Yes, it's very nice, the problem is fixed !
Thx a lot Kenneth
Reply
#15
I'm having connectivity issues when telling RemoteXtender to proxy between Kodi and Yaste2 Remote Control... causing extremely slow response or non-communication. HOWEVER, if I change Kodi RemoteXtender Kodi Port to talk to Kodi's HTTP server directly, everything starts to work; Yaste2 communicates with Kodi AND also control MPC-HC (pause/play/FF/REW/subtitle toggle).

However, I have no idea why everything works correctly when I do this. At first, I thought that RemoteExtender isn't doing anything at all; with Yaste2 bypassing RemoteExtender; and, talking directly to Kodi. However, that's not the case. Without RemoteExtender running, I am not able to control MPC-HC at all.

Any idea's why this is happening?

Communication issues:
Kodi RemoteXtender:
Remote Control IP: 192,168,1,225
Port: 8200
Kodi HTTP server IP: localhost (or 192,168,1,225)
Port: 8091
MPC-HC: http://127.0.0.1:13579

Kodi Webserver:
Port: 8091
Username:
Password:

Yaste2:
Kodi IP: 192.168.1.225
Port: 8200

MPC-HC
Listen on port: 13579

Everything Works!!
Kodi RemoteXtender:
Remote Control IP: 192,168,1,225
Port: 8091
Kodi IP: localhost
Port: 8200
MPC-HC: http://127.0.0.1:13579

Kodi Webserver:
Port: 8091
Username:
Password:

Yaste2:
Kodi IP: 192.168.1.225
Kodi HTTP Server Port: 8091

MPC-HC
Listen on port: 13579
Reply

Logout Mark Read Team Forum Stats Members Help
RemoteXtender - seamless integration of external players with XBMC remotes1