<?xml version="1.0" encoding="euc-jp"?>
<!--
     The FreeBSD Documentation Project
     The FreeBSD Japanese Documentation Project

     Original revision: r52152
     $FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook"
  xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
  xml:id="multimedia">

  <info>
    <title>マルチメディア</title>

    <authorgroup>
      <author>
	<personname>
	  <firstname>Ross</firstname>
	  <surname>Lippert</surname>
	</personname>
	<contrib>編集: </contrib>
      </author>
    </authorgroup>
  </info>

  <sect1 xml:id="multimedia-synopsis">
    <title>この章では</title>

    <para>&os; は数多くの種類のサウンドカードに対応しており、
      &os; システムで原音に忠実な出力を楽しむことができます。
      これには録音機能と、MPEG Audio Layer 3 (<acronym>MP3</acronym>)
      や Waveform Audio File (<acronym>WAV</acronym>), Ogg Vorbis
      などをはじめとした多くの形式の音楽の再生機能が含まれます。
      加えて &os; の Ports Collection には、
      録音した音楽を編集したり、音響効果を加えたり、接続された
      MIDI 機器を制御するためのアプリケーションが用意されています。</para>

    <para>&os; ではビデオファイルおよび <acronym>DVD</acronym>
      の再生もできます。
      &os; の Ports Collection には、さまざまなビデオメディアをエンコード、
      変換、再生するアプリケーションが用意されています。</para>

    <para>この章では &os; 上でサウンドカード、ビデオの再生、TV チューナカード、
      スキャナを設定する方法について説明します。
      また、これらのデバイスを使うためのアプリケーションについても説明します。</para>

    <para>この章を読むと、以下のことがわかります。</para>

    <itemizedlist>
      <listitem>
	<para>&os; でのサウンドカードの設定方法</para>
      </listitem>

      <listitem>
	<para>サウンドの設定に関するトラブルシューティング</para>
      </listitem>

      <listitem>
	<para>MP3 およびその他の形式の音声を再生、エンコードする方法</para>
      </listitem>

      <listitem>
	<para>&os; システムでのビデオ再生の準備</para>
      </listitem>

      <listitem>
	<para><acronym>DVD</acronym>, <filename>.mpg</filename> および
	  <filename>.avi</filename> ファイルを再生する方法</para>
      </listitem>

      <listitem>
	<para><acronym>CD</acronym> および <acronym>DVD</acronym>
	  の情報をファイルに抽出する方法</para>
      </listitem>

      <listitem>
	<para>TV カードの設定方法</para>
      </listitem>

      <listitem>
	<para>MythTV を &os; にインストールして設定する方法</para>
      </listitem>

      <listitem>
	<para>画像スキャナの設定方法</para>
      </listitem>
    </itemizedlist>

    <para>この章を読む前に、以下のことを理解しておく必要があります。</para>

    <itemizedlist>
      <listitem><para>アプリケーションのインストール方法
	(<xref linkend="ports"/>)</para></listitem>
    </itemizedlist>
  </sect1>

  <sect1 xml:id="sound-setup">
    <info>
      <title>サウンドカードの設定</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Moses</firstname>
	    <surname>Moore</surname>
	  </personname>
	  <contrib>寄稿: </contrib><!-- (2000 年 11 月) -->
	</author>
      </authorgroup>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Marc</firstname>
	    <surname>Fonvieille</surname>
	  </personname>
	  <contrib>再構成: </contrib> <!--  (2004 年 9 月) -->
	</author>
      </authorgroup>
    </info>

    <indexterm><primary>PCI</primary></indexterm>
    <indexterm><primary>サウンドカード</primary></indexterm>
    <para>設定をはじめる前に、サウンドカードのモデル、
      そのカードが使用しているチップを確認してください。
      &os; は サウンドカードに幅広く対応しています。
      使用しているカードが対応しているかどうか、
      どの &os; ドライバを使うかについて、
      <link xlink:href="&rel.current.hardware;">ハードウェアノート</link>
      の対応オーディオデバイスの一覧を確認してください。</para>

    <indexterm>
      <primary>カーネル</primary>
      <secondary>設定</secondary>
    </indexterm>

    <para>サウンドデバイスを使うためには、
      デバイスドライバを読み込まなければいけません。
      もっとも簡単な方法は &man.kldload.8;
      を使ってサウンドカードのカーネルモジュールを読み込むことです。
      次の例は、Intel
      仕様のビルトインオーディオチップセットのドライバを読み込む例です。</para>

    <screen>&prompt.root; <userinput>kldload snd_hda</userinput></screen>

    <para>このドライバを起動時に読み込むように設定するためには、
      <filename>/boot/loader.conf</filename> にドライバを追加してください。
      このドライバの場合は以下の行になります。</para>

    <programlisting>snd_hda_load="YES"</programlisting>

    <para>他に利用可能な読み込み可能なサウンドモジュールは
      <filename>/boot/defaults/loader.conf</filename>
      に記載されています。
      どのドライバを利用すればいいか確かでなければ、
      <filename>snd_driver</filename>
      モジュールを読み込んでください。</para>

    <screen>&prompt.root; <userinput>kldload snd_driver</userinput></screen>

    <para><filename>snd_driver</filename> モジュールは、
      一般に使用されるカードに対応したドライバをまとめて一度に読み込むメタドライバです。
      このドライバを使用すれば、速やかに正しいドライバを探し出すことができます。
      <filename>/boot/loader.conf</filename> ファイルを使用して、
      すべてのサウンドドライバを読み込むこともできます。</para>

    <para><filename>snd_driver</filename> メタドライバの読み込み後に、
      どのドライバがサウンドカードに選択されたのかを知るには、
      <command>cat /dev/sndstat</command> と入力してください。</para>

    <sect2>
      <title>サウンドに対応したカスタムカーネルを設定する</title>

      <para>この節は、
	サウンドカードのドライバをカーネルへ静的に組み込もうと考えているユーザ向けです。
	カーネル再構築の詳細は
	<xref linkend="kernelconfig"/> を参照してください。</para>

      <para>サウンドに対応したカスタムカーネルを使うときには、
	オーディオフレームワークドライバをカーネルコンフィグレーションファイルに追加してください。</para>

      <programlisting>device sound</programlisting>

      <para>次に、サウンドカードに対応したドライバを追加します。
	前節の Intel 仕様のビルトインオーディオチップセットの例では、
	カスタムカーネルコンフィグレーションファイルに以下の行を追加してください。</para>

      <programlisting>device snd_hda</programlisting>

      <para>ドライバのマニュアルページを読んで、
	ドライバが使用するデバイス名を調べてください。</para>

      <para>PnP 非対応の ISA サウンドカードでは、
	IRQ および I/O ポートの設定を
	<filename>/boot/device.hints</filename> 
	に指定する必要があるかもしれません。
	システムの起動時に、&man.loader.8;
	はこのファイルを読み、設定情報をカーネルに渡します。
	たとえば、PnP 非対応の古い Creative &soundblaster; 16 (ISA 接続)
	には <literal>snd_sb16</literal> とともに
	&man.snd.sbc.4; ドライバを使用します。
	このカードを使用する場合には、
	カーネルコンフィグレーションファイルに以下の行を追加してください。</para>

      <programlisting>device snd_sbc
device snd_sb16</programlisting>

      <para>もしカードが <literal>0x220</literal> I/O port と
	IRQ <literal>5</literal> を使用している場合には、
	<filename>/boot/device.hints</filename>
	に以下の行を追加してください。</para>

      <programlisting>hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"</programlisting>

      <para><filename>/boot/device.hints</filename>
	に用いるべき構文は、&man.sound.4; および、
	サウンドカードの各ドライバのマニュアルページに記載されています。</para>

      <para>これまでの設定はデフォルトのものです。
	カードを使用する状況によっては、
	IRQ やその他の設定を変更する必要があるかもしれません。
	このカードについての詳細は、
	&man.snd.sbc.4; をご覧ください。</para>
    </sect2>

    <sect2 xml:id="sound-testing">
      <title>サウンドのテスト</title>

      <para>必要となるモジュールを読み込むか、カスタムカーネルで再起動すると、
	サウンドカードが検出されます。
	確認をするには、<command>dmesg | grep pcm</command> と実行してください。
	この例は、ビルトイン Conexant CX20590
	チップセットを搭載したシステムのものです。</para>

      <screen>pcm0: &lt;NVIDIA (0x001c) (HDMI/DP 8ch)&gt; at nid 5 on hdaa0
