ビデオ再生のための設定をはじめる前に、ビデオカードのモデル、 そのカードが使用しているチップを確認する必要があります。 Xorg はさまざまなビデオカードに対応していますが、 ビデオ再生に申し分のない性能を発揮できるカードはわずかです。 利用しているビデオカードの Xorg サーバが対応している拡張機能のリストを得るには、 Xorg を実行中に xdpyinfo(1) を実行してください。
さまざまなプレイヤやオプションを試すのに、
テストファイルとして小さな MPEG ファイルを用意しておくのはよい考えです。
いくつかの DVD アプリケーションは DVD メディアを
/dev/dvd
として初期設定しているか、ハードコーディングしているので、
次のように適切なデバイスにシンボリックリンクを張っておくと便利かもしれません。
#
ln -sf /dev/acd0 /dev/dvd
#
ln -sf /dev/acd0 /dev/rdvd
devfs(5) の仕様により、
このように手動で作成されたリンクはシステムを再起動すると消えてしまいます。
システムの起動時にこれらのシンボリックリンクを自動的に作成するには、
/etc/devfs.conf
に下記の設定を追加してください。
link acd0 dvd link acd0 rdvd
特別な DVD-ROM 機能を必要とする DVD のリッピングでは、 DVD デバイスへの書き込み権限が必要です。
Xorg インタフェースの使う共有メモリを拡張するために、 以下の sysctl(8) 変数の値を増やすことが推奨されています。
kern.ipc.shmmax=67108864 kern.ipc.shmall=32768
Xorg においてビデオ表示性能を改善する方法はいくつかあります。 正しく動作するかどうかはハードウェアに大きく依存しています。 下記に説明したどの方法でも、 ハードウェアが変わると品質が変わるでしょう。
よく知られたビデオインタフェースは次の通りです。
Xorg: 共有メモリを用いた通常の出力
XVideo: drawable オブジェクトでのビデオ再生に対応した Xorg インタフェースの拡張機能
SDL: Simple Directmedia Layer
DGA: Direct Graphics Access
SVGAlib: 低レベルコンソールグラフィックレイヤ
Xorg には XVideo、または Xvideo, Xv, xv とも呼ばれる拡張機能があります。 これは特別なアクセラレーションによって drawable オブジェクトに直接ビデオを表示することができます。 この拡張機能によって、 低速なマシンでも、すぐれた品質の再生が可能となります。
この拡張機能が動作しているかどうかを調べるには、
xvinfo
を使います。
%
xvinfo
以下のような結果が得られたならば、カードは XVideo に対応しています。
X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0
リストにある形式、YUV2, YUV12 などが XVideo のすべての実装で存在するとは限りません。 対応している形式が少ないために、あるプレイヤでは悪影響が出る かもしれないことにも注意してください。
出力が以下のような場合、
X-Video Extension version 2.2 screen #0 no adaptors present
カードはおそらく XVideo に対応していないのでしょう。 このことはディスプレイでビデオを表示するのに、 計算上の要求を満たすことがより困難になることを意味します。 ビデオカードおよびプロセッサによっては、 それでも満足のいく性能が得られるかもしれません。
Simple Directmedia Layer (SDL) は、 さまざまなオペレーティングシステムの間で サウンドとグラフィックスを効果的に利用した クロスプラットホームアプリケーションを 開発することを目的としたレイヤです。 SDL レイヤはハードウェアに対する低レベルの抽象的概念を提供し、 時には Xorg インタフェースを使用するよりも効果的なことがあります。
SDL は devel/sdl12 package または port からインストールできます。
DGA は、
プログラムが Xorg サーバを介せず
直接フレームバッファを変更することを可能にする
Xorg の拡張機能です。
低レベルのメモリマッピングが実行できることを期待しているので、
この機能を使うプログラムは root
権限で実行されなければなりません。
DGA 機能拡張は dga(1)
によってテストとベンチマークができます。
dga
実行中はキーボードを押せばいつでもディスプレイ色が変更されます。
中止するには q を押します。
この節では Ports Collection で利用可能な、 ビデオの再生に使用できるソフトウェアについて紹介します。
FreeBSD で実行できるビデオアプリケーションの多くは、 Linux® アプリケーションとして開発されています。 これらのアプリケーションの多くはまだベータ版の品質です。 FreeBSD でこれらのビデオアプリケーションを使用する際に、 以下のような問題が起こるかもしれません。
あるアプリケーションが、 他のアプリケーションの作成したファイルを再生できない。
あるアプリケーションが、 自身の作成したファイルを再生できない。
二つの異なるマシンで構築した同じアプリケーションが、 同じファイルを再生する挙動がそれぞれ異なる。
イメージサイズ変更のように見たところではありふれたフィルタが、 バグの多いサイズ変更ルーチンによってひどい人工物を作成する。
アプリケーションがよくコアダンプする。
文書が port と一緒にインストールされない
(文書は web サイトにあったり、その port の
work
ディレクトリの中に
残っていることがある)。
アプリケーションの多くはさらに 「Linux® 主義」 を主張するかもしれません。 すなわち、アプリケーションの作者が仮定した Linux® ディストリビューションでのみ実装されている、 ある標準ライブラリの使用方法や、 Linux カーネルの特定の機能に起因する問題が生じるかもしれません。 必ずしも port 保守担当者がこれらの問題を把握して作業しているとは限らず、 次のような問題が発生する可能性があります。
プロセッサの特性を検知するための
/proc/cpuinfo
の利用
本当はプログラムを終了させるはずであるのに、 停止させてしまうようなスレッドの誤用
まだ FreeBSD の Ports Collection に収録されていないソフトウェアを必要とする
MPlayer はコマンドラインのビデオプレイヤで、 高速性と柔軟性をもたらすグラフィカルなインタフェースも持っています。 他のグラフィカルなフロントエンド同様、このアプリケーションも FreeBSD Ports Collection からインストールできます。
MPlayer は multimedia/mplayer package または port からインストールできます。 いくつかのコンパイル時のオプションを設定することができ、また、 構築の際にさまざまなハードウェアのチェックがおこなわれます。 そのため、package からインストールを行わず、 port から構築することを好むユーザもいます。 以下のコマンドを実行すると、 メニューで利用可能なオプションが表示されます。
#
cd /usr/ports/multimedia/mplayer
#
make
メニューのオプションは、 port にコンパイル時にオプションとしてどの形式に対応するかを決定するため、見ておく必要があります。 オプションが選択されていなければ MPlayer は、 その形式のビデオ形式を表示することは出来ません。 矢印キーとスペースキーを使って必要な形式を選択してください。 選択が終わったら、Enter を押して、 port の構築とインストールを続けてください。
デフォルトでは、この packege または port は、
mplayer
コマンドラインユーティリティと
gmplayer
グラフィカルユーティリティを構築します。
ビデオをエンコードする必要があれば、
multimedia/mencoder
port をインストールしてください。
ライセンスの制限のため、
MEncoder
の package は利用できません。
MPlayer を初めて起動すると、
各自のホームディレクトリ内に .mplayer
が作成されます。このサブディレクトリには、
ユーザ固有の設定ファイルのデフォルトバージョンが含まれています。
この節では、一般的な使用法についてのみ説明します。
数多くのオプションの完全な説明については、
mplayer
のマニュアルに記載されています。
testfile.avi
というファイルを再生するには、
-vo
とともに、
ビデオインタフェースを指定してください。
%
mplayer -vo xv testfile.avi
%
mplayer -vo sdl testfile.avi
%
mplayer -vo x11 testfile.avi
#
mplayer -vo dga testfile.avi
#
mplayer -vo 'sdl:dga' testfile.avi
ビデオ再生の相対的性能は多くの要因に依存し、 ハードウェアに応じて著しく変わると思われるので、 これらのオプションをすべて試してみる価値はあるでしょう。
DVD を再生するには、
testfile.avi
を
dvd://
に置き換えてください。
<N> には再生するタイトル番号を、
N
-dvd-device DEVICE
DEVICE
は DVD-ROM のデバイスノードを指定します。
たとえば、/dev/dvd
から 2 番目のタイトルを再生するには以下のようにします。
#
mplayer -vo xv dvd://3 -dvd-device /dev/dvd
デフォルトの DVD デバイスは、
MPlayer port の構築時に
WITH_DVD_DEVICE=/path/to/desired/device
を追加することでで定義できます。
デフォルトでは、デバイスは
/dev/acd0
です。
詳細はこの port の
Makefile.options
をご覧ください。
停止、休止、再生などをするにはキーの割り当てを調べてください。
これらの説明は、mplayer -h
を実行すると表示されます。
もしくは、マニュアルを読んでください。
再生に関する追加のオプションがあります。
全画面モードにする -fs -zoom
オプションと、
性能を向上させる -framedrop
オプションです。
よく使用するオプションについては、各ユーザの
.mplayer/config
に以下のように追加してください。
vo=xv fs=yes zoom=yes
mplayer
は DVD タイトルを
.vob
に抽出するのに使用できます。
DVD から 2 番目のタイトルをダンプするには次のようにします。
#
mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
出力された out.vob
ファイルは
MPEG 形式で、
この節で説明される他のアプリケーションで編集できます。
MPlayer ドキュメンテーション には技術的な情報があり、 UNIX® ビデオについて、 高レベルのノウハウを得たいと考えている方はご覧ください。 MPlayer メーリングリストは、 ドキュメンテーションを読むのが苦ではない方には適していません。 バグを報告する前に、最初にドキュメンテーションをご覧ください。
mencoder
を使う前に、
HTML
文書 を読んでオプションに慣れておくのはよい考えです。
品質向上、低ビットレート、形式変換をする方法が無数にあります。
これらの要素の調節具合で、性能が良かったり悪かったりするなど、
結果に違いが出るかもしれません。
コマンドラインオプションを不適切に組合せると、
mplayer
でさえ再生できない出力ファイルを作成してしまいます。
はじめは単純なファイルのコピーです。
%
mencoder input.avi -oac copy -ovc copy -o output.avi
したがって、単にファイルを抽出したいときには、
mplayer
に -dumpfile
をつけます。
input.avi
を音声に MPEG3 エンコードを使用して
MPEG4 コーデックに変換するには、まず最初に
audio/lame
port をインストールしてください。
ライセンスの制限により、package は利用できません。
インストールしたら、以下のように入力してください。
%
mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
これは mplayer
や
xine
といったアプリケーションで再生可能な出力ファイルを作成します。
DVD タイトルを直接再エンコードするためには、
上記のコマンドラインの
input.avi
を
dvd://1 -dvd-device /dev/dvd
に置き換えて、
root
権限で実行します。
期待する結果を得るには何度か繰り返すことになるので、
タイトルをファイルにダンプして、
ファイルに対して作業することをおすすめします。
xine は、 再利用可能な基本ライブラリと、 プラグインで拡張できる実行可能なモジュールを提供するビデオプレイヤです。 multimedia/xine package または port からインストールできます。
実用上、xine を使用するには高速なビデオカードとともに高速な CPU があるか、 またはビデオカードが XVideo 拡張に対応している必要があります。 XVideo インタフェースとともに xine ビデオプレイヤを使うのが最良です。
デフォルトでは、xine プレイヤは GUI 付きで起動するでしょう。 メニューを使用して特定のファイルを開くことができます。
xine は、 GUI なしでファイルを直ちに再生することもできます。
%
xine
GUI なしでファイルを直ちに再生するには、 次のコマンドを実行します。
%
xine -g -p mymovie.avi
xine HOWTO には、 すべてのプレイヤで一般的なパフォーマンスの改善について書かれている章があります。
transcode は、
ビデオおよびオーディオファイルを再エンコードするためのツール一式です。
transcode を使えば、
stdin/stdout
ストリームインタフェースとともにコマンドラインツールを用いることによって、
ビデオファイルの統合や、壊れたファイルの修復ができます。
transcode は、 multimedia/transcode package もしくは port からインストールできます。 多くのユーザは port からコンパイルすることを好みます。 port では、コンパイルで有効にするサポートやコーデックを指定するコンパイルオプションのメニューを利用できるためです。 オプションを選択しないと、transcode は、その形式をエンコード出来ないでしょう。 矢印キーとスペースバーを使って、 必要とするフォーマットを選択してください。 選択が終わったら、 Enter を押して、port のコンパイルとインストールを続けてください。
この例では、DivX ファイルを PAL MPEG-1 (PAL VCD) に変換する使用例を示します。
%
transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
%
mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
作成された MPEG ファイル、
output_vcd.mpg
は、
MPlayer を使って再生できます。
また、ファイルを CD-R メディアに書き込むことでビデオ CD も作成できます。
この場合には、multimedia/vcdimager
および sysutils/cdrdao
をインストールして使用してください。
transcode
のマニュアルページに加え、
transcode
wiki から、更なる情報や使用例を得てください。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。