試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

MPlayerのebuild(XvMCライブラリとCompizのVideo Playback対応)についてのその後(2008/9/10現在)

以前、NVIDIA製GPUによる動画(MPEG-1とMPEG-2のみ)再生支援に関してを扱ったのだが、MPlayerのebuildからはこれを使用するための処理がずっと消えたままで、しばらくはCompizの「Video Playback」プラグインのための修正とともに何回か手動修正したものをSkyDriveにアップロードしていたのだが、XvMCに関しては管理方法が変更されたことにより、処理が不要になっているということが分かった。

  1. XvMCライブラリの管理
  2. MPlayerにおけるCompizのVideo Playback対応についてのその後

XvMCライブラリの管理

MPlayerのビルド時の設定でNVIDIA製GPU向けライブラリ(libXvMCNVIDIA)を使用するようにしてしまうと、その実行ファイルはこのライブラリを動作時に要求してしまう。XvMCのライブラリにはNVIDIA以外のGPU向けのものもあるため、最も良い方法としては、どのGPU向けのライブラリかを設定ファイルに記述しておいて、XvMC使用アプリケーションが実行時にそのファイルを参照して、指定されたライブラリを動的に読み込むといった形にするのがよい。
2008年9月現在、このような仕組みが既に実現されていて、どのGPU向けかを切り替える役割をするのが「eselect-xvmc」というパッケージ。これができたため、MPlayerのebuildからlibXvMCNVIDIAに関する処理がなくなっているものと思われる。
下はインストールから設定までの作業例(NDIVIA製GPU向け)。
$ sudo emerge -av eselect-xvmc
$ eselect xvmc list
Available XvMC implementations ( * is current ):
  [1]   nvidia
  [2]   xorg-x11
$ sudo eselect xvmc set 1
Switching to nvidia XvMC implementation... done
$ eselect xvmc list      
Available XvMC implementations ( * is current ):
  [1]   nvidia *
  [2]   xorg-x11

「*」が「nvidia」の項目に付けばOKで、一度設定したら、GPUを替えない限りはそのままでよさそう。
ここで指定した設定は、ファイル/etc/X11/XvMCConfigにライブラリ(.soファイル)のファイル名として保存され、*1

$ mplayer -vo xvmc -vc ffmpeg12mc [ファイル...]

のようにXvMCを使用するときにこのファイルを参照し*2、実際のライブラリを読み込んでGPUの再生支援を使用するということになる。
なお、Compizとの相性は相変わらずよくない気がする。

MPlayerにおけるCompizのVideo Playback対応についてのその後

一方、MPlayerにおけるCompizのVideo Playback対応について、以前扱ったパッチは、バージョン1.0_rc2_p27458と1.0_rc2_p26753の時点では、両方ともMPlayerのバージョン1.0_rc2のときと同じ対処で使えている。
しかし、
svnweb.mageia.org/packages/obsolete/mplayer-vaapi/pristine/SOURCES/mplayer-1.0rc2-compiz.patch?view=log
の「download」のリンクからパッチを保存して適用すると一発でできるので、こちらを推奨。これはMandriva向けパッケージのパッチのようなので、MandrivaのMPlayerでは標準対応?
Gentoo Linux向けのebuildは、Portageツリーに入っているものではCompizに対応していないため、引き続き対応済みebuildを
cid-3f9be5b1cd4a806c.skydrive.live.com/browse.aspx/%E5%85%AC%E9%96%8B/Gentoo%20Linux%20ebuild/media-video/mplayer
にアップロードしている。
新しく追加したのはバージョン1.0_rc2_p27458のもの。1.0_rc2_p26753のebuildに関しては以前もアップロードしたが、こちらもMandrivaのパッチを使用するように変更した。

使用したバージョン:

  • MPlayer 1.0_rc2_p26753, 1.0_rc2_p27458
  • Compiz 0.7.6(0.7.6-r1)

*1:libXvMCNVIDIA(項目名「nvidia」)を設定した場合は「libXvMCNVIDIA_dynamic.so.1」とだけ書かれている

*2:このファイルを移動もしくは削除するとエラーになって再生に失敗する