pcm1: &lt;NVIDIA (0x001c) (HDMI/DP 8ch)&gt; at nid 6 on hdaa0
pcm2: &lt;Conexant CX20590 (Analog 2.0+HP/2.0)&gt; at nid 31,25 and 35,27 on hdaa1</screen>

      <para>サウンドカードの状態は、
	以下のコマンドを使用して確認することもできます。</para>

      <screen>&prompt.root; <userinput>cat /dev/sndstat</userinput>
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: &lt;NVIDIA (0x001c) (HDMI/DP 8ch)&gt; (play)
pcm1: &lt;NVIDIA (0x001c) (HDMI/DP 8ch)&gt; (play)
pcm2: &lt;Conexant CX20590 (Analog 2.0+HP/2.0)&gt; (play/rec) default</screen>

      <para>この出力は、サウンドカードによって異なります。
	<filename>pcm</filename> デバイスがなければ、
	適切なデバイスドライバが読み込まれているか、
	カーネルに追加されてコンパイルされているかどうかを確認してください。
	次の節では、良くある問題とその解決方法をリストアップしています。</para>

      <para>すべてうまくいけば、サウンドカードが &os; で機能するでしょう。
	<acronym>CD</acronym> または <acronym>DVD</acronym>
	ドライブのオーディオ出力端子がサウンドカードと適切に接続されていれば、
	&man.cdcontrol.1; を使ってドライブ内のオーディオ
	<acronym>CD</acronym> を再生できます。</para>

      <screen>&prompt.user; <userinput>cdcontrol -f /dev/acd0 play 1</userinput></screen>

      <warning>
	<para>オーディオ <acronym>CD</acronym>
	  は特別なエンコーディングが行われているため、
	  &man.mount.8; を使ってマウントすべきではありません。</para>
      </warning>

      <para><package>audio/workman</package> のように、
	よりよいインタフェースを提供するさまざまなアプリケーションがあります。
	<package>audio/mpg123</package> port
	をインストールして MP3 オーディオファイルを聞くことができます。</para>

      <para>手っ取り早くカードをテストするには、
	<filename>/dev/dsp</filename>
	デバイスにデータを送ってみてください。</para>

      <screen>&prompt.user; <userinput>cat <replaceable>filename</replaceable> &gt; /dev/dsp</userinput></screen>

      <para>ここで <filename><replaceable>filename</replaceable></filename>
	は、どのような形式のファイルでも構いません。
	このコマンドラインを実行すると雑音が発生するはずです。
	これにより、サウンドカードが動作していることを確認できます。</para>

      <note>
	<para><filename>/dev/dsp*</filename> デバイスノードは、
	  必要に応じて自動的に作成されます。
	  デバイスノードが使用されていない場合には存在せず、
	  &man.ls.1; の出力に表示されません。</para>
      </note>
    </sect2>

    <sect2 xml:id="troubleshooting">
      <title>サウンドカードの問題についてのトラブルシューティング</title>

      <indexterm><primary>デバイスノード</primary></indexterm>
      <indexterm><primary>I/O ポート</primary></indexterm>
      <indexterm><primary>IRQ</primary></indexterm>
      <indexterm><primary>DSP</primary></indexterm>

      <para><xref linkend="multimedia-sound-common-error-messages"/> は、
	良くあるエラーメッセージとその解決法の一覧です。</para>

      <table xml:id="multimedia-sound-common-error-messages"
	frame="none" pgwide="1">
	<title>良くあるエラーメッセージ</title>

	<tgroup cols="2">
	  <thead>
	    <row>
	      <entry>エラー</entry>
	      <entry>解決方法</entry>
	    </row>
	  </thead>

	  <tbody>
	    <row>
	      <entry><errorname>sb_dspwr(XX) timed
		  out</errorname></entry>
	      <entry><para>使用する
		I/O ポートが適切に設定されていません。</para></entry>
	    </row>

	    <row>
	      <entry><errorname>bad irq XX</errorname></entry>
	      <entry><para>使用する IRQ が正しく設定されていません。
		サウンドカードの IRQ と設定した IRQ
		が同じかどうか確かめてください。</para></entry>
	    </row>

	    <row>
	      <entry><errorname>xxx: gus pcm not attached, out of
		  memory</errorname></entry>
	      <entry><para>デバイスを使用するのに十分なメモリを確保できません。</para></entry>
	    </row>

	    <row>
	      <entry><errorname>xxx: can't open
		  /dev/dsp!</errorname></entry>
	      <entry><para><command>fstat | grep dsp</command>
		と入力して、
		他のアプリケーションがデバイスを使用しているか調べてください。
		注目すべきトラブルメーカは
		<application>esound</application> と
		<application>KDE</application>
		のサウンド機能です。</para></entry>
	    </row>
	  </tbody>
	</tgroup>
      </table>

      <para>最近のグラフィックカードの中には、
	<acronym>HDMI</acronym> を利用するため、
	グラフィックカード自身がサウンドカードを持つものがあります。
	このようなサウンドデバイスには、
	時としてサウンドカードより若い番号が付けられることがあります。
	そのような場合には、
	サウンドカードをデフォルトプレイバックデバイスとして利用できません。
	このことが原因かどうかを確認するには、<application>dmesg</application> を実行して
	<literal>pcm</literal> を探してください。
	以下のような出力を得るかもしれません。</para>

      <programlisting>...
hdac0: HDA Driver Revision: 20100226_0142
hdac1: HDA Driver Revision: 20100226_0142
hdac0: HDA Codec #0: NVidia (Unknown)
hdac0: HDA Codec #1: NVidia (Unknown)
hdac0: HDA Codec #2: NVidia (Unknown)
hdac0: HDA Codec #3: NVidia (Unknown)
pcm0: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 0 nid 1 on hdac0
pcm1: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 1 nid 1 on hdac0
pcm2: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 2 nid 1 on hdac0
pcm3: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 3 nid 1 on hdac0
hdac1: HDA Codec #2: Realtek ALC889
pcm4: &lt;HDA Realtek ALC889 PCM #0 Analog&gt; at cad 2 nid 1 on hdac1
pcm5: &lt;HDA Realtek ALC889 PCM #1 Analog&gt; at cad 2 nid 1 on hdac1
pcm6: &lt;HDA Realtek ALC889 PCM #2 Digital&gt; at cad 2 nid 1 on hdac1
pcm7: &lt;HDA Realtek ALC889 PCM #3 Digital&gt; at cad 2 nid 1 on hdac1
...</programlisting>

      <para>この例では、グラフィックカード (<literal>NVidia</literal>)
	には、サウンドカード (<literal>Realtek ALC889</literal>)
	より若い番号が付けられています。
	サウンドカードをデフォルトのプレイバックデバイスとして利用するには、
	<literal>hw.snd.default_unit</literal>
	をプレイバックで使用するユニット番号に変更してください。</para>

      <screen>&prompt.root; <userinput>sysctl hw.snd.default_unit=<replaceable>n</replaceable></userinput></screen>

      <para>ここで、<literal>n</literal> は使用するサウンドデバイスの番号です。
	この例では <literal>4</literal> です。
	<filename>/etc/sysctl.conf</filename> に以下の行を入れると、
	設定の変更が常に反映されるようになります。</para>

      <programlisting>hw.snd.default_unit=<replaceable>4</replaceable></programlisting>
    </sect2>

    <sect2 xml:id="sound-multiple-sources">
      <info>
	<title>複数音源の利用</title>
 
	<authorgroup>
	  <author>
	    <personname>
	      <firstname>Munish</firstname>
	      <surname>Chopra</surname>
	    </personname>
	    <contrib>寄稿: </contrib>
	  </author>
	</authorgroup>
      </info>

      <para>同時に再生することのできる音源を複数実装していることは、
	多くの場合望ましいことです。
	&os; では、<quote>仮想サウンドチャネル</quote>
	を使ってカーネル内でサウンドを合成することにより、
	サウンドカードの再生を多重化することができます。</para>

      <para>仮想チャネルの数を決めるのに三つの &man.sysctl.8;
	変数を設定できます。</para>

      <screen>&prompt.root; <userinput>sysctl dev.pcm.0.play.vchans=4</userinput>
