XBMCで外部プレーヤーを指定する方法

高画質なMP4などの動画は、XBMCで正常に再生できない場合があります。
そのような場合の対策として、外部プレーヤーを指定する方法があります。

以下に外部プレーヤーの指定方法を説明します。

まず動画を再生するプレーヤーの指定は、\XBMC\system\playercorefactory.xml の設定ファイルに記述されています。


初期の設定

<playercorefactory>
  <players>
    <!-- These are compiled-in as re-ordering them would break scripts
    The following aliases may also be used:
      audiodefaultplayer, videodefaultplayer, videodefaultdvdplayer
    <player name="DVDPlayer" audio="true" video="true" />
    <player name="DVDPlayer" /> placeholder for MPlayer
    <player name="PAPlayer" audio="true" />
    -->
  </players>

省略〜


これにMedia Player Classic Home CinemaとGOMPlayerを指定する場合の設定を記述します。

ちなみに、このプレーヤーは以下のページからダウンロードすることができます。


Media Player Classic Home Cinema →ここ

GOMPlayer →ここ


Media Player Classic Home CinemaとGOMPlayerを指定

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

    <player name="GOMPlayer" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files\GRETECH\GomPlayer\GOM.exe</filename>
      <args>/fullscreen /close "{1}"</args>
      <hidexbmc>false</hidexbmc>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
    
  </players>

省略〜

引数に「/fullscreen」を指定しているのは、動画再生と同時にフルスクリーン表示にするためです。
また、「/close」を指定しているのは、動画の終了と同時にプレーヤーを終了させるためです。


次に外部プレーヤーで再生する動画を指定するためのルールを設定します。
設定項目には正規表現を使用でき、下のように記述できます。

<rule name="mpc" filetypes="mp4|mkv|avi" filename=".*1920x.*|.*1440x.*|.*1280x.*|.*720x.*" player="MPC-HC" />

【項目の説明】
filetypes:ファイルの種類(拡張子)
filetypes="mp4|mkv|avi"
 → 動画の拡張子をmp4とmkvとaviに指定

filename:ファイル名
filename=".*1920x.*|.*1440x.*|.*1280x.*|.*720x.*"
 → ファイル名に動画の解像度が含まれていることを前提として、解像度が1920xと1440xと1280xと720xの動画を指定

player:再生するプレーヤー
player="MPC-HC"
 → Media Player Classic Home Cinemaを再生プレーヤーに指定



設定ファイル

<playercorefactory>
  <players>
    <player name="MPC-HC" type="ExternalPlayer" audio="false" video="true">
      <filename>D:\Program Files\MPC-Homecinema\mpc-hc.exe</filename>
      <args>/fullscreen /close "{1}"</args>
      <forceontop>false</forceontop>
      <hidexbmc>false</hidexbmc>
      <hideconsole>false</hideconsole>
      <hidecursor>none</hidecursor>
    </player>

    <player name="GOMPlayer" type="ExternalPlayer" audio="false" video="true">
      <filename>C:\Program Files\GRETECH\GomPlayer\GOM.exe</filename>
      <args>/fullscreen /close "{1}"</args>
      <hidexbmc>false</hidexbmc>
      <hideconsole>false</hideconsole>
      <warpcursor>none</warpcursor>
    </player>
    
    <!-- These are compiled-in as re-ordering them would break scripts
    The following aliases may also be used:
      audiodefaultplayer, videodefaultplayer
    <player name="DVDPlayer" audio="true" video="true" />
    <player name="MPlayer" audio="true" video="true" />
    <player name="PAPlayer" audio="true" />
    -->
  </players>

  <rules>
    <rule name="rtv/mms" protocols="rtv|mms" player="MPlayer" />
    <rule name="hdhomerun/rtmp/htsp" protocols="hdhomerun|rtmp|htsp" player="DVDPlayer" />
    <rule name="lastfm/shout" protocols="lastfm|shout" player="PAPlayer" />

    <!-- dvdplayer can play standard rtsp streams -->
    <rule name="rtsp" protocols="rtsp" filetypes="!(rm|ra)"  player="PAPlayer" />

    <!-- Internet streams -->
    <rule name="streams" internetstream="true">
      <rule name="flv/aacp/sdp" mimetypes="video/x-flv|video-flv|audio/aacp|application/sdp" player="DVDPlayer" />
      <rule name="mp2" mimetypes="application/octet-stream" filetypes="mp2" player="PAPlayer" />
      <rule filetypes="wmv" player="MPlayer" />
    </rule>
    
    
    <!-- <rule name="gom" filetypes="mp4|avi|mkv" filename=".*1920x.*|.*1440x.*|.*1280x.*|.*720x.*" player="GOMPlayer" />-->
    
    <rule name="mpc" filetypes="mp4|mkv|avi" filename=".*1920x.*|.*1440x.*|.*1280x.*|.*720x.*" player="MPC-HC" />

    <!-- DVDs -->
    <rule name="dvd" dvd="true" player="DVDPlayer" />
    <rule name="dvdfile" dvdfile="true" player="DVDPlayer" />
    <rule name="dvdimage" dvdimage="true" player="DVDPlayer" />

    <!-- Only mplayer can handle these properly -->
    <rule name="asf" filetypes="asf" player="MPlayer" />

    <!-- dvdplayer generally plays these better -->
    <rule name="mp4" filetypes="mp4" player="DVDPlayer" />
  </rules>
</playercorefactory>


これで自由に外部プレーヤーをXBMCの動画再生に指定することができます。