White space fix only. Translators can ignore.

This commit is contained in:
Dru Lavigne 2013-10-24 01:28:39 +00:00
parent 284cef26f2
commit ae58ead198
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43037

View file

@ -32,9 +32,10 @@
recorded audio, adding sound effects, and controlling attached recorded audio, adding sound effects, and controlling attached
MIDI devices.</para> MIDI devices.</para>
<para>&os; also supports the playback of video files and <acronym>DVD</acronym>s. <para>&os; also supports the playback of video files and
The &os; Ports Collection contains applications to encode, <acronym>DVD</acronym>s. The &os; Ports Collection contains
convert, and playback various video media.</para> applications to encode, convert, and playback various video
media.</para>
<para>This chapter describes how to configure sound cards, video <para>This chapter describes how to configure sound cards, video
playback, TV tuner cards, and scanners on &os;. It also playback, TV tuner cards, and scanners on &os;. It also
@ -61,12 +62,13 @@
</listitem> </listitem>
<listitem> <listitem>
<para>Play <acronym>DVD</acronym>s, <filename>.mpg</filename>, and <para>Play <acronym>DVD</acronym>s, <filename>.mpg</filename>,
<filename>.avi</filename> files.</para> and <filename>.avi</filename> files.</para>
</listitem> </listitem>
<listitem> <listitem>
<para>Rip CD and <acronym>DVD</acronym> content into files.</para> <para>Rip CD and <acronym>DVD</acronym> content into
files.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -87,7 +89,7 @@
<itemizedlist> <itemizedlist>
<listitem><para>Know how to install applications as described in <listitem><para>Know how to install applications as described in
<xref linkend="ports"/>.</para></listitem> <xref linkend="ports"/>.</para></listitem>
</itemizedlist> </itemizedlist>
</sect1> </sect1>
<sect1 id="sound-setup"> <sect1 id="sound-setup">
@ -112,25 +114,25 @@
<title>Setting Up the Sound Card</title> <title>Setting Up the Sound Card</title>
<indexterm><primary>PCI</primary></indexterm> <indexterm><primary>PCI</primary></indexterm>
<indexterm><primary>sound cards</primary></indexterm> <indexterm><primary>sound cards</primary></indexterm>
<para>Before beginning the configuration, determine the model of <para>Before beginning the configuration, determine the model of
the sound card and the chip it uses. &os; supports a wide the sound card and the chip it uses. &os; supports a wide
variety of sound cards. Check the supported audio devices variety of sound cards. Check the supported audio devices
list of the <ulink url="&rel.current.hardware;">Hardware list of the <ulink url="&rel.current.hardware;">Hardware
Notes</ulink> to see if the card is supported and which &os; Notes</ulink> to see if the card is supported and which &os;
driver it uses.</para> driver it uses.</para>
<indexterm> <indexterm>
<primary>kernel</primary> <primary>kernel</primary>
<secondary>configuration</secondary> <secondary>configuration</secondary>
</indexterm> </indexterm>
<para>In order to use the sound device, its device driver <para>In order to use the sound device, its device driver must be
must be loaded. loaded. The easiest way is to load a kernel module for the
The easiest way is to load a kernel module for the sound card sound card with &man.kldload.8;. This example loads the driver
with &man.kldload.8;. This example loads the driver for a for a built-in audio chipset based on the Intel
built-in audio chipset based on the Intel specification:</para> specification:</para>
<screen>&prompt.root; <userinput>kldload snd_hda</userinput></screen> <screen>&prompt.root; <userinput>kldload snd_hda</userinput></screen>
@ -157,23 +159,24 @@
after loading the <filename>snd_driver</filename> metadriver, after loading the <filename>snd_driver</filename> metadriver,
type <command>cat /dev/sndstat</command>.</para> type <command>cat /dev/sndstat</command>.</para>
<sect2> <sect2>
<title>Configuring a Custom Kernel with Sound Support</title> <title>Configuring a Custom Kernel with Sound Support</title>
<para>This section is for users who prefer to statically compile in support for the <para>This section is for users who prefer to statically compile
sound card in a custom kernel. For more information about recompiling a in support for the sound card in a custom kernel. For more
kernel, refer to <xref linkend="kernelconfig"/>.</para> information about recompiling a kernel, refer to <xref
linkend="kernelconfig"/>.</para>
<para>When using a custom kernel to provide sound support, make <para>When using a custom kernel to provide sound support, make
sure that the audio framework driver exists in the custom kernel sure that the audio framework driver exists in the custom
configuration file:</para> kernel configuration file:</para>
<programlisting>device sound</programlisting> <programlisting>device sound</programlisting>
<para>Next, add support for the sound card. To continue the example <para>Next, add support for the sound card. To continue the
of the built-in audio chipset based on the Intel specification from the example of the built-in audio chipset based on the Intel
previous section, use the following line in the custom kernel specification from the previous section, use the following
configuration file:</para> line in the custom kernel configuration file:</para>
<programlisting>device snd_hda</programlisting> <programlisting>device snd_hda</programlisting>
@ -215,69 +218,71 @@ hint.sbc.0.flags="0x15"</programlisting>
cases, the IRQ or other settings may need to be changed to cases, the IRQ or other settings may need to be changed to
match the card. Refer to &man.snd.sbc.4; for more information match the card. Refer to &man.snd.sbc.4; for more information
about this card.</para> about this card.</para>
</sect2> </sect2>
<sect2 id="sound-testing"> <sect2 id="sound-testing">
<title>Testing Sound</title> <title>Testing Sound</title>
<para>After loading <para>After loading the required module or rebooting into the
the required module or rebooting into the custom kernel, custom kernel, the sound card should be detected. To confirm,
the sound card should be detected. run <command>dmesg | grep pcm</command>. This example is
To confirm, run <command>dmesg | grep pcm</command>. This from a system with a built-in Conexant CX20590 chipset:</para>
example is from a system with a built-in Conexant CX20590 chipset:</para>
<screen>pcm0: &lt;NVIDIA (0x001c) (HDMI/DP 8ch)&gt; at nid 5 on hdaa0 <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 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> pcm2: &lt;Conexant CX20590 (Analog 2.0+HP/2.0)&gt; at nid 31,25 and 35,27 on hdaa1</screen>
<para>The status of the sound card may also be checked using this <para>The status of the sound card may also be checked using
command:</para> this command:</para>
<screen>&prompt.root; <userinput>cat /dev/sndstat</userinput> <screen>&prompt.root; <userinput>cat /dev/sndstat</userinput>
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64) FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices: Installed devices:
pcm0: &lt;NVIDIA (0x001c) (HDMI/DP 8ch)&gt; (play) pcm0: &lt;NVIDIA (0x001c) (HDMI/DP 8ch)&gt; (play)
pcm1: &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> pcm2: &lt;Conexant CX20590 (Analog 2.0+HP/2.0)&gt; (play/rec) default</screen>
<para>The output will vary depending upon the sound card. If no <para>The output will vary depending upon the sound card. If no
<devicename>pcm</devicename> devices are listed, double-check that the correct <devicename>pcm</devicename> devices are listed, double-check
device driver was loaded or compiled into the kernel. The that the correct device driver was loaded or compiled into the
next section lists some common problems and their solutions.</para> kernel. The next section lists some common problems and their
solutions.</para>
<para>If all goes well, the sound card should now work in os;. If <para>If all goes well, the sound card should now work in os;.
the <acronym>CD</acronym> or <acronym>DVD</acronym> drive is properly If the <acronym>CD</acronym> or <acronym>DVD</acronym> drive
connected to the sound card, one can insert an audio CD in the is properly connected to the sound card, one can insert an
drive and play it with &man.cdcontrol.1;:</para> audio CD in the drive and play it with
&man.cdcontrol.1;:</para>
<screen>&prompt.user; <userinput>cdcontrol -f /dev/acd0 play 1</userinput></screen> <screen>&prompt.user; <userinput>cdcontrol -f /dev/acd0 play 1</userinput></screen>
<warning> <warning>
<para>Audio CDs have specialized encodings which means that they should not be <para>Audio CDs have specialized encodings which means that
mounted using &man.mount.8;.</para> they should not be mounted using &man.mount.8;.</para>
</warning> </warning>
<para>Various applications, such as <filename
role="package">audio/workman</filename>, provide a friendlier
interface. The <filename role="package">audio/mpg123</filename>
port can be installed to listen to MP3 audio files.</para>
<para>Another quick way to test the card is to send data to <para>Various applications, such as <filename
<devicename>/dev/dsp</devicename>:</para> role="package">audio/workman</filename>, provide a
friendlier interface. The <filename
role="package">audio/mpg123</filename> port can be installed
to listen to MP3 audio files.</para>
<screen>&prompt.user; <userinput>cat <replaceable>filename</replaceable> &gt; /dev/dsp</userinput></screen> <para>Another quick way to test the card is to send data to
<devicename>/dev/dsp</devicename>:</para>
<para>where <screen>&prompt.user; <userinput>cat <replaceable>filename</replaceable> &gt; /dev/dsp</userinput></screen>
<filename><replaceable>filename</replaceable></filename> can
be any type of file. This command should produce some noise, confirming
that the sound card is working.</para>
<note> <para>where
<para>The <devicename>/dev/dsp*</devicename> device nodes will <filename><replaceable>filename</replaceable></filename> can
be created automatically as needed. When not in use, they be any type of file. This command should produce some noise,
do not exist and will not appear in the output of confirming that the sound card is working.</para>
&man.ls.1;.</para>
</note> <note>
<para>The <devicename>/dev/dsp*</devicename> device nodes will
be created automatically as needed. When not in use, they
do not exist and will not appear in the output of
&man.ls.1;.</para>
</note>
</sect2> </sect2>
<sect2 id="troubleshooting"> <sect2 id="troubleshooting">
@ -292,7 +297,8 @@ pcm2: &lt;Conexant CX20590 (Analog 2.0+HP/2.0)&gt; (play/rec) default</screen>
solutions:</para> solutions:</para>
<table frame="none" pgwide="1"> <table frame="none" pgwide="1">
<title>Common Error Messages</title> <title>Common Error Messages</title>
<tgroup cols="2"> <tgroup cols="2">
<thead> <thead>
<row> <row>
@ -327,8 +333,8 @@ pcm2: &lt;Conexant CX20590 (Analog 2.0+HP/2.0)&gt; (play/rec) default</screen>
<entry><errorname>xxx: can't open <entry><errorname>xxx: can't open
/dev/dsp!</errorname></entry> /dev/dsp!</errorname></entry>
<entry><para>Type <command>fstat | grep <entry><para>Type <command>fstat | grep
dsp</command> to check if another application is holding the dsp</command> to check if another application is
device open. Noteworthy troublemakers are holding the device open. Noteworthy troublemakers are
<application>esound</application> and <application>esound</application> and
<application>KDE</application>'s sound <application>KDE</application>'s sound
support.</para></entry> support.</para></entry>
@ -337,11 +343,10 @@ pcm2: &lt;Conexant CX20590 (Analog 2.0+HP/2.0)&gt; (play/rec) default</screen>
</tgroup> </tgroup>
</table> </table>
<para>Modern graphics cards often come <para>Modern graphics cards often come with their own sound
with their own sound driver for use with driver for use with <acronym>HDMI</acronym>. This sound
<acronym>HDMI</acronym>. This sound device is device is sometimes enumerated before the sound card meaning
sometimes enumerated before the sound card meaning that the sound that the sound card will not be used as the default playback
card will not be used as the default playback
device. To check if this is the case, run device. To check if this is the case, run
<application>dmesg</application> and look for <application>dmesg</application> and look for
<literal>pcm</literal>. The output looks something like <literal>pcm</literal>. The output looks something like
@ -365,11 +370,12 @@ 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 pcm7: &lt;HDA Realtek ALC889 PCM #3 Digital&gt; at cad 2 nid 1 on hdac1
...</programlisting> ...</programlisting>
<para>In this example, the graphics card (<literal>NVidia</literal>) has <para>In this example, the graphics card
been enumerated before the sound card (<literal>Realtek (<literal>NVidia</literal>) has been enumerated before the
ALC889</literal>). To use the sound card as the default sound card (<literal>Realtek ALC889</literal>). To use the
playback device, change <varname>hw.snd.default_unit</varname> sound card as the default playback device, change
to the unit that should be used for playback:</para> <varname>hw.snd.default_unit</varname> to the unit that should
be used for playback:</para>
<screen>&prompt.root; <userinput>sysctl hw.snd.default_unit=<replaceable>n</replaceable></userinput></screen> <screen>&prompt.root; <userinput>sysctl hw.snd.default_unit=<replaceable>n</replaceable></userinput></screen>
@ -401,25 +407,24 @@ pcm7: &lt;HDA Realtek ALC889 PCM #3 Digital&gt; at cad 2 nid 1 on hdac1
Sound Channels</quote> to multiplex the Sound Channels</quote> to multiplex the
sound card's playback by mixing sound in the kernel.</para> sound card's playback by mixing sound in the kernel.</para>
<para>Three <para>Three &man.sysctl.8; knobs are available for configuring
&man.sysctl.8; knobs are available for configuring virtual channels:</para> virtual channels:</para>
<screen>&prompt.root; <userinput>sysctl dev.pcm.0.play.vchans=4</userinput> <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 dev.pcm.0.rec.vchans=4</userinput>
&prompt.root; <userinput>sysctl hw.snd.maxautovchans=4</userinput></screen> &prompt.root; <userinput>sysctl hw.snd.maxautovchans=4</userinput></screen>
<para>This example allocates four virtual channels, which <para>This example allocates four virtual channels, which is a
is a practical number for everyday use. Both practical number for everyday use. Both
<varname>dev.pcm.0.play.vchans=4</varname> and <varname>dev.pcm.0.play.vchans=4</varname> and
<varname>dev.pcm.0.rec.vchans=4</varname> are configurable after a device has been <varname>dev.pcm.0.rec.vchans=4</varname> are configurable after
attached and represent the number of a device has been attached and represent the number of virtual
virtual channels <devicename>pcm0</devicename> has for playback channels <devicename>pcm0</devicename> has for playback and
and recording. Since the recording. Since the <devicename>pcm</devicename> module can be
<devicename>pcm</devicename> module can be loaded independently loaded independently of the hardware drivers,
of the hardware drivers, <varname>hw.snd.maxautovchans</varname> <varname>hw.snd.maxautovchans</varname> indicates how many
indicates how many virtual channels will be given to an audio device virtual channels will be given to an audio device when it is
when it is attached. Refer to &man.pcm.4; for more attached. Refer to &man.pcm.4; for more information.</para>
information.</para>
<note> <note>
<para>The number of virtual channels for a device cannot be <para>The number of virtual channels for a device cannot be
@ -451,10 +456,9 @@ pcm7: &lt;HDA Realtek ALC889 PCM #3 Digital&gt; at cad 2 nid 1 on hdac1
<para>The default values for the different mixer channels are <para>The default values for the different mixer channels are
hardcoded in the source code of the &man.pcm.4; driver. While hardcoded in the source code of the &man.pcm.4; driver. While
sound card mixer levels can be changed using &man.mixer.8; or sound card mixer levels can be changed using &man.mixer.8; or
third-party applications and daemons, this is not a permanent solution. third-party applications and daemons, this is not a permanent
To instead set default solution. To instead set default mixer values at the driver
mixer values at the driver level, level, define the appropriate values in
define the appropriate values in
<filename>/boot/device.hints</filename>, as seen in this <filename>/boot/device.hints</filename>, as seen in this
example:</para> example:</para>
@ -727,18 +731,19 @@ MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo</screen>
<title>Video Playback</title> <title>Video Playback</title>
<para>Before configuring video playback, determine the model <para>Before configuring video playback, determine the model and
and chipset of the video card. While chipset of the video card. While
<application>&xorg;</application> supports a wide variety of <application>&xorg;</application> supports a wide variety of
video cards, not all provide good playback performance. To obtain video cards, not all provide good playback performance. To
a list of extensions supported by the obtain a list of extensions supported by the
<application>&xorg;</application> server using the card, run <application>&xorg;</application> server using the card, run
<command>xdpyinfo</command> while <application>&xorg;</application> is <command>xdpyinfo</command> while
running.</para> <application>&xorg;</application> is running.</para>
<para>It is a good idea to have a short MPEG test file for <para>It is a good idea to have a short MPEG test file for
evaluating various players and options. Since some <acronym>DVD</acronym> evaluating various players and options. Since some
applications look for <acronym>DVD</acronym> media in <filename <acronym>DVD</acronym> applications look for
<acronym>DVD</acronym> media in <filename
class="directory">/dev/dvd</filename> by default, or have this class="directory">/dev/dvd</filename> by default, or have this
device name hardcoded in them, it might be useful to make a device name hardcoded in them, it might be useful to make a
symbolic links to the proper device:</para> symbolic links to the proper device:</para>
@ -746,14 +751,15 @@ MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo</screen>
<screen>&prompt.root; <userinput>ln -sf /dev/cd0 /dev/dvd</userinput></screen> <screen>&prompt.root; <userinput>ln -sf /dev/cd0 /dev/dvd</userinput></screen>
<para>Due to the nature of &man.devfs.5;, manually created links <para>Due to the nature of &man.devfs.5;, manually created links
will not persist after a system reboot. In order to recreate the will not persist after a system reboot. In order to recreate
symbolic link automatically when the system boots, add the the symbolic link automatically when the system boots, add the
following line to <filename>/etc/devfs.conf</filename>:</para> following line to <filename>/etc/devfs.conf</filename>:</para>
<programlisting>link cd0 dvd</programlisting> <programlisting>link cd0 dvd</programlisting>
<para><acronym>DVD</acronym> decryption invokes certain functions that <para><acronym>DVD</acronym> decryption invokes certain functions
require write permission to the <acronym>DVD</acronym> device.</para> that require write permission to the <acronym>DVD</acronym>
device.</para>
<para>To enhance the shared memory <para>To enhance the shared memory
<application>&xorg;</application> interface, it is <application>&xorg;</application> interface, it is
@ -785,35 +791,38 @@ kern.ipc.shmall=32768</programlisting>
<listitem> <listitem>
<para>XVideo: an extension to the <para>XVideo: an extension to the
<application>&xorg;</application> interface which <application>&xorg;</application> interface which
allows video to be directly displayed in drawable objects allows video to be directly displayed in drawable objects
through a special acceleration. This extension provides through a special acceleration. This extension provides
good quality playback even on low-end machines. The next section describes good quality playback even on low-end machines. The next
how to determine if this extension is running.</para> section describes how to determine if this extension is
running.</para>
</listitem> </listitem>
<listitem> <listitem>
<para><acronym>SDL</acronym>: the Simple Directmedia <para><acronym>SDL</acronym>: the Simple Directmedia Layer is
Layer is a porting layer for many operating systems, a porting layer for many operating systems, allowing
allowing cross-platform applications to be developed which make cross-platform applications to be developed which make
efficient use of sound and graphics. <acronym>SDL</acronym> provides a efficient use of sound and graphics. <acronym>SDL</acronym>
low-level abstraction to the hardware which can sometimes be provides a low-level abstraction to the hardware which can
more efficient than the <application>&xorg;</application> sometimes be more efficient than the
interface. On &os;, <acronym>SDL</acronym> can be installed using the <filename <application>&xorg;</application> interface. On &os;,
role="package">devel/sdl20</filename> package or port.</para> <acronym>SDL</acronym> can be installed using the <filename
role="package">devel/sdl20</filename> package or
port.</para>
</listitem> </listitem>
<listitem> <listitem>
<para><acronym>DGA</acronym>: the Direct Graphics <para><acronym>DGA</acronym>: the Direct Graphics Access is an
Access is an <application>&xorg;</application> extension which allows a
<application>&xorg;</application> extension which allows a program to bypass the <application>&xorg;</application>
program to bypass the <application>&xorg;</application> server server and directly alter the framebuffer. Because it
and directly alter the framebuffer. Because it relies on a low relies on a low level memory mapping, programs using it must
level memory mapping, programs using it must be run as be run as <username>root</username>. The
<username>root</username>. The <acronym>DGA</acronym> extension can be tested and <acronym>DGA</acronym> extension can be tested and
benchmarked using &man.dga.1;. When <command>dga</command> is benchmarked using &man.dga.1;. When <command>dga</command>
running, it changes the colors of the display whenever a key is is running, it changes the colors of the display whenever a
pressed. To quit, press <keycap>q</keycap>.</para> key is pressed. To quit, press <keycap>q</keycap>.</para>
</listitem> </listitem>
<listitem> <listitem>
@ -901,23 +910,22 @@ kern.ipc.shmall=32768</programlisting>
depth: 1 depth: 1
red, green, blue masks: 0x0, 0x0, 0x0</screen> red, green, blue masks: 0x0, 0x0, 0x0</screen>
<para>The formats listed, such as YUV2 and YUV12, are not present <para>The formats listed, such as YUV2 and YUV12, are not
with every implementation of XVideo and their absence may hinder present with every implementation of XVideo and their absence
some players.</para> may hinder some players.</para>
<para>If the result instead looks like:</para> <para>If the result instead looks like:</para>
<screen>X-Video Extension version 2.2 <screen>X-Video Extension version 2.2
screen #0 screen #0
no adaptors present</screen> no adaptors present</screen>
<para>XVideo is probably not supported for the card. This means <para>XVideo is probably not supported for the card. This means
that it will be more difficult for the display to meet the that it will be more difficult for the display to meet the
computational demands of rendering video, depending on the computational demands of rendering video, depending on the
video card and processor.</para> video card and processor.</para>
</sect3>
</sect3> </sect2>
</sect2>
<sect2 id="video-ports"> <sect2 id="video-ports">
<title>Ports and Packages Dealing with Video</title> <title>Ports and Packages Dealing with Video</title>
@ -930,162 +938,163 @@ no adaptors present</screen>
playback.</para> playback.</para>
<sect3 id="video-mplayer"> <sect3 id="video-mplayer">
<title><application>MPlayer</application> and <application>MEncoder</application></title> <title><application>MPlayer</application> and
<application>MEncoder</application></title>
<para><application>MPlayer</application> is a command-line video <para><application>MPlayer</application> is a command-line video
player with an optional graphical interface which aims to player with an optional graphical interface which aims to
provide speed and flexibility. Other provide speed and flexibility. Other graphical front-ends to
graphical front-ends to <application>MPlayer</application> are available from the &os; Ports <application>MPlayer</application> are available from the &os;
Collection.</para> Ports Collection.</para>
<indexterm><primary>MPlayer</primary></indexterm> <indexterm><primary>MPlayer</primary></indexterm>
<para><application>MPlayer</application> can be installed using <para><application>MPlayer</application> can be installed using
the <filename the <filename role="package">multimedia/mplayer</filename>
role="package">multimedia/mplayer</filename> package or port. Several package or port. Several compile options are available and a
compile options are available and a variety of hardware variety of hardware checks occur during the build process.
checks occur during the build process. For these reasons, For these reasons, some users prefer to build the port rather
some users prefer to build the port rather than install the than install the package.</para>
package.</para>
<para>When compiling the port, the menu options should be reviewed to determine the <para>When compiling the port, the menu options should be
type of support to compile into the port. If an option is reviewed to determine the type of support to compile into the
not selected, <application>MPlayer</application> will not be port. If an option is not selected,
able to display that type of video format. Use the arrow <application>MPlayer</application> will not be able to
keys and spacebar to select the required formats. When display that type of video format. Use the arrow keys and
finished, press <keycap>Enter</keycap> to continue the port spacebar to select the required formats. When finished,
compile and installation.</para> press <keycap>Enter</keycap> to continue the port compile
and installation.</para>
<para>By default, the package or port will build the <para>By default, the package or port will build the
<command>mplayer</command> command line utility and the <command>mplayer</command> command line utility and the
<command>gmplayer</command> graphical utility. To encode <command>gmplayer</command> graphical utility. To encode
videos, compile the <filename videos, compile the <filename
role="package">multimedia/mencoder</filename> port. Due role="package">multimedia/mencoder</filename> port. Due to
to licensing restrictions, a package is not available for licensing restrictions, a package is not available for
<application>MEncoder</application>.</para> <application>MEncoder</application>.</para>
<para>The first time <application>MPlayer</application> is <para>The first time <application>MPlayer</application> is run,
run, it will create <filename it will create <filename
class="directory">~/.mplayer</filename> in the user's class="directory">~/.mplayer</filename> in the user's home
home directory. This subdirectory contains default versions directory. This subdirectory contains default versions of
of the user-specific configuration files.</para> the user-specific configuration files.</para>
<para>This section describes only a few common uses. Refer <para>This section describes only a few common uses. Refer to
to mplayer(1) for a complete mplayer(1) for a complete description of its numerous
description of its numerous options.</para> options.</para>
<para>To play the file <para>To play the file
<filename><replaceable>testfile.avi</replaceable></filename>, <filename><replaceable>testfile.avi</replaceable></filename>,
specify the video interfaces with specify the video interfaces with <option>-vo</option>, as
<option>-vo</option>, as seen in the following examples:</para> seen in the following examples:</para>
<screen>&prompt.user; <userinput>mplayer -vo xv <replaceable>testfile.avi</replaceable></userinput></screen> <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 sdl <replaceable>testfile.avi</replaceable></userinput></screen>
<screen>&prompt.user; <userinput>mplayer -vo x11 <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 dga <replaceable>testfile.avi</replaceable></userinput></screen>
<screen>&prompt.root; <userinput>mplayer -vo 'sdl:dga' <replaceable>testfile.avi</replaceable></userinput></screen> <screen>&prompt.root; <userinput>mplayer -vo 'sdl:dga' <replaceable>testfile.avi</replaceable></userinput></screen>
<para>It is worth trying all of these options, as their <para>It is worth trying all of these options, as their
relative performance depends on many factors and will vary relative performance depends on many factors and will vary
significantly with hardware.</para> significantly with hardware.</para>
<para>To play a <acronym>DVD</acronym>, replace <para>To play a <acronym>DVD</acronym>, replace
<filename><replaceable>testfile.avi</replaceable></filename> <filename><replaceable>testfile.avi</replaceable></filename>
with <option>dvd://<replaceable>N</replaceable> -dvd-device with <option>dvd://<replaceable>N</replaceable> -dvd-device
<replaceable>DEVICE</replaceable></option>, where <replaceable>DEVICE</replaceable></option>, where
<replaceable>N</replaceable> is the title number to play <replaceable>N</replaceable> is the title number to play and
and <replaceable>DEVICE</replaceable> <replaceable>DEVICE</replaceable> is the device node for the
is the device node for the <acronym>DVD</acronym>. For example, to play <acronym>DVD</acronym>. For example, to play title 3 from
title 3 from <devicename>/dev/dvd</devicename>:</para> <devicename>/dev/dvd</devicename>:</para>
<screen>&prompt.root; <userinput>mplayer -vo xv dvd://3 -dvd-device /dev/dvd</userinput></screen> <screen>&prompt.root; <userinput>mplayer -vo xv dvd://3 -dvd-device /dev/dvd</userinput></screen>
<note> <note>
<para>The default <acronym>DVD</acronym> device can be defined during the build <para>The default <acronym>DVD</acronym> device can be defined
of the <application>MPlayer</application> port by during the build of the <application>MPlayer</application>
including the port by including the
<makevar>WITH_DVD_DEVICE=/path/to/desired/device</makevar> <makevar>WITH_DVD_DEVICE=/path/to/desired/device</makevar>
option. By default, the device is option. By default, the device is
<filename>/dev/cd0</filename>. More details can be found <filename>/dev/cd0</filename>. More details can be found in
in the port's the port's <filename>Makefile.options</filename>.</para>
<filename>Makefile.options</filename>.</para> </note>
</note>
<para>To stop, pause, advance, and so on, use a <para>To stop, pause, advance, and so on, use a keybinding. To
keybinding. To see the list of keybindings, run <command>mplayer see the list of keybindings, run <command>mplayer
-h</command> or read mplayer(1).</para> -h</command> or read mplayer(1).</para>
<para>Additional playback options include <para>Additional playback options include <option>-fs
<option>-fs -zoom</option>, which engages fullscreen mode, -zoom</option>, which engages fullscreen mode, and
and <option>-framedrop</option>, which helps <option>-framedrop</option>, which helps performance.</para>
performance.</para>
<para>Each user can add commonly used options to their <para>Each user can add commonly used options to their
<filename>~/.mplayer/config</filename> like so:</para> <filename>~/.mplayer/config</filename> like so:</para>
<programlisting>vo=xv <programlisting>vo=xv
fs=yes fs=yes
zoom=yes</programlisting> zoom=yes</programlisting>
<para><command>mplayer</command> can be used to rip a <acronym>DVD</acronym> <para><command>mplayer</command> can be used to rip a
title to a <filename>.vob</filename>. To dump the second <acronym>DVD</acronym> title to a <filename>.vob</filename>.
title from a <acronym>DVD</acronym>:</para> To dump the second title from a <acronym>DVD</acronym>:</para>
<screen>&prompt.root; <userinput>mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd</userinput></screen> <screen>&prompt.root; <userinput>mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd</userinput></screen>
<para>The output file, <filename>out.vob</filename>, will be <para>The output file, <filename>out.vob</filename>, will be in
in <acronym>MPEG</acronym> format.</para> <acronym>MPEG</acronym> format.</para>
<para>Anyone wishing to obtain a high level <para>Anyone wishing to obtain a high level of expertise with
of expertise with &unix; video should consult <ulink url="http://www.mplayerhq.hu/DOCS/">mplayerhq.hu/DOCS</ulink> as it is technically informative. &unix; video should consult <ulink
This documentation should be considered as required reading url="http://www.mplayerhq.hu/DOCS/">mplayerhq.hu/DOCS</ulink>
before submitting any bug reports.</para> as it is technically informative. This documentation should
be considered as required reading before submitting any bug
reports.</para>
<indexterm> <indexterm>
<primary>mencoder</primary> <primary>mencoder</primary>
</indexterm> </indexterm>
<para>Before using <command>mencoder</command>, it is a good <para>Before using <command>mencoder</command>, it is a good
idea to become familiar with the options described at idea to become familiar with the options described at
<ulink <ulink
url="http://www.mplayerhq.hu/DOCS/HTML/en/mencoder.html">mplayerhq.hu/DOCS/HTML/en/mencoder.html</ulink>. There are innumerable ways to url="http://www.mplayerhq.hu/DOCS/HTML/en/mencoder.html">mplayerhq.hu/DOCS/HTML/en/mencoder.html</ulink>.
improve quality, lower bitrate, and change formats, and some There are innumerable ways to improve quality, lower bitrate,
of these options may make the difference between good or bad and change formats, and some of these options may make the
performance. Improper combinations of command line options difference between good or bad performance. Improper
can yield output files that are unplayable even by combinations of command line options can yield output files
<command>mplayer</command>.</para> that are unplayable even by <command>mplayer</command>.</para>
<para>Here is an example of a simple copy:</para> <para>Here is an example of a simple copy:</para>
<screen>&prompt.user; <userinput>mencoder <replaceable>input.avi</replaceable> -oac copy -ovc copy -o <replaceable>output.avi</replaceable></userinput></screen> <screen>&prompt.user; <userinput>mencoder <replaceable>input.avi</replaceable> -oac copy -ovc copy -o <replaceable>output.avi</replaceable></userinput></screen>
<para>To rip to a file, use <option>-dumpfile</option> with <para>To rip to a file, use <option>-dumpfile</option> with
<command>mplayer</command>.</para> <command>mplayer</command>.</para>
<para>To convert <para>To convert
<filename><replaceable>input.avi</replaceable></filename> <filename><replaceable>input.avi</replaceable></filename> to
to the MPEG4 codec with MPEG3 audio encoding, first install the MPEG4 codec with MPEG3 audio encoding, first install the
the <filename role="package">audio/lame</filename> port. <filename role="package">audio/lame</filename> port. Due to
Due to licensing restrictions, a package is not available. licensing restrictions, a package is not available. Once
Once installed, type:</para> installed, type:</para>
<screen>&prompt.user; <userinput>mencoder <replaceable>input.avi</replaceable> -oac mp3lame -lameopts br=192 \ <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> -ovc lavc -lavcopts vcodec=mpeg4:vhq -o <replaceable>output.avi</replaceable></userinput></screen>
<para>This will produce output playable by applications such <para>This will produce output playable by applications such as
as <command>mplayer</command> and <command>mplayer</command> and <command>xine</command>.</para>
<command>xine</command>.</para>
<para><filename><replaceable>input.avi</replaceable></filename> <para><filename><replaceable>input.avi</replaceable></filename>
can be replaced with <option>dvd://1 -dvd-device can be replaced with <option>dvd://1 -dvd-device
/dev/dvd</option> and run as <username>root</username> /dev/dvd</option> and run as <username>root</username> to
to re-encode a <acronym>DVD</acronym> title directly. Since it may take a few re-encode a <acronym>DVD</acronym> title directly. Since it
tries to get the desired result, it is recommended to instead dump may take a few tries to get the desired result, it is
the title to a file and to work on the file.</para> recommended to instead dump the title to a file and to work on
the file.</para>
</sect3> </sect3>
<sect3 id="video-xine"> <sect3 id="video-xine">
@ -1129,8 +1138,8 @@ zoom=yes</programlisting>
with stdin/stdout stream with stdin/stdout stream
interfaces.</para> interfaces.</para>
<para>In &os;, <application>Transcode</application> can be installed <para>In &os;, <application>Transcode</application> can be
using the <filename installed using the <filename
role="package">multimedia/transcode</filename> package or role="package">multimedia/transcode</filename> package or
port. Many users prefer to compile the port as it provides a port. Many users prefer to compile the port as it provides a
menu of compile options for specifying the support and codecs menu of compile options for specifying the support and codecs
@ -1144,23 +1153,25 @@ zoom=yes</programlisting>
<para>This example demonstrates how to convert a DivX file into <para>This example demonstrates how to convert a DivX file into
a PAL MPEG-1 file (PAL VCD):</para> a PAL MPEG-1 file (PAL VCD):</para>
<screen>&prompt.user; <userinput>transcode -i <screen>&prompt.user; <userinput>transcode -i
<replaceable>input.avi</replaceable> -V --export_prof vcd-pal -o output_vcd</userinput> <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> &prompt.user; <userinput>mplex -f 1 -o <replaceable>output_vcd.mpg output_vcd.m1v output_vcd.mpa</replaceable></userinput></screen>
<para>The resulting <acronym>MPEG</acronym> file, <para>The resulting <acronym>MPEG</acronym> file,
<filename><replaceable>output_vcd.mpg</replaceable></filename>, <filename><replaceable>output_vcd.mpg</replaceable></filename>,
is ready to be played with <application>MPlayer</application>. is ready to be played with <application>MPlayer</application>.
The file can be burned on a <acronym>CD</acronym> media to create a video <acronym>CD</acronym> using a utility such as The file can be burned on a <acronym>CD</acronym> media to
<filename create a video <acronym>CD</acronym> using a utility such as
role="package">multimedia/vcdimager</filename> or <filename <filename
role="package">sysutils/cdrdao</filename>.</para> role="package">multimedia/vcdimager</filename> or <filename
role="package">sysutils/cdrdao</filename>.</para>
<para>In addition to the manual page for <para>In addition to the manual page for
<command>transcode</command>, refer to <ulink <command>transcode</command>, refer to <ulink
url="http://www.transcoding.org/cgi-bin/transcode">transcoding.org/cgi-bin/transcode</ulink> for further information and examples.</para> url="http://www.transcoding.org/cgi-bin/transcode">transcoding.org/cgi-bin/transcode</ulink>
</sect3> for further information and examples.</para>
</sect2> </sect3>
</sect2>
</sect1> </sect1>
<sect1 id="tvcard"> <sect1 id="tvcard">
@ -1189,16 +1200,16 @@ zoom=yes</programlisting>
<primary>TV cards</primary> <primary>TV cards</primary>
</indexterm> </indexterm>
<para>TV cards can be used to watch broadcast or cable TV on <para>TV cards can be used to watch broadcast or cable TV on a
a computer. Most cards accept composite video via an <acronym>RCA</acronym> or computer. Most cards accept composite video via an
S-video input and some cards include a <acronym>FM</acronym> radio tuner.</para> <acronym>RCA</acronym> or S-video input and some cards include a
<acronym>FM</acronym> radio tuner.</para>
<para>&os; provides support for PCI-based TV cards using a <para>&os; provides support for PCI-based TV cards using a
Brooktree Bt848/849/878/879 Brooktree Bt848/849/878/879 video capture chip with the
video capture chip with the &man.bktr.4; driver. This driver &man.bktr.4; driver. This driver supports most Pinnacle PCTV
supports most Pinnacle PCTV video cards. Before purchasing a TV card, video cards. Before purchasing a TV card, onsult &man.bktr.4; for
onsult &man.bktr.4; for a a list of supported tuners.</para>
list of supported tuners.</para>
<sect2> <sect2>
<title>Loading the Driver</title> <title>Loading the Driver</title>
@ -1223,9 +1234,9 @@ device smbus</programlisting>
components are interconnected via an I2C bus. Then, build and components are interconnected via an I2C bus. Then, build and
install a new kernel.</para> install a new kernel.</para>
<para>To test that the tuner is correctly detected, reboot the system. The TV card <para>To test that the tuner is correctly detected, reboot the
should appear in the boot messages, as seen in this system. The TV card should appear in the boot messages, as
example:</para> seen in this example:</para>
<programlisting>bktr0: &lt;BrookTree 848A&gt; mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 <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 iicbb0: &lt;I2C bit-banging driver&gt; on bti2c0
@ -1247,8 +1258,8 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
<screen>&prompt.root; <userinput>sysctl hw.bt848.tuner=6</userinput></screen> <screen>&prompt.root; <userinput>sysctl hw.bt848.tuner=6</userinput></screen>
<para>Refer to &man.bktr.4; for a description <para>Refer to &man.bktr.4; for a description of the available
of the available &man.sysctl.8; parameters and kernel options.</para> &man.sysctl.8; parameters and kernel options.</para>
</sect2> </sect2>
<sect2> <sect2>
@ -1281,10 +1292,10 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
<sect2> <sect2>
<title>Troubleshooting</title> <title>Troubleshooting</title>
<para>If any problems are encountered with the TV card, <para>If any problems are encountered with the TV card, check
check that the video capture chip and the tuner are that the video capture chip and the tuner are supported by
supported by &man.bktr.4; and that the right configuration &man.bktr.4; and that the right configuration options were
options were used. For more support or to ask questions used. For more support or to ask questions
about supported TV cards, refer to the about supported TV cards, refer to the
&a.multimedia.name; mailing list.</para> &a.multimedia.name; mailing list.</para>
</sect2> </sect2>
@ -1294,44 +1305,45 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
<title>MythTV</title> <title>MythTV</title>
<para>MythTV is a popular, open source Personal Video Recorder <para>MythTV is a popular, open source Personal Video Recorder
(<acronym>PVR</acronym>) (<acronym>PVR</acronym>) application. This section demonstrates
application. This section demonstrates how to install and how to install and setup MythTV on &os;. Refer to <ulink
setup MythTV on &os;. Refer to <ulink
url="http://www.mythtv.org/wiki/">mythtv.org/wiki</ulink> for url="http://www.mythtv.org/wiki/">mythtv.org/wiki</ulink> for
more information on how to use MythTV.</para> more information on how to use MythTV.</para>
<para>MythTV requires a frontend and a backend. These components <para>MythTV requires a frontend and a backend. These
can either be installed on the same system or on components can either be installed on the same system or on
different machines.</para> different machines.</para>
<para>The frontend can be installed on &os; using the <filename <para>The frontend can be installed on &os; using the <filename
role="package">multimedia/mythtv-frontend</filename> package or port. role="package">multimedia/mythtv-frontend</filename> package
<application>&xorg;</application> must also be installed and configured as described in or port. <application>&xorg;</application> must also be
<xref linkend="x11"/>. Ideally, this installed and configured as described in <xref
system has a video card that supports X-Video Motion Compensation linkend="x11"/>. Ideally, this system has a video card that
(<acronym>XvMC</acronym>) and, supports X-Video Motion Compensation
optionally, a Linux Infrared Remote Control (<acronym>XvMC</acronym>) and, optionally, a Linux Infrared
(<acronym>LIRC</acronym>)-compatible remote.</para> Remote Control (<acronym>LIRC</acronym>)-compatible
remote.</para>
<para>To install both the backend and the frontend on &os;, use the <filename <para>To install both the backend and the frontend on &os;, use
role="package">multimedia/mythtv</filename> package or port. the <filename role="package">multimedia/mythtv</filename>
A &mysql; database server is also required and should package or port. A &mysql; database server is also required
automatically be installed as a dependency. and should automatically be installed as a dependency.
Optionally, this system should have a tuner card Optionally, this system should have a tuner card and
and sufficient storage to hold recorded data.</para> sufficient storage to hold recorded data.</para>
<sect2> <sect2>
<title>Hardware</title> <title>Hardware</title>
<para>MythTV uses Video for Linux (<acronym>V4L</acronym>) to access video input <para>MythTV uses Video for Linux (<acronym>V4L</acronym>) to
devices such as encoders and tuners. In &os;, MythTV access video input devices such as encoders and tuners. In
works best with <acronym>USB</acronym> DVB-S/C/T cards as they are well supported by the <filename &os;, MythTV works best with <acronym>USB</acronym> DVB-S/C/T
role="package">multimedia/webcamd</filename> package or port which provides cards as they are well supported by the <filename
a <acronym>V4L</acronym> userland application. role="package">multimedia/webcamd</filename> package or port
Any Digital Video Broadcasting (<acronym>DVB</acronym>) which provides a <acronym>V4L</acronym> userland application.
card supported by <application>webcamd</application> should Any Digital Video Broadcasting (<acronym>DVB</acronym>) card
work with MythTV. A list of known working cards can be supported by <application>webcamd</application> should work
found at <ulink with MythTV. A list of known working cards can be found at
<ulink
url="http://wiki.freebsd.org/WebcamCompat">wiki.freebsd.org/WebcamCompat</ulink>. url="http://wiki.freebsd.org/WebcamCompat">wiki.freebsd.org/WebcamCompat</ulink>.
Drivers are also available for Hauppauge cards in the Drivers are also available for Hauppauge cards in the
<filename <filename
@ -1342,7 +1354,8 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
restrictions, no packages are available and these two ports restrictions, no packages are available and these two ports
must be compiled.</para> must be compiled.</para>
<para>The <ulink url="http://wiki.freebsd.org/HTPC">wiki.freebsd.org/HTPC</ulink> <para>The <ulink
url="http://wiki.freebsd.org/HTPC">wiki.freebsd.org/HTPC</ulink>
page contains a list of all available <acronym>DVB</acronym> page contains a list of all available <acronym>DVB</acronym>
drivers.</para> drivers.</para>
</sect2> </sect2>
@ -1400,9 +1413,9 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
<para>&os; supports both SCSI and USB scanners. Be sure the <para>&os; supports both SCSI and USB scanners. Be sure the
scanner is supported by <application>SANE</application> prior scanner is supported by <application>SANE</application> prior
to performing any configuration. Refer to the <ulink to performing any configuration. Refer to the <ulink
url="http://www.sane-project.org/sane-supported-devices.html"> url="http://www.sane-project.org/sane-supported-devices.html">
supported devices list</ulink> for more information about supported supported devices list</ulink> for more information about
scanners.</para> supported scanners.</para>
<sect2> <sect2>
<title>Kernel Configuration</title> <title>Kernel Configuration</title>
@ -1444,7 +1457,7 @@ device ehci</programlisting>
<para>If the scanner uses a SCSI interface, it is important to <para>If the scanner uses a SCSI interface, it is important to
know which SCSI controller board it will use. Depending know which SCSI controller board it will use. Depending
upon the SCSI chipset, a custom kernel configuration file upon the SCSI chipset, a custom kernel configuration file
may be needed. The <filename>GENERIC</filename> kernel may be needed. The <filename>GENERIC</filename> kernel
supports the most common SCSI controllers. Refer to supports the most common SCSI controllers. Refer to
<filename>/usr/src/sys/conf/NOTES</filename> to determine <filename>/usr/src/sys/conf/NOTES</filename> to determine
the correct line to add to a custom kernel configuration the correct line to add to a custom kernel configuration