&prompt.root; <userinput>sysctl dev.pcm.0.rec.vchans=4</userinput>
&prompt.root; <userinput>sysctl hw.snd.maxautovchans=4</userinput></screen>

      <para>この例では四つの仮想チャネルを設定しています。
	これは通常利用する上で十分実用的な数です。
	<varname>dev.pcm.0.play.vchans=4</varname> と
	<varname>dev.pcm.0.rec.vchans=4</varname> は、
	デバイスが取り付けられた後で設定できます。
	これらは <filename>pcm0</filename>
	が再生や録音のために持っている仮想チャネルの数です。
	<literal>hw.snd.maxautovchans</literal> は、
	&man.kldload.8;
	を用いて認識された新しいデバイスの仮想チャネル数です。
	<filename>pcm</filename>
	モジュールはハードウェアドライバとは独立して読み込むことができるので、
	<varname>hw.snd.maxautovchans</varname>
	は、オーディオデバイスが取り付けられた時に、
	デバイスに与えられる仮想チャネルの数を表しています。
	より詳細な情報については &man.pcm.4; を参照してください。</para>

      <note>
	<para>デバイスを使用しているときに仮想チャンネルの数を変更することはできません。
	  まず、ミュージックプレーヤやサウンドデーモンといった
	  デバイスを使用しているすべてのプログラムを終了してください。</para>
      </note>

      <para><filename>/dev/dsp0</filename>
	を必要とするプログラムが意識しなくても、
	適切な <filename>pcm</filename>
	デバイスが自動的に設定されます。</para>
    </sect2>

    <sect2>
      <info>
	<title>ミキサチャネルの初期値を設定する</title>

	<authorgroup>
	  <author>
	    <personname>
	      <firstname>Josef</firstname>
	      <surname>El-Rayes</surname>
	    </personname>
	    <contrib>寄稿: </contrib>
	  </author>
	</authorgroup>
      </info>

      <para>各ミキサチャネルの初期値は
	&man.pcm.4; ドライバのソースコードにハードコーディングされています。
	&man.mixer.8;
	および他のサードパーティ製のアプリケーションやデーモンによって、
	サウンドカードのミキサレベルを変更できますが、
	永続的な解決方法ではありません。
	そのかわり以下の例のように、
	適切な値を <filename>/boot/device.hints</filename>
	ファイルに記述することによって、
	ドライバレベルでミキサの初期値を設定することができます。</para>

      <programlisting>hint.pcm.0.vol="50"</programlisting>

      <para>この例では、&man.pcm.4; が読み込まれたと同時に、
	ボリュームチャネルの初期値を <literal>50</literal>
	に設定します。</para>
    </sect2>
  </sect1>

  <sect1 xml:id="sound-mp3">
    <info>
      <title>MP3 オーディオ</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Chern</firstname>
	    <surname>Lee</surname>
	  </personname>
	  <contrib>寄稿: </contrib> <!--  (2001 年 9 月) -->
	</author>
      </authorgroup>
    </info>

    <para>この節では、&os; で利用できる <acronym>MP3</acronym>
      プレイヤや、オーディオ <acronym>CD</acronym> トラックを吸い出す方法、
      および <acronym>MP3</acronym> のエンコード、
      デコードの方法について説明します。</para>

    <sect2 xml:id="mp3-players">
      <title>MP3 プレイヤ</title>

      <para><application>Audacious</application> は
	人気のあるグラフィカルな <acronym>MP3</acronym> プレイヤです。
	<application>Winamp</application>
	スキンや追加のプラグインに対応しています。
	<application>Audacious</application> のプレイリスト、
	グラフィックイコライザ等のインタフェースは直感的です。
	<application>Winamp</application> を使いなれている人は簡単に
	<application>Audacious</application> を使えるでしょう。
	&os; では、<application>Audacious</application> は
	<package>multimedia/audacious</package> の
	port または package からインストールできます。
	Audacious は、XMMS の子孫です。</para>

      <para><package>audio/mpg123</package> package もしくは port は、
	は代替となる コマンドライン上の <acronym>MP3</acronym>
	プレイヤです。インストールしたら、再生する <acronym>MP3</acronym>
	ファイルをコマンドラインから指定してください。
	もしシステムが、複数のオーディオデバイスを搭載しているのであれば、
	サウンドデバイスを同様に指定してください。</para>

      <screen>&prompt.root; <userinput>mpg123 <replaceable>-a /dev/dsp1.0 Foobar-GreatesHits.mp3</replaceable></userinput>
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.18.1; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes

Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo</screen>

      <para>他の <acronym>MP3</acronym> プレイヤも
	Ports Collection から利用できます。</para>
    </sect2>

    <sect2 xml:id="rip-cd">
      <title><acronym>CD</acronym> オーディオトラックの抽出</title>

      <para><acronym>CD</acronym> 全体または <acronym>CD</acronym>
	トラックを <acronym>MP3</acronym>
	に変換する前に、<acronym>CD</acronym>
	上のオーディオデータをハードディスク上に抽出する必要があります。
	これは raw <acronym>CD</acronym> Digital Audio
	(<acronym>CDDA</acronym>) データを
	<acronym>WAV</acronym> ファイルにコピーすることで行われます。</para>

      <para><package>sysutils/cdrtools</package>
	スイートからインストールされる <command>cdda2wav</command>
	ツールを用いて、<acronym>CD</acronym>
	からオーディオデータを抽出できます。</para>

      <para><acronym>CD</acronym> をドライブにいれて次のコマンドを
	<systemitem class="username">root</systemitem> 権限で実行すると、
	<acronym>CD</acronym> 全体をトラックごとに個々の
	<acronym>WAV</acronym> ファイルに抽出できます。</para>

      <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -B</userinput></screen>

      <para>この例では、<option>-D <replaceable>0,1,0</replaceable></option>
	は <acronym>SCSI</acronym> デバイス <filename>0,1,0</filename>
	が抽出する <acronym>CD</acronym> を表します。
	<command>cdrecord -scanbus</command> を使って、
	システムの適切なデバイスパラメータを取得してください。</para>

      <para>個々のトラックを抽出するには、
	次のように <option>-t</option> でトラックを指定してください。</para>

      <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -t 7</userinput></screen>

      <para>範囲を指定して、
	一番目から七番目のトラックまで抽出したい場合、
	次のようにします。</para>

      <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -t 1+7</userinput></screen>

      <para><acronym>ATAPI</acronym> (<acronym>IDE</acronym>)
	<acronym>CDROM</acronym> ドライブから抽出するには、
	<acronym>SCSI</acronym>
	ユニット番号をデバイス名に置き換えて指定します。
	たとえば IDE ドライブから七番目のトラックを抽出するには、
	次のようにします。</para>

      <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>/dev/acd0 -t 7</replaceable></userinput></screen>

      <para>または、<xref linkend="duplicating-audiocds"/>
	で説明されているように、<command>dd</command> を使って
	<acronym>ATAPI</acronym>
	ドライブ上のオーディオトラックを展開できます。</para>
    </sect2>

    <sect2 xml:id="mp3-encoding">
      <title>MP3 のエンコードとデコード</title>

      <para><application>lame</application> は、
	ポピュラーな <acronym>MP3</acronym> エンコーダです。
	<package>audio/lame</package>
	port からインストールできます。
	特許の問題から、package は利用できません。</para>

      <para>次のコマンドを実行すると、抽出した <acronym>WAV</acronym> ファイル
	<filename><replaceable>audio01.wav</replaceable></filename>
	を使って
	<filename><replaceable>audio01.mp3</replaceable></filename>
	に変換します。</para>

      <screen>&prompt.root; <userinput>lame -h -b <replaceable>128</replaceable> --tt "<replaceable>曲名</replaceable>" --ta "<replaceable>アーティスト名</replaceable>" --tl "<replaceable>アルバム名</replaceable>" \
