Ihara's Weblog

月曜日 1 15, 2007

MPlayerの導入

Solaris10でもRealPlayerが含まれるようになり便利になりましたが、Windows版とは異なり多くのファイルフォーマットには対応していません。そこで、Unixの世界でマルチメディア・プレーヤとして有名なオープンソースのMPlayerを導入してみます。MPlayerは、MPEG1/2、Quick Time、Windows Media Player等、数多くのフォーマットに対応しています。

ただ、MPlayerのコンパイルは、事前に多くのライブラリを用意する必要があったり、Solarisではソースに一部パッチを適応したりで結構大変です。そこで、前回導入したSFEを利用することにします。(SFEを使うと非常に簡単にインストールできます。)

まず、環境変数を読み込んでspecファイルを最新版にupdateします。

bash-3.00$ . /opt/jdsbld/bin/env.sh
bash-3.00$ cd ~ihara/jdsbuild/trunk
bash-3.00$ svn up

MPlayerのスペックファイルは、SFEmplayer.specですが多くのパッケージに依存していることが分かります。ですので、それらのパッケージを先に1つ1つインストールしていきます。

bash-3.00$ pkgtool build --download SFEmplayer.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
WARNING: skipping package SFEmplayer: required package SFElibsndfile not install
ed
WARNING: and no spec file specified on the command line provides it

・ (多くのrequired packageがインストールされていないとワーニングが出ます)

必要な全パッケージをインストールしていきます。
bash-3.00$ pkgtool build --download SFElibsndfile.spec
bash-3.00$ pkgtool build --download SFElibfame.spec
bash-3.00$ pkgtool build --download SFElibdvdcss.spec
bash-3.00$ pkgtool build --download SFElibdvdread.spec
bash-3.00$ pkgtool build --download SFElibdvdplay.spec
bash-3.00$ pkgtool build --download SFElibmad.spec
bash-3.00$ pkgtool build --download SFEliba52.spec
bash-3.00$ pkgtool build --download SFEliveMedia.spec
bash-3.00$ pkgtool build --download SFElame.spec
bash-3.00$ pkgtool build --download SFEtwolame.spec
bash-3.00$ pkgtool build --download SFEid3lib.spec
bash-3.00$ pkgtool build --download SFEfaad2.spec
bash-3.00$ pkgtool build --download SFElibmpcdec.spec
bash-3.00$ pkgtool build --download SFEsdl.spec
bash-3.00$ pkgtool build --download SFEmplayer.spec
bash-3.00$ pkgtool build --download SFEmplayer-codecs.spec

これで、MPlayerのインストールは完了です。適当なWindows Media  Playerファイルフォーマットのファイルを再生してみます。

bash-3.00$ mplayer /path/to/filename.wmv

MPlayerは、コマンドラインのインターフェースで、それぞれの機能がキーボードに割り当てられています。
例えば、
f: フル画面表示
9: 音量を下げる
0: 音量を上げる
q: 停止
space: 一時停止

その他は、mplayer -helpで確認してみてください。
最後に、MPlayerは、MozillaやFirefox向けのPlug-inとしても提供しています。プラグインもSFEのスペックファイルがありますので、それを使ってインストールします。ただ、こちらの環境ではビルドする前にソースファイルのダウンロード先を修正しないとビルドが失敗したので、以下のようにしてスペックファイルを修正します。

bash-3.00$ cp SFEmplayer-plugin.spec SFEmplayer-plugin.spec.orig
bash-3.00$ cat SFEmplayer-plugin.spec.orig | sed -e 's/#Source:/Source:/g' > SFEmplayer-plugin.spec

その後、修正したスペックファイルを元にビルドします。
bash-3.00$ pkgtool build --download SFEmplayer-plugin.spec

インストールが完了したら、起動しているFirefoxを再起動してみてください。その後、URLを入力するところにabout:pluginsと入れてみるとWindows Media Player等MPlayerがサポートしているフォーマットがプラグインとして追加されていることが分かります。テストを兼ねて、先月、Sunの会長でもあるScottが来日した際にNHKのインタビューがWeb上で見ることができますので確認してみます。

http://www.nhk.or.jp/nhkworld/english/asx/feature69_200k.asx

 
ちなみに、Real Player向けはこちらです。
http://www.nhk.or.jp/nhkworld/english/ram/feature69.ram

いかがですか?これで、またSolarisデスクトップが便利になりました。

月曜日 1 08, 2007

SFE(Sepc Files Extra)を使おう

SFE(Spec Files Extra)とは、LinuxのRPM specファイルに似たようなものでソースコードの展開、パッチの適応、ビルドそしてパッケージング(もちろんSolarisのパッケージ)をしてくれるものです。

http://pkgbuild.sourceforge.net/spec-files-extra/

SFEを利用すると、source tarballのダウンロードからパッケージのインストールまで簡単に行うことができ非常に便利です。まずは、SFEに必要なコンパイル環境を整えます。基本は、Building JDS on OpenSolaris3. JDS Common Build Environmentまでの手順に沿って以下のソフトウェアおよびツールをインストールすればOKです。

  • Sun Studio 11
  • JDS Common Build Enviroment(CBE)

