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