--ty "<replaceable>年</replaceable>" --tc "<replaceable>コメント</replaceable>" --tg "<replaceable>ジャンル</replaceable>" <replaceable>audio01.wav audio01.mp3</replaceable></userinput></screen>

      <para>ここで指定している 128&nbsp;kbits は、<acronym>MP3</acronym>
	の標準のビットレートです。
	160&nbsp;kbits または 192&nbsp;kbits のビットレートは、
	さらに高音質を提供します。
	ビットレートが高くなるにつれて作成される
	<acronym>MP3</acronym> ファイルは多くのディスク領域を消費します。
	<option>-h</option> オプションを指定すると
	<quote>低速高品質</quote> モードとなります。
	<option>--t</option> ではじまるオプションは <acronym>ID3</acronym>
	タグを設定します。
	このタグにはたいてい曲の情報が含まれており、
	<acronym>MP3</acronym> ファイルに格納されます。
	<application>Lame</application>	のマニュアルを参照すれば、
	他のエンコーディングのオプションが見つかるでしょう。</para>

      <para><acronym>MP3</acronym> からオーディオ
	<acronym>CD</acronym> を作成するには、
	まず非圧縮のファイル形式に変換しなければなりません。
	<application>XMMS</application>
	は <acronym>WAV</acronym> 形式へ変換できますが、
	<application>mpg123</application> は
	raw Pulse-Code Modulation (<acronym>PCM</acronym>)
	オーディオデータに変換します。</para>

      <para><application>mpg123</application> を使って
	<filename>audio01.mp3</filename>
	を変換するには、<acronym>PCM</acronym>
	ファイルを指定してください。</para>

      <screen>&prompt.root; <userinput>mpg123 -s <replaceable>audio01.mp3</replaceable> &gt; <replaceable>audio01.pcm</replaceable></userinput></screen>

      <para><application>XMMS</application> を使って
	<acronym>MP3</acronym> を <acronym>WAV</acronym> 形式に変換するには、
	以下の手順に従ってください。</para>

      <procedure>
	<title><application>XMMS</application> を使って
	  <acronym>WAV</acronym> 形式に変換する</title>

	<step>
	  <para><application>XMMS</application> を起動します。</para>
	</step>

	<step>
	  <para>右クリックで
	    <application>XMMS</application> メニューを表示します。</para>
	</step>

	<step>
	  <para><literal>Options</literal>
	    から <literal>Preferences</literal> を選択します。</para>
	</step>

	<step>
	  <para>Output Plugin を <quote>Disk Writer Plugin</quote>
	    に変更します。</para>
	</step>

	<step>
	  <para><literal>Configure</literal> を押します。</para>
	</step>

	<step>
	  <para>非圧縮ファイルを書き出すディレクトリを入力、
	    または選択します。</para>
	</step>

	<step>
	  <para>普段通り <application>XMMS</application>
	    へ <acronym>MP3</acronym> ファイルを読み込みます。
	    音量は 100% でイコライザの設定はオフにします。</para>
	</step>

	<step>
	  <para><literal>Play</literal> を押します。
	    <application>XMMS</application>
	    は <acronym>MP3</acronym> を再生しているかのように表示しますが、
	    音声はきこえません。
	    実際には <acronym>MP3</acronym> をファイルに出力しています。</para>
	</step>

	<step>
	  <para>終了したら、再び <acronym>MP3</acronym> を聴けるように
	    Output Plugin を以前のように元に戻すのを忘れないでください。</para>
	</step>
      </procedure>

      <para><acronym>WAV</acronym> と <acronym>PCM</acronym> 形式は、
	<application>cdrecord</application> で利用できます。
	<acronym>WAV</acronym> ファイルを使用する場合、
	それぞれのトラックの先頭に小さなノイズが入るのに気づくでしょう。
	これは <acronym>WAV</acronym> ファイルのヘッダ情報です。
	<package>audio/sox</package> port または package
	を使うとヘッダ情報を削除できます。</para>

      <screen>&prompt.user; <userinput>sox -t wav -r 44100 -s -w -c 2 <replaceable>track.wav track.raw</replaceable></userinput></screen>

      <para>&os; での <acronym>CD</acronym> 作成の詳しい情報は
	<xref linkend="creating-cds"/> を参照してください。</para>
    </sect2>
  </sect1>

  <sect1 xml:id="video-playback">
    <info>
      <title>ビデオ再生</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Ross</firstname>
	    <surname>Lippert</surname>
	  </personname>
	  <contrib>寄稿: </contrib> <!--  (2002 年 6 月) -->
	</author>
      </authorgroup>
    </info>

    <para>ビデオ再生のための設定をはじめる前に、
      ビデオカードのモデルおよびチップセットを確認する必要があります。
      <application>&xorg;</application>
      はさまざまなビデオカードに対応していますが、
      すべてのカードがビデオ再生に性能を発揮できるとは限りません。
      利用しているビデオカードの <application>&xorg;</application>
      サーバが対応している拡張機能のリストを得るには、
      <application>&xorg;</application> を実行中に
      <command>xdpyinfo</command> を実行してください。</para>

    <para>さまざまなプレイヤやオプションを試すのに、
      テストファイルとして小さな MPEG ファイルを用意しておくのはよい考えです。
      いくつかの <acronym>DVD</acronym> アプリケーションは
      <acronym>DVD</acronym> メディアを
      <filename>/dev/dvd</filename>
      として初期設定しているか、ハードコーディングしているので、
      次のように適切なデバイスにシンボリックリンクを張っておくと便利かもしれません。</para>

    <screen>&prompt.root; <userinput>ln -sf /dev/cd0 /dev/dvd</userinput></screen>

    <para>&man.devfs.5; の仕様により、
      このように手動で作成されたリンクはシステムを再起動すると消えてしまいます。
      システムの起動時にこれらのシンボリックリンクを自動的に作成するには、
      <filename>/etc/devfs.conf</filename>
      に下記の設定を追加してください。</para>

    <programlisting>link cd0 dvd</programlisting>

    <para>特別な機能を必要とする <acronym>DVD</acronym> の抽出には、
      <acronym>DVD</acronym> デバイスへの書き込み権限が必要です。</para>

    <para><application>&xorg;</application>
      インタフェースの使う共有メモリを拡張するために、
      以下の &man.sysctl.8; 変数の値を増やすことが推奨されています。</para>

    <programlisting>kern.ipc.shmmax=67108864
kern.ipc.shmall=32768</programlisting>

    <sect2 xml:id="video-interface">
      <title>ビデオ機能の決定</title>

      <indexterm><primary>XVideo</primary></indexterm>
      <indexterm><primary>SDL</primary></indexterm>
      <indexterm><primary>DGA</primary></indexterm>

      <para><application>&xorg;</application>
	においてビデオ表示性能を改善する方法はいくつかあり、
	正しく動作するかどうかはハードウェアに大きく依存しています。
	下記に説明したどの方法でも、
	ハードウェアが変わると品質が変わるでしょう。</para>

      <para>よく知られたビデオインタフェースは次の通りです。</para>

      <orderedlist>
	<listitem>
	  <para><application>&xorg;</application>:
	    共有メモリを用いた通常の出力</para>
	</listitem>

	<listitem>
	  <para>XVideo: 特別なアクセラレータによって、
	    drawable オブジェクトに直接ビデオを表示する
	    <application>&xorg;</application> インタフェースの拡張機能です。
	    この拡張を使うことで廉価なコンピュータでも高品質の再生が可能になります。
	    次の節では、
	    この拡張が動作していることの確認方法について説明します。</para>
	</listitem>

	<listitem>
	  <para><acronym>SDL</acronym>: Simple Directmedia Layer は、
	    さまざまなオペレーティングシステムの間でサウンドとグラフィックスを効果的に利用したクロスプラットホームアプリケーションを開発することを目的としたレイヤです。
	    <acronym>SDL</acronym>
	    はハードウェアに対する低レベルの抽象的概念を提供し、
	    時には <application>&xorg;</application>
	    インタフェースを使用するよりも効果的なことがあります。
	    &os; では、<acronym>SDL</acronym> は、
	    <package>devel/sdl20</package> package または port
	    によりインストールできます。</para>
	</listitem>

	<listitem>
	  <para><acronym>DGA</acronym>: Direct Graphics Access は、
	    プログラムが <application>&xorg;</application>
	    サーバを介せず直接フレームバッファを変更することを可能にする
	    <application>&xorg;</application> の拡張機能です。
	    低レベルのメモリマッピングが実行できることを期待しているので、
	    この機能を使うプログラムは
	    <systemitem class="username">root</systemitem>
	    権限で実行されなければなりません。
	    <acronym>DGA</acronym> 機能拡張は &man.dga.1;
	    によってテストとベンチマークができます。
	    <command>dga</command>
	    実行中はキーボードを押せばいつでもディスプレイ色が変更されます。
	    中止するには <keycap>q</keycap> を押します。</para>
	</listitem>

	<listitem>
	  <para>SVGAlib: 低レベルコンソールグラフィックレイヤ</para>
	</listitem>
      </orderedlist>

      <sect3 xml:id="video-interface-xvideo">
	<title>XVideo</title>

	<para>この拡張機能が動作しているかどうかを調べるには、
	  <command>xvinfo</command> を使います。</para>

	<screen>&prompt.user; <userinput>xvinfo</userinput></screen>

	<para>以下のような結果が得られたならば、カードは
	  XVideo に対応しています。</para>

	<screen>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</screen>

	<para>リストにある形式、YUV2, YUV12 などが XVideo
	  のすべての実装で存在するとは限りません。
	  対応している形式が少ないために、
	  あるプレイヤでは悪影響が出るかもしれないことにも注意してください。</para>

	<para>出力が以下のような場合、</para>

	<screen>X-Video Extension version 2.2