Sun Studio 11は、Sun Developer Network(SDN)にメンバー登録(無償)すれば無償でダウンロードし利用することができます。CBEは、コンパイルに必要なツール群です。インストールは、こちらに書いてあるとおりインストールスクリプトを実行するだけでそれほど難しくありません。(途中で、ここに書いてパッケージをrequired packagesとしてインストールするか聞いてきます。その際にSolarisのメディアが必要になりますので、インストールされているOSのメディアを用意してください)

また通常、ソフトウェアのインストール等は、rootを利用していたと思いますが、RBAC(Role Based Access Control)を使って、一般ユーザに"Software Installation"プロファイル(デフォルトで存在します)を与えることによって一般ユーザでも行うことが可能になります。私の例では、/etc/user_attrの"ihara"アカウントに与えています。

ihara::::type=normal;profiles=Ginetmenu,Software Installation

"3. JDS Common Build Environment"まで準備ができたら、コンパイル環境の環境変数を読み込んでsvnを使いネットワーク経由でSFE(Spec Files Extra)の最新版を持ってきます。また、これらも一般ユーザで行うことができます。

bash-3.00$ . /opt/jdsbld/bin/env.sh 
bash-3.00$ mkdir ~ihara/jdsbuild
bash-3.00$ cd ~ihara/jdsbuild/
bash-3.00$ svn co https://svn.sourceforge.net/svnroot/pkgbuild/spec-files-extra/trunk
A    trunk/SFEgnuplot.spec
A    trunk/SFEgeckosdk.spec
A    trunk/SFErdesktop.spec



Checked out revision 100.
bash-3.00$

完了すると、truckディレクトリ以下に現在利用可能なスペックファイルがダウンロードされていることがわかると思います。これらのspecファイルは、Webからも参照することができます。 これらのspecファイルは日々メンテナンスされています。Revisionがupdateされていた場合は、以下のようにして簡単に最新版に同期することができます。

bash-3.00$ svn up ~ihara/jdsbuild/trunk/
U    /export/home/ihara/jdsbuild/trunk/SFEcoreutils.spec
U    /export/home/ihara/jdsbuild/trunk/SFEsed.spec



Updated to revision 103.
bash-3.00$

これで、環境は整いました。あとは、specファイルを使ってビルドするだけです。ここでは、例としてSFErdesktop.specファイルを使ってrdesktopのインストールを行ってみます。

bash-3.00$ cd ~ihara/jdsbuild/trunk/
bash-3.00$ pkgtool build --download SFErdesktop.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
INFO: Finding sources
INFO: Downloading source http://umn.dl.sourceforge.net/sourceforge/rdesktop/rdesktop-1.5.0.tar.gz
INFO: Running pkgbuild -ba [...] SFErdesktop.spec (SFErdesktop)
INFO: SFErdesktop PASSED
INFO: Installing SFErdesktop
Summary:

                         package |      status | details
---------------------------------+-------------+-------------------------------
SFErdesktop | PASSED |
上記のとおり、 rdesktop-1.5.0.tar.gzのダウンロードからコンパイル、パッケージの作成、インストールが成功しました。ダウンロードしたソースファイルと作成されたパッケージは、それぞれ~ihara/packages/SOURCESと~ihara/packages/PKGS以下に保存されます。

bash-3.00$ cd ~ihara/packages
bash-3.00$ ls
BUILD    PKGMAPS  PKGS     SOURCES  SPECS    SPKGS
bash-3.00$ ls ~ihara/packages/SOURCES/
default-copyright.txt  rdesktop-1.5.0.tar.gz
bash-3.00$ ls ~ihara/packages/PKGS/
SFErdesktop

アンインストールは、pkgrmでもできますがpkgtoolを使うと以下のようにおこないます。

bash-3.00$ pkgtool uninstall-pkgs ~ihara/jdsbuild/trunk/SFErdesktop.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
INFO: Uninstalling SFErdesktop

Summary:

                         package |      status | details
---------------------------------+-------------+-------------------------------
SFErdesktop | UNINSTALLED | 

また、パッケージによってはインストールの際に他のパッケージを先に入れておく必要な場合もあります。例えば、SFEetermの場合、SFEimlib2とSFElibastを先にbuildおよびインストールします。

bash-3.00$ pkgtool build --download ~ihara/jdsbuild/trunk/SFEeterm.spec
INFO: Copying %use'd or %include'd spec files to SPECS directory
INFO: Processing spec files
WARNING: skipping package SFEeterm: required package SFEimlib2 not installed
WARNING: and no spec file specified on the command line provides it
WARNING: skipping package SFEeterm: required package SFElibast not installed
WARNING: and no spec file specified on the command line provides it
WARNING: skipping package SFEeterm: required package SFEimlib2 not installed
WARNING: and no spec file specified on the command line provides it
WARNING: skipping package SFEeterm: required package SFElibast not installed
WARNING: and no spec file specified on the command line provides it

Summary:

                         package |      status | details
---------------------------------+-------------+-------------------------------
SFEeterm | DEP_FAILED | Dependency check failed
最後に、ソフトウェアのバージョンアップは頻繁に行われています、依存関係等でパッチの適応やコンパイルに失敗することもあります。もしバグを見つけた場合やビルド等に問題があった場合は、ここにバグ登録しましょう。また、パッチや追加のspecファイルの提供もwelcomeのようです。多くのソフトウェアがSFEを通じてインストールできるようになればと思います。

Calendar

Feeds

Search

Links

Navigation

Referrers