ビデオ再生のための設定をはじめる前に、
ビデオカードのモデルおよびチップセットを確認する必要があります。
Xorg
はさまざまなビデオカードに対応していますが、
すべてのカードがビデオ再生に性能を発揮できるとは限りません。
利用しているビデオカードの Xorg
サーバが対応している拡張機能のリストを得るには、
Xorg を実行中に
xdpyinfo
を実行してください。
さまざまなプレイヤやオプションを試すのに、
テストファイルとして小さな MPEG ファイルを用意しておくのはよい考えです。
いくつかの DVD アプリケーションは
DVD メディアを
/dev/dvd
として初期設定しているか、ハードコーディングしているので、
次のように適切なデバイスにシンボリックリンクを張っておくと便利かもしれません。
#
ln -sf /dev/cd0 /dev/dvd
devfs(5) の仕様により、
このように手動で作成されたリンクはシステムを再起動すると消えてしまいます。
システムの起動時にこれらのシンボリックリンクを自動的に作成するには、
/etc/devfs.conf
に下記の設定を追加してください。
link cd0 dvd
特別な機能を必要とする DVD の抽出には、 DVD デバイスへの書き込み権限が必要です。
Xorg インタフェースの使う共有メモリを拡張するために、 以下の sysctl(8) 変数の値を増やすことが推奨されています。
kern.ipc.shmmax=67108864 kern.ipc.shmall=32768
Xorg においてビデオ表示性能を改善する方法はいくつかあり、 正しく動作するかどうかはハードウェアに大きく依存しています。 下記に説明したどの方法でも、 ハードウェアが変わると品質が変わるでしょう。
よく知られたビデオインタフェースは次の通りです。
Xorg: 共有メモリを用いた通常の出力
XVideo: 特別なアクセラレータによって、 drawable オブジェクトに直接ビデオを表示する Xorg インタフェースの拡張機能です。 この拡張を使うことで廉価なコンピュータでも高品質の再生が可能になります。 次の節では、 この拡張が動作していることの確認方法について説明します。
SDL: Simple Directmedia Layer は、 さまざまなオペレーティングシステムの間でサウンドとグラフィックスを効果的に利用したクロスプラットホームアプリケーションを開発することを目的としたレイヤです。 SDL はハードウェアに対する低レベルの抽象的概念を提供し、 時には Xorg インタフェースを使用するよりも効果的なことがあります。 FreeBSD では、SDL は、 devel/sdl20 package または port によりインストールできます。
DGA: Direct Graphics Access は、
プログラムが Xorg
サーバを介せず直接フレームバッファを変更することを可能にする
Xorg の拡張機能です。
低レベルのメモリマッピングが実行できることを期待しているので、
この機能を使うプログラムは
root
権限で実行されなければなりません。
DGA 機能拡張は dga(1)
によってテストとベンチマークができます。
dga
実行中はキーボードを押せばいつでもディスプレイ色が変更されます。
中止するには q を押します。
SVGAlib: 低レベルコンソールグラフィックレイヤ
この拡張機能が動作しているかどうかを調べるには、
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 に対応していないのでしょう。 このことはディスプレイでビデオを表示するのに、 ビデオカードおよびプロセッサによっては、 計算上の要求を満たすことがより困難になることを意味します。
この節では Ports Collection で利用可能な、 ビデオの再生に使用できるソフトウェアについて紹介します。
MPlayer はコマンドラインのビデオプレイヤで、 高速性と柔軟性をもたらすグラフィカルなインタフェースも持っています。 MPlayer の他のグラフィカルなフロントエンドも Ports Collection からインストールできます。
MPlayer は multimedia/mplayer package または port からインストールできます。 いくつかのコンパイル時のオプションを設定することができ、また、 構築の際にさまざまなハードウェアのチェックがおこなわれます。 そのため、package からインストールを行わず、 port から構築することを好むユーザもいます。
port を構築する際に、メニューのオプションは、port にコンパイル時にオプションとしてどの形式に対応するかを決定するため、 見ておく必要があります。 オプションが選択されていなければ、 MPlayer はその形式のビデオ形式を表示することは出来ません。 矢印キーとスペースキーを使って必要な形式を選択してください。 選択が終わったら、Enter を押して、 port の構築とインストールを続けてください。
デフォルトでは、この packege または port は、
mplayer
コマンドラインユーティリティと
gmplayer
グラフィカルユーティリティを構築します。
ビデオをエンコードする必要があれば、
multimedia/mencoder
port をコンパイルしてください。
ライセンスの制限のため、
MEncoder の
package は利用できません。
MPlayer を初めて起動すると、
各自のホームディレクトリ内に ~/.mplayer
が作成されます。このサブディレクトリには、
ユーザ固有の設定ファイルのデフォルトバージョンが含まれています。
この節では、一般的な使用法についてのみ説明します。 数多くのオプションの完全な説明については、 mplayer(1) のマニュアルに記載されています。
というファイルを再生するには、以下の例のように、
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 のデバイスノードを指定します。
たとえば、/dev/dvd
から 2 番目のタイトルを再生するには以下のようにします。
#
mplayer -vo xv dvd://3 -dvd-device /dev/dvd
デフォルトの DVD デバイスは、
MPlayer port の構築時に
WITH_DVD_DEVICE=/path/to/desired/device
を追加することでで定義できます。
デフォルトでは、デバイスは
/dev/cd0
です。
詳細はこの port の
Makefile.options
をご覧ください。
停止、休止、
再生などをするにはキーバインディングを使ってください。
キーバインディングの一覧を見るには、mplayer -h
を実行するか、もしくは、mplayer(1) を読んでください。
再生に関する追加のオプションがあります。
全画面モードにする -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 形式です。
UNIX® ビデオについて、 高レベルのノウハウを得たいと考えている方は mplayerhq.hu/DOCS をご覧ください。技術的な情報があります。 このドキュメントは、 バグを報告する前に、読むべきものです。
mencoder
を使う前に、mplayerhq.hu/DOCS/HTML/en/mencoder.html
を読んでオプションに慣れておくのはよい考えです。
品質向上、低ビットレート、形式変換をする方法が無数にあります。
これらの要素の調節具合で、性能が良かったり悪かったりするなど、
結果に違いが出るかもしれません。
コマンドラインオプションを不適切に組合せると、
mplayer
でさえ再生できない出力ファイルを作成してしまいます。
はじめは単純なファイルのコピーです。
%
mencoder
input.avi
-oac copy -ovc copy -ooutput.avi
したがって、単にファイルを抽出したいときには、
mplayer
に -dumpfile
をつけます。
を音声に MPEG3 エンコードを使用して
MPEG4 コーデックに変換するには、まず最初に
audio/lame
port をインストールしてください。
ライセンスの制限により、package は利用できません。
インストールしたら、以下のように入力してください。input.avi
%
mencoder
input.avi
-oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -ooutput.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 は、 再生するファイル名を指定することで、 コマンドラインから実行することもできます。
%
xine -g -p
mymovie.avi
xine-project.org/faq には、より多くの情報やトラブルシューティングがあります。
Transcode は、 ビデオおよびオーディオファイルを再エンコードするためのツール一式です。 Transcode を使えば、stdin/stdout ストリームインタフェースとともにコマンドラインツールを用いることで、 ビデオファイルの統合や、壊れたファイルの修復ができます。
FreeBSD では、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 ファイル、
は、
MPlayer を使って再生できます。
また、multimedia/vcdimager
および sysutils/cdrdao
といったユーティリティを使って、
ファイルを CD
メディアに書き込むことでビデオ
CD も作成できます。output_vcd.mpg
transcode
のマニュアルページに加え、transcoding.org/cgi-bin/transcode
から、更なる情報や使用例を得てください。
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。