screen #0
no adaptors present</screen>

	<para>カードはおそらく XVideo に対応していないのでしょう。
	  このことはディスプレイでビデオを表示するのに、
	  ビデオカードおよびプロセッサによっては、
	  計算上の要求を満たすことがより困難になることを意味します。</para>
      </sect3>
    </sect2>

    <sect2 xml:id="video-ports">
      <title>ビデオを扱う ports および packages</title>

      <indexterm><primary>ビデオ ports</primary></indexterm>
      <indexterm><primary>ビデオ packages</primary></indexterm>

      <para>この節では Ports Collection で利用可能な、
	ビデオの再生に使用できるソフトウェアについて紹介します。</para>

      <sect3 xml:id="video-mplayer">
	<title><application>MPlayer</application> および
	  <application>MEncoder</application></title>

	<para><application>MPlayer</application>
	  はコマンドラインのビデオプレイヤで、
	  高速性と柔軟性をもたらすグラフィカルなインタフェースも持っています。
	  <application>MPlayer</application>
	  の他のグラフィカルなフロントエンドも
	  Ports Collection からインストールできます。</para>

	<indexterm><primary>MPlayer</primary></indexterm>

	<para><application>MPlayer</application> は
	  <package>multimedia/mplayer</package>
	  package または port からインストールできます。
	  いくつかのコンパイル時のオプションを設定することができ、また、
	  構築の際にさまざまなハードウェアのチェックがおこなわれます。
	  そのため、package からインストールを行わず、
	  port から構築することを好むユーザもいます。</para>

	<para>port を構築する際に、メニューのオプションは、port
	  にコンパイル時にオプションとしてどの形式に対応するかを決定するため、
	  見ておく必要があります。
	  オプションが選択されていなければ、
	  <application>MPlayer</application>
	  はその形式のビデオ形式を表示することは出来ません。
	  矢印キーとスペースキーを使って必要な形式を選択してください。
	  選択が終わったら、<keycap>Enter</keycap> を押して、
	  port の構築とインストールを続けてください。</para>

	<para>デフォルトでは、この packege または port は、
	  <command>mplayer</command> コマンドラインユーティリティと
	  <command>gmplayer</command> グラフィカルユーティリティを構築します。
	  ビデオをエンコードする必要があれば、
	  <package>multimedia/mencoder</package>
	  port をコンパイルしてください。
	  ライセンスの制限のため、
	  <application>MEncoder</application> の
	  package は利用できません。</para>

	<para><application>MPlayer</application> を初めて起動すると、
	  各自のホームディレクトリ内に <filename>~/.mplayer</filename>
	  が作成されます。このサブディレクトリには、
	  ユーザ固有の設定ファイルのデフォルトバージョンが含まれています。</para>

	<para>この節では、一般的な使用法についてのみ説明します。
	  数多くのオプションの完全な説明については、
	  mplayer(1) のマニュアルに記載されています。</para>

	<para><filename><replaceable>testfile.avi</replaceable></filename>
	  というファイルを再生するには、以下の例のように、
	  <option>-vo</option> とともに、
	  ビデオインタフェースを指定してください。</para>

	<screen>&prompt.user; <userinput>mplayer -vo xv <replaceable>testfile.avi</replaceable></userinput></screen>

	<screen>&prompt.user; <userinput>mplayer -vo sdl <replaceable>testfile.avi</replaceable></userinput></screen>

	<screen>&prompt.user; <userinput>mplayer -vo x11 <replaceable>testfile.avi</replaceable></userinput></screen>

	<screen>&prompt.root; <userinput>mplayer -vo dga <replaceable>testfile.avi</replaceable></userinput></screen>

	<screen>&prompt.root; <userinput>mplayer -vo 'sdl:dga' <replaceable>testfile.avi</replaceable></userinput></screen>

	<para>ビデオ再生の相対的性能は多くの要因に依存し、
	  ハードウェアに応じて著しく変わると思われるので、
	  これらのオプションをすべて試してみる価値はあるでしょう。</para>

	<para><acronym>DVD</acronym> を再生するには、
	  <filename><replaceable>testfile.avi</replaceable></filename> を
	  <option>dvd://<replaceable>N</replaceable> -dvd-device
	    <replaceable>DEVICE</replaceable></option>
	  に置き換えてください。
	  &lt;N&gt; には再生するタイトル番号を、
	  <replaceable>DEVICE</replaceable>
	  は <acronym>DVD</acronym> のデバイスノードを指定します。
	  たとえば、<filename>/dev/dvd</filename>
	  から 2 番目のタイトルを再生するには以下のようにします。</para>

	<screen>&prompt.root; <userinput>mplayer -vo xv dvd://3 -dvd-device /dev/dvd</userinput></screen>

	<note>
	  <para>デフォルトの <acronym>DVD</acronym> デバイスは、
	    <application>MPlayer</application> port の構築時に
	    <varname>WITH_DVD_DEVICE=/path/to/desired/device</varname>
	    を追加することでで定義できます。
	    デフォルトでは、デバイスは
	    <filename>/dev/cd0</filename> です。
	    詳細はこの port の
	    <filename>Makefile.options</filename> をご覧ください。</para>
	</note>

	<para>停止、休止、
	  再生などをするにはキーバインディングを使ってください。
	  キーバインディングの一覧を見るには、<command>mplayer -h</command>
	  を実行するか、もしくは、mplayer(1) を読んでください。</para>

	<para>再生に関する追加のオプションがあります。
	  全画面モードにする <option>-fs -zoom</option> オプションと、
	  性能を向上させる <option>-framedrop</option> オプションです。</para>

	<para>よく使用するオプションについては、各ユーザの
	  <filename>.mplayer/config</filename>
	  に以下のように追加してください。</para>

	<programlisting>vo=xv
fs=yes
zoom=yes</programlisting>

	<para><command>mplayer</command> を使って、
	  <acronym>DVD</acronym> タイトルを
	  <filename>.vob</filename> に抽出できます。
	  <acronym>DVD</acronym> から
	  2 番目のタイトルをダンプするには次のようにします。</para>

	<screen>&prompt.root; <userinput>mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd</userinput></screen>

	<para>出力された <filename>out.vob</filename> ファイルは
	  MPEG 形式です。</para>

	<para>&unix; ビデオについて、
	  高レベルのノウハウを得たいと考えている方は <link
	    xlink:href="http://www.mplayerhq.hu/DOCS/">mplayerhq.hu/DOCS</link>
	  をご覧ください。技術的な情報があります。
	  このドキュメントは、
	  バグを報告する前に、読むべきものです。</para>

	<indexterm>
	  <primary>mencoder</primary>
	</indexterm>

	<para><command>mencoder</command> を使う前に、<link
	    xlink:href="http://www.mplayerhq.hu/DOCS/HTML/en/mencoder.html">mplayerhq.hu/DOCS/HTML/en/mencoder.html</link>
	  を読んでオプションに慣れておくのはよい考えです。
	  品質向上、低ビットレート、形式変換をする方法が無数にあります。
	  これらの要素の調節具合で、性能が良かったり悪かったりするなど、
	  結果に違いが出るかもしれません。
	  コマンドラインオプションを不適切に組合せると、
	  <command>mplayer</command>
	  でさえ再生できない出力ファイルを作成してしまいます。</para>

	<para> はじめは単純なファイルのコピーです。</para>

	<screen>&prompt.user; <userinput>mencoder <replaceable>input.avi</replaceable> -oac copy -ovc copy -o <replaceable>output.avi</replaceable></userinput></screen>

	<para>したがって、単にファイルを抽出したいときには、
	  <command>mplayer</command> に <option>-dumpfile</option>
	  をつけます。</para>

	<para><filename><replaceable>input.avi</replaceable></filename>
	  を音声に MPEG3 エンコードを使用して
	  MPEG4 コーデックに変換するには、まず最初に
	  <package>audio/lame</package>
	  port をインストールしてください。
	  ライセンスの制限により、package は利用できません。
	  インストールしたら、以下のように入力してください。</para>

	<screen>&prompt.user; <userinput>mencoder <replaceable>input.avi</replaceable> -oac mp3lame -lameopts br=192 \
	 -ovc lavc -lavcopts vcodec=mpeg4:vhq -o <replaceable>output.avi</replaceable></userinput></screen>

	<para>これは <command>mplayer</command> や
	  <command>xine</command>
	  といったアプリケーションで再生可能な出力ファイルを作成します。</para>

	<para><acronym>DVD</acronym> タイトルを直接再エンコードするためには、
	  上記のコマンドラインの
	  <filename><replaceable>input.avi</replaceable></filename> を
	  <option>dvd://1 -dvd-device /dev/dvd</option> に置き換えて、
	  <systemitem class="username">root</systemitem> 権限で実行します。
	  期待する結果を得るには何度か繰り返すことになるので、
	  かわりにタイトルをファイルにダンプして、
	  ファイルに対して作業することをおすすめします。</para>
      </sect3>

      <sect3 xml:id="video-xine">
	<title><application>xine</application> ビデオプレイヤ</title>

	<para><application>xine</application> は、
	  再利用可能な基本ライブラリと、
	  プラグインで拡張できる実行可能なモジュールを提供するビデオプレイヤです。
	  <package>multimedia/xine</package> package
	  または port からインストールできます。</para>

	<para>実用上、<application>xine</application>
	  を使用するには高速なビデオカードとともに高速な CPU があるか、
	  またはビデオカードが XVideo 拡張に対応している必要があります。
	  XVideo インタフェースとともに <application>xine</application>
	  ビデオプレイヤを使うのが最良です。</para>

	<para>デフォルトでは、<application>xine</application> プレイヤは
	  GUI 付きで起動するでしょう。
	  メニューを使用して特定のファイルを開くことができます。</para>

	<para><application>xine</application> は、
	  再生するファイル名を指定することで、
	  コマンドラインから実行することもできます。</para>

	<screen>&prompt.user; <userinput>xine -g -p <replaceable>mymovie.avi</replaceable></userinput></screen>

	<para><link
	    xlink:href="http://www.xine-project.org/faq">
	    xine-project.org/faq</link>
	  には、より多くの情報やトラブルシューティングがあります。</para>
      </sect3>

      <sect3 xml:id="video-ports-transcode">
	<title><application>Transcode</application> ユーティリティ</title>

	<para><application>Transcode</application> は、
	  ビデオおよびオーディオファイルを再エンコードするためのツール一式です。
	  <application>Transcode</application> を使えば、stdin/stdout
	  ストリームインタフェースとともにコマンドラインツールを用いることで、
	  ビデオファイルの統合や、壊れたファイルの修復ができます。</para>

	<para>&os; では、<application>Transcode</application> は、
	  <package>multimedia/transcode</package> package
	  もしくは port からインストールできます。
	  多くのユーザは port からコンパイルすることを好みます。
	  port では、
	  コンパイルで有効にするサポートやコーデックを指定するコンパイルオプションのメニューを利用できるためです。
	  オプションを選択しないと、<application>Transcode</application>
	  は、その形式をエンコード出来ないでしょう。
	  矢印キーとスペースバーを使って、
	  必要とするフォーマットを選択してください。
	  選択が終わったら、
	  <keycap>Enter</keycap> を押して、port
	  のコンパイルとインストールを続けてください。</para>

	<para>この例では、DivX ファイルを
	  PAL MPEG-1 (PAL VCD) に変換する使用例を示します。</para>

	<screen>&prompt.user; <userinput>transcode -i <replaceable>input.avi</replaceable> -V --export_prof vcd-pal -o output_vcd</userinput>
&prompt.user; <userinput>mplex -f 1 -o <replaceable>output_vcd.mpg output_vcd.m1v output_vcd.mpa</replaceable></userinput></screen>

	<para>作成された <acronym>MPEG</acronym> ファイル、
	  <filename><replaceable>output_vcd.mpg</replaceable></filename> は、
	  <application>MPlayer</application> を使って再生できます。
	  また、<package>multimedia/vcdimager</package>
	  および <package>sysutils/cdrdao</package>
	  といったユーティリティを使って、
	  ファイルを <acronym>CD</acronym>
	  メディアに書き込むことでビデオ
	  <acronym>CD</acronym> も作成できます。</para>

	<para><command>transcode</command> のマニュアルページに加え、<link
	    xlink:href="http://www.transcoding.org/cgi-bin/transcode">transcoding.org/cgi-bin/transcode</link>
	  から、更なる情報や使用例を得てください。</para>
      </sect3>
    </sect2>
  </sect1>

  <sect1 xml:id="tvcard">
    <info>
      <title>TV カードの設定</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Josef</firstname>
	    <surname>El-Rayes</surname>
	  </personname>
	  <contrib>原作: </contrib>
	</author>
      </authorgroup>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Marc</firstname>
	    <surname>Fonvieille</surname>
	  </personname>
	  <contrib>改訂: </contrib> <!-- 2004 年 1 月 -->
	</author>
      </authorgroup>
    </info>

    <indexterm>
      <primary>TV カード</primary>
    </indexterm>

    <para>TV カードを使用することで、
      TV 放送をコンピュータで見ることができます。
      これらの多くのカードは <acronym>RCA</acronym>
      または S-video 入力端子を備えており、
      <acronym>FM</acronym> ラジオチューナを装備したカードもあります。</para>

    <para>&os; は、Brooktree Bt848/849/878/879
      をビデオキャプチャチップに採用した PCI TV カードに &man.bktr.4;
      ドライバで対応しています。
      このドライバは、ほとんどの Pinnacle PCTV ビデオカードに対応しています。
      TV カードを購入する前に、対応しているチューナの一覧について、
      &man.bktr.4; を参照してください。</para>

    <sect2>
      <title>ドライバを読み込む</title>

      <para>カードを使用するには、&man.bktr.4;
	ドライバを読み込む必要があります。
	起動時に自動的に読み込むためには、
	<filename>/boot/loader.conf</filename>
	に以下の行を追加してください。</para>

      <programlisting>bktr_load="YES"</programlisting>

      <para>あるいは、カスタムカーネルに TV
	ビデオカードへのサポートを静的に組み込むこともできます。
	この場合には、
	次の行をカーネルコンフィギュレーションファイルに追加してください。</para>

      <programlisting>device	 bktr
device	iicbus
device	iicbb
device	smbus</programlisting>

      <para>カードコンポーネントは I2C バス経由で連結されているため、
	&man.bktr.4; ドライバに加えてこれらのデバイスが必要になります。
	編集したら新しいカーネルを構築し、インストールします。</para>

      <para>チューナが適切に検出されたかどうかを確認するため、
	システムを再起動してください。
	起動時のメッセージに TV カードが以下のように認識されるでしょう。</para>

      <programlisting>bktr0: &lt;BrookTree 848A&gt; mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: &lt;I2C bit-banging driver&gt; on bti2c0
iicbus0: &lt;Philips I2C bus&gt; on iicbb0 master-only
iicbus1: &lt;Philips I2C bus&gt; on iicbb0 master-only
smbus0: &lt;System Management Bus&gt; on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>

      <para>これらのメッセージはハードウェアに応じて異なります。
	必要であれば、&man.sysctl.8; や、
	カーネルコンフィギュレーションファイルオプションで、
	検知されたいくつかのパラメータを変更できます。
	たとえば、チューナを Philips SECAM
	チューナとして検知されるようにするには、
	カーネルコンフィギュレーションファイルに以下の行を追加します。</para>

      <programlisting>options OVERRIDE_TUNER=6</programlisting>

      <para>または、直接 &man.sysctl.8; を使用して変更します。</para>

      <screen>&prompt.root; <userinput>sysctl hw.bt848.tuner=6</userinput></screen>

      <para>利用可能な &man.sysctl.8;
	パラメータおよびカーネルオプションについては &man.bktr.4;
	を参照してください。</para>
    </sect2>

    <sect2>
      <title>便利なアプリケーション</title>

      <para>TV カードを使用するためには、
	以下のアプリケーションの一つをインストールする必要があります。</para>

      <itemizedlist>
	<listitem>
	  <para><package>multimedia/fxtv</package>
	    はウィンドウ内に TV 映像を映します。
	    画像/音声/ビデオを取り込むこともできます。</para>
	</listitem>
	<listitem>
	  <para><package>multimedia/xawtv</package>
	    も同様の機能を持った TV アプリケーションです。</para>
	</listitem>
	<listitem>
	  <para><package>audio/xmradio</package>
	    は TV カードに搭載された FM
	    ラジオチューナを使用するためのアプリケーションです。</para>
	</listitem>
      </itemizedlist>

      <para>他にも多くのアプリケーションが &os; の
	Ports Collection に収録されています。</para>
    </sect2>

    <sect2>
      <title>トラブルシューティング</title>

      <para>TV カードに関する問題が起きたときには、&man.bktr.4;
	が本当にビデオキャプチャチップおよびチューナに対応しているか、
	オプションが正しく設定されているかどうかをまず確認してください。
	TV カードに関するサポートや質問に関しては、
	&a.multimedia.name;
	メーリングリストを参照してください。</para>
    </sect2>
  </sect1>

  <sect1 xml:id="mythtv">
    <title>MythTV</title>

    <para>MythTV は、広く使われているオープンソースの Personal Video Recorder
      (<acronym>PVR</acronym>) アプリケーションです。
      この節では、&os; に MythTV をインストールし、
      設定する方法について説明します。
      MythTV の使用法に関するより詳細な情報については、<link
	xlink:href="http://www.mythtv.org/wiki/">mythtv.org/wiki</link>
      をご覧ください。</para>

    <para>MythTV は、フロントエンドおよびバックエンドを必要とします。
      これらは、同じシステム上でも、
      異なるコンピュータ上でも動かすことが可能です。</para>

    <para>フロントエンドについては、
      <package>multimedia/mythtv-frontend</package> package または port
      から &os; にインストールできます。
      <xref linkend="x11"/> で説明されているように、
      <application>&xorg;</application>
      をインストールして設定する必要もあります。
      このシステムは X-Video Motion Compensation
      (<acronym>XvMC</acronym>) に対応し、
      オプションとして、Linux Infrared Remote Control
      (<acronym>LIRC</acronym>)-互換のリモートに対応したビデオカードを持っていることが理想的です。</para>

    <para>&os; にバックエンドとフロントエンドの両方をインストールするには、
      <package>multimedia/mythtv</package> package または port
      を使ってください。
      &mysql; データベースサーバも必要となりますが、
      自動的に依存でインストールされます。オプションで、
      チューナカードと録音したデータを保存するためのストレージが必要です。</para>

    <sect2>
      <title>ハードウェア</title>

      <para>MythTV は、
	エンコーダやチューナなどのビデオ入力デバイスへのアクセスに
	Video for Linux (<acronym>V4L</acronym>) を用います。
	&os; では、<acronym>USB</acronym> DVB-S/C/T
	カードにおいて最もよく動作します。
	なぜならば、このカードは、
	<acronym>V4L</acronym> ユーザランドアプリケーションを提供する
	<package>multimedia/webcamd</package> package または port
	により良くサポートされているためです。
	<application>webcamd</application> により対応している
	Digital Video Broadcasting (<acronym>DVB</acronym>)
	カードは、MythTV で動作するはずです。
	動作することが知られているカードの一覧が
	<link
	  xlink:href="http://wiki.freebsd.org/WebcamCompat">wiki.freebsd.org/WebcamCompat</link>
	にあります。
	Hauppauge カードのドライバもまた、
	<package>multimedia/pvr250</package>
	および <package>multimedia/pvrxxx</package>
	port として利用可能ですが、
	標準的ではないドライバのインタフェースを提供しており、
	0.23 より後の MythTV では動作しません。
	ライセンスの制限により、package は利用できません。
	そのため、これらの ports はコンパイルをしなければなりません。</para>

      <para><link
	  xlink:href="http://wiki.freebsd.org/HTPC">wiki.freebsd.org/HTPC</link>
	ページは、<acronym>DVB</acronym>
	ドライバのすべての一覧を提供しています。</para>
    </sect2>

    <sect2>
      <title>MythTV バックエンドの設定</title>

      <para>バイナリ package を使って MythTV をインストールしてください。</para>
      <screen>&prompt.root; <userinput>pkg install mythtv</userinput></screen>

      <para>あるいは、Ports Collection からインストールするには、
	以下のように実行してください。</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/multimedia/mythtv</userinput>
&prompt.root; <userinput>make install</userinput></screen>

      <para>インストールが終わったら、
	MythTV データベースを設定してください。</para>

      <screen>&prompt.root; <userinput>mysql -uroot -p &lt; /usr/local/share/mythtv/database/mc.sql</userinput></screen>

      <para>その後、バックエンドを設定してください。</para>

      <screen>&prompt.root; <userinput>mythtv-setup</userinput></screen>

      <para>最後にバックエンドを起動してください。</para>

      <screen>&prompt.root; <userinput>sysrc mythbackend_enable=yes</userinput>
&prompt.root; <userinput>service mythbackend start</userinput></screen>
    </sect2>
  </sect1>

  <sect1 xml:id="scanners">
    <info>
      <title>画像スキャナ</title>

      <authorgroup>
	<author>
	  <personname>
	    <firstname>Marc</firstname>
	    <surname>Fonvieille</surname>
	  </personname>
	  <contrib>寄稿: </contrib> <!-- in August 2004-->
	</author>
      </authorgroup>
    </info>

    <indexterm>
      <primary>画像スキャナ</primary>
    </indexterm>

    <para>&os; では、画像スキャナに対するアクセスは
      <application>SANE</application> (Scanner Access Now Easy)
      によって実現されており、
      &os; の Ports Collection で提供されています。
      <application>SANE</application>
      はスキャナのハードウェアにアクセスするために
      &os; デバイスドライバを使用します。</para>

    <para>&os; は
      <acronym>SCSI</acronym> 接続および <acronym>USB</acronym>
      接続のスキャナのどちらにも対応しています。
      スキャナのインタフェースに依存して、異なるドライバが必要となります。
      設定を始める前に、
      <application>SANE</application>
      がスキャナに対応していることを確認してください。
      対応しているスキャナに関してのより詳細な情報については、<link
	xlink:href="http://www.sane-project.org/sane-supported-devices.html">
      http://www.sane-project.org/sane-supported-devices.html</link>
      をご覧ください。</para>

    <para>この節では、&os;
      がどのようにしてスキャナを認識するかについて説明します。
      その後、&os; システム上で <application>SANE</application>
      を設定して使用する方法の概要について説明します。</para>

    <sect2 xml:id="scanners-kernel-usb">
      <title>スキャナの確認</title>

      <para><filename>GENERIC</filename> カーネルには <acronym>USB</acronym>
	スキャナに対応するためのデバイスドライバが搭載されています。
	カスタムカーネルを使用する際には、
	以下の行がカーネルコンフィグレーションファイルにあることを確認してください。</para>

      <programlisting>device usb
device uhci
device ohci
device ehci</programlisting>

      <para><acronym>USB</acronym> スキャナが認識されたかを確認するには、
	スキャナを接続して、<command>dmesg</command> を利用し、
	システムメッセージバッファで、
	スキャナが認識されているかどうかを確認してください。
	認識されていたら、以下のようなメッセージが表示されます。</para>

      <screen>ugen0.2: &lt;EPSON&gt; at usbus0</screen>

      <para>この例では、&epson.perfection;&nbsp;1650
	<acronym>USB</acronym> スキャナが
	<filename>/dev/ugen0.2</filename>
	上で認識されています。</para>

      <para>スキャナのインタフェースが <acronym>SCSI</acronym> であれば、
	どの <acronym>SCSI</acronym>
	コントローラボードを使用するかを知ることが重要です。
	使用する <acronym>SCSI</acronym> チップセットによって、
	カスタムカーネルコンフィグレーションファイルを調整する必要があります。
	<filename>GENERIC</filename> カーネルは、
	一般に使用される <acronym>SCSI</acronym>
	コントローラのほとんどに対応しています。
	<filename>/usr/src/sys/conf/NOTES</filename> ファイルを読んで、
	適切な行をカーネルコンフィグレーションファイルに追加してください。
	また、<acronym>SCSI</acronym> アダプタドライバに加えて、
	以下の行をカスタムカーネルコンフィグレーションファイルに記述する必要があります。</para>

      <programlisting>device scbus
device pass</programlisting>

      <para>デバイスがメッセージバッファに出力されていることを確認してください。</para>

      <screen>pass2 at aic0 bus 0 target 2 lun 0
pass2: &lt;AGFA SNAPSCAN 600 1.10&gt; Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfers</screen>

      <para>システムを起動する際にスキャナの電源を入れてなければ、
	<command>camcontrol</command> を使用して
	<acronym>SCSI</acronym> バスをスキャンし、
	以下のように手動でデバイスを検出させることもできます。</para>

      <screen>&prompt.root; <userinput>camcontrol rescan all</userinput>
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successful</screen>

      <para>すると、スキャナは <acronym>SCSI</acronym>
	デバイスの一覧に現れるでしょう。</para>

      <screen>&prompt.root; <userinput>camcontrol devlist</userinput>
&lt;IBM DDRS-34560 S97B&gt;              at scbus0 target 5 lun 0 (pass0,da0)
&lt;IBM DDRS-34560 S97B&gt;              at scbus0 target 6 lun 0 (pass1,da1)
&lt;AGFA SNAPSCAN 600 1.10&gt;           at scbus1 target 2 lun 0 (pass3)
&lt;PHILIPS CDD3610 CD-R/RW 1.00&gt;     at scbus2 target 0 lun 0 (pass2,cd0)</screen>

      <para>&os; における <acronym>SCSI</acronym> デバイスについての詳細は、
	&man.scsi.4; および &man.camcontrol.8; をご覧ください。</para>
    </sect2>

    <sect2>
      <title><application>SANE</application> の設定</title>

      <para><application>SANE</application> システムは、
	二つの部分、すなわちバックエンド
	(<package>graphics/sane-backends</package>)
	とフロントエンド
	(<package>graphics/sane-frontends</package>
	もしくは、<package>graphics/xsane</package>)
	に分割されています。
	バックエンドはスキャナに対するアクセスを提供します。
	どのバックエンドが画像スキャナに対応しているかについては、<link
	  xlink:href="http://www.sane-project.org/sane-supported-devices.html">http://www.sane-project.org/sane-supported-devices.html</link>
	を参照してください。
	フロントエンドはグラフィカルなスキャニングインタフェースを提供します。
	<package>graphics/sane-frontends</package> は、
	<application>xscanimage</application> をインストールし、一方、
	<package>graphics/xsane</package> は、
	<application>xsane</application> をインストールします。</para>

      <para>バイナリ package から、分割された二つの両方をインストールするには、
	以下のように実行してください。</para>

      <screen>&prompt.root; <userinput>pkg install xsane sane-frontends</userinput></screen>

      <para>あるいは、Ports Collection からインストールするには、
	以下のように実行してください。</para>

      <screen>&prompt.root; <userinput>cd /usr/ports/graphics/sane-frontends</userinput>
&prompt.root; <userinput>make install clean</userinput>
&prompt.root; <userinput>cd /usr/ports/graphics/xsane</userinput>
&prompt.root; <userinput>make install clean</userinput></screen>

      <para><package>graphics/sane-backends</package>
	port または package をインストールしたら、
	<command>sane-find-scanner</command> コマンドを使用して、
	<application>SANE</application>
	システムで検出されているスキャナを確認してください。</para>

      <screen>&prompt.root; <userinput>sane-find-scanner -q</userinput>
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3</screen>

      <para>この出力から、
	スキャナインタフェースの種類と
	システムに接続されているスキャナが使用するデバイスノードがわかります。
	ベンダ名や製品のモデル名は表示されないかも知れません。</para>

      <note>
	<para>いくつかの <acronym>USB</acronym>
	  スキャナではファームウェアを読み込む必要がある場合があります。
	  詳細については、sane-find-scanner(1) および
	  sane(7) を参照してください。</para>
      </note>

      <para>次に、スキャナがフロントエンドで認識されるか調べてください。
	<application>SANE</application> のバックエンドには
	<command>scanimage</command> が付属します。
	このコマンドを使用すると、
	デバイスの一覧を表示したり画像を取得することができます。
	スキャナデバイスの一覧を表示するには、
	<option>-L</option> オプションを使ってください。
	以下の最初の例は、<acronym>SCSI</acronym> スキャナ用のもので、
	次の例は、<acronym>USB</acronym> スキャナ用のものです。</para>

      <screen>&prompt.root; <userinput>scanimage -L</userinput>
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
&prompt.root; <userinput>scanimage -L</userinput>
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner</screen>

      <para>2 番目の出力の中で、
	<literal>'epson2:libusb:/dev/usb:/dev/ugen0.2'</literal>
	がスキャナが使用するバックエンド名
	(<literal>epson2</literal>) および
	<literal>/dev/ugen0.2</literal> は、デバイスノードです。</para>

      <para><command>scanimage</command> がスキャナの認識に失敗した場合には、
	以下のようなメッセージが表示されます。</para>

      <screen>&prompt.root; <userinput>scanimage -L</userinput>

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).</screen>

      <para>このような場合には、<filename>/usr/local/etc/sane.d/</filename>
	にあるバックエンドの設定ファイルを編集して、
	使用するスキャナデバイスを設定してください。
	例えば、認識されなかったスキャナのモデルが、
	&epson.perfection;&nbsp;1650 で、<literal>epson2</literal>
	バックエンドを使っているのであれば、
	<filename>/usr/local/etc/sane.d/epson2.conf</filename>
	を編集してください。
	編集作業を行う際には、
	使用するインタフェースとデバイスノードを指定する行を追加します。
	この例では、以下の行を追加します。</para>

      <programlisting>usb /dev/ugen0.2</programlisting>

      <para>編集を保存し、
	適切なバックエンド名とデバイスノードでスキャナが認識されたかどうかを確認してください。</para>

      <screen>&prompt.root; <userinput>scanimage -L</userinput>
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner</screen>

      <para><command>scanimage -L</command>
	を実行してスキャナが認識されたことがわかれば、設定は終了です。
	スキャナを使用する準備ができました。</para>

      <para><command>scanimage</command>
	を使用してコマンドラインから画像を取得することができますが、
	GUI を使用して画像を取得できるとより望ましいでしょう。
	<package>graphics/sane-frontends</package>
	package および port は、シンプルですが、
	効率的なグラフィカルインタフェース
	<application>xscanimage</application>
	をインストールします。</para>

      <para>一方、<package>graphics/xsane</package>
	package または port からインストールされる
	<application>xsane</application> は、
	広く使われているもう一つのグラフィカルなスキャニングフロントエンドです。
	<application>Xsane</application> には、さまざまなスキャニングモード、
	色補正、バッチスキャンなど先進的な機能があります。
	これらのアプリケーションの両方とも <application>GIMP</application>
	のプラグインとして使用することができます。</para>
    </sect2>

    <sect2>
      <title>スキャナの許可属性</title>

      <para>スキャナにアクセスするには、
	ユーザはスキャナが使用するデバイスノードへの読み込み権限と書き込み権限が必要です。
	今回の例では、<acronym>USB</acronym> スキャナは
	<filename>/dev/ugen0.2</filename> デバイスノードを使用しています。
	このデバイスノードは、
	<filename>/dev/usb/0.2.0</filename> へのシンボリックリンクです
	シンボリックリンクとデバイスノードは、
	それぞれ <systemitem class="groupname">wheel</systemitem> および
	<systemitem class="groupname">operator</systemitem>
	グループが所有しています。
	ユーザをこれらのグループに加えると、
	スキャナを使用できるようになりますが、
	ユーザを <systemitem class="groupname">wheel</systemitem>
	に追加することは、セキュリティの観点からお勧めできません。
	良い方法は、
	スキャナデバイスにアクセスできるグループを作成することです。</para>

      <para>この例では、<systemitem
	  class="groupname"><replaceable>usb</replaceable></systemitem>
	という名前のグループを作成します。</para>

      <screen>&prompt.root; <userinput>pw groupadd usb</userinput></screen>

      <para>その後、シンボリックリンク <filename>/dev/ugen0.2</filename>
	および、<filename>/dev/usb/0.2.0</filename> デバイスノードに対して、
	<systemitem class="groupname">usb</systemitem>
	グループが利用できるように書き込みの許可属性
	<literal>0660</literal> または <literal>0664</literal>
	を設定してください。
	<filename>/etc/devfs.rules</filename>
	に次の行を追加すれば設定できます。</para>

      <programlisting>[system=5]
add path ugen0.2 mode 0660 group usb
add path usb/0.2.0 mode 0666 group usb</programlisting>

      <para>最後に、スキャナを利用するユーザを <systemitem
	  class="groupname"><replaceable>usb</replaceable></systemitem>
	グループに追加してスキャナを利用できるようにしてください。</para>

      <screen>&prompt.root; <userinput>pw groupmod usb -m <replaceable>joe</replaceable></userinput></screen>

      <para>詳細については、&man.pw.8; をご覧ください。</para>
    </sect2>
  </sect1>
</chapter>