<!--
     The FreeBSD Dutch Documentation Project

     $FreeBSD$
     $FreeBSDnl: nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml,v 1.22 2005/04/24 19:20:51 siebrand Exp $
     Gebaseerd op: 1.106
-->

<chapter id="multimedia">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Ross</firstname>
	<surname>Lippert</surname>
	<contrib>Aangepast door </contrib>
      </author>
    </authorgroup>
    <authorgroup>
      <author>
	<firstname>Siebrand</firstname>
	<surname>Mazeland</surname>
	<contrib>Vertaald door </contrib>
      </author>
    </authorgroup>
  </chapterinfo>

  <title>Multimedia</title>

  <sect1 id="multimedia-synopsis">
    <title>Overzicht</title>

    <para>&os; ondersteunt een breed bereik aan geluidskaarten,
      waardoor het mogelijk is van geluid van hoge kwaliteit op een
      computer te genieten.  Hieronder vallen mogelijkheden om geluid
      op te nemen en af te spelen in de MPEG Audio Layer 3 (MP3), WAV
      en Ogg Vorbis formaten en vele andere formaten.  De &os;
      Portscollectie bevat ook programma's waarmee opgenomen audio
      bewerkt kan worden, waarmee geluidseffecten toegevoegd kunnen
      worden en aangesloten MIDI apparaten bestuurd kunnen
      worden.</para>

    <para>Met wat wil om te experimenteren kunnen met &os;
      videobestanden en DVD's afgespeeld worden.  Er zijn minder
      programma's om video te encoderen, te converteren en af te spelen
      dan er zijn voor audio.  Op het moment van schrijven is er
      bijvoorbeeld geen programma in de &os; Portscollectie beschikbaar
      waarmee video goed gehercodeerd kan worden.  Deze functie zou
      gebruikt kunnen worden om tussen formaten te converteren, zoals
      mogelijk is met <filename role="package">audio/sox</filename>.
      De software in dit landschap is echter sterk aan verandering
      onderhevig.</para>

    <para>In dit hoofdstuk worden de stappen beschreven die uitgevoerd
      moeten worden om een geluidskaart in te stellen.  Bij de
      installatie en instelling van X11 (<xref linkend="x11">) is al
      beschreven hoe videokaarten ingesteld kunnen worden, hoewel er
      nog wel een aantal mogelijkheden zijn om het afspelen te
      verbeteren.</para>

    <para>Na het lezen van dit hoofdstuk weet de lezer:</para>

    <itemizedlist>
      <listitem>
	<para>Hoe een systeem zo in te stellen dat een geluidskaart
	  wordt herkend;</para>
      </listitem>

      <listitem>
	<para>Hoe getest kan worden of een kaart werkt door gebruik te
	  maken van voorbeeldapplicaties;</para>
      </listitem>

      <listitem>
	<para>Hoe problemen op te lossen met betrekking tot
	  geluidsinstellingen;</para>
      </listitem>

      <listitem>
	<para>Hoe MP3's en andere audio af te spelen en te
	  maken;</para>
      </listitem>

      <listitem>
	<para>Hoe video wordt ondersteund door de X server;</para>
      </listitem>

      <listitem>
	<para>Welke video speler/encoderports goede resultaten
	  geven;</para>
      </listitem>

      <listitem>
	<para>Hoe DVD's, <filename>.mpg</filename> en
	  <filename>.avi</filename> bestanden af te spelen;</para>
      </listitem>

      <listitem>
	<para>Hoe CD en DVD informatie naar bestanden geript kan
	  worden;</para>
      </listitem>

      <listitem>
	<para>Hoe een TV-kaart in te stellen;</para>
      </listitem>

      <listitem>
	<para>Hoe een scanner in te stellen.</para>
      </listitem>
    </itemizedlist>

    <para>Er wordt aangenomen dat de lezer van dit hoofdstuk:</para>

    <itemizedlist>
      <listitem><para>Weet hoe een nieuwe kernel in te stellen en te
	installeren (<xref linkend="kernelconfig">).</para>
      </listitem>
    </itemizedlist>

    <warning>
      <para>Het proberen te mounten van audio CD's met &man.mount.8;
	resulteert in ieder geval in een foutmelding en op zijn ergst
	in een <emphasis>kernel panic</emphasis>.  Dat type media heeft
	een formaat dat afwijkt van het gebruikelijke
	ISO-bestandssysteem.</para>
    </warning>

  </sect1>

  <sect1 id="sound-setup">
    <sect1info>
      <authorgroup>
	<author>
	 <firstname>Moses</firstname>
	 <surname>Moore</surname>
	 <contrib>Geschreven door </contrib>
	 <!-- 20 November 2000 -->
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	 <firstname>Marc</firstname>
	 <surname>Fonvieille</surname>
	 <contrib>Aangepast voor &os;&nbsp;5.X door </contrib>
	 <!-- 13 September 2004 -->
	</author>
      </authorgroup>
    </sect1info>

    <title>Geluidskaart installeren</title>

    <sect2 id="sound-device">
      <title>Systeem instellen</title>

      <indexterm><primary>PCI</primary></indexterm>

      <indexterm><primary>ISA</primary></indexterm>

      <indexterm><primary>geluidskaarten</primary></indexterm>

      <para>Alvorens te beginnen is het van belang te weten welk model
	een geluidskaart is, welke chip erop wordt gebruikt en of het
	een PCI of ISA kaart is.  &os; ondersteunt vele PCI en ISA
	kaarten.  De ondersteunde audioapparaten staan in een lijst in
	de <ulink url="&rel.current.hardware;">Hardware Notes</ulink>.
	In dit document staat ook beschreven welk stuurprogramma welke
	kaart(en) ondersteunt.</para>

      <indexterm>
	<primary>kernel</primary>

	<secondary>instellen</secondary>
      </indexterm>

      <para>Om een geluidsapparaat te gebruiken dient het juiste
	apparaatstuurprogramma geladen te worden.  Dit kan op twee
	manieren.  De meest eenvoudige manier is simpelweg een
	kernelmodule te laden voor de gewenste geluidskaart met
	&man.kldload.8;.  Dit kan vanaf de commandoregel:</para>

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

      <para>Of door als volgt de juiste regel toe te voegen aan
	<filename>/boot/loader.conf</filename>:</para>

      <programlisting>snd_emu10k1_load="YES"</programlisting>

      <para>De bovenstaande voorbeelden zijn voor een Creative
	&soundblaster; Live! geluidskaart.  De overige beschikbare
	laadbare geluidsmodules staan beschreven in
	<filename>/boot/defaults/loader.conf</filename>.  Als niet
	compleet duidelijk is welk stuurprogramma gebruikt dient te
	worden, dan kan het met de module
	<filename>snd_driver</filename> geprobeerd worden:</para>

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

      <para>Dit is een metastuurprogramma, dat in &eacute;&eacute;n
	keer de meest voorkomende apparaatstuurprogramma's laadt.
	Hiermee kan het zoeken naar het juiste stuurprogramma versneld
	worden.  Het is ook mogelijk om alle geluidsstuurprogramma's te
	laden via de optie
	<filename>/boot/loader.conf</filename>.</para>

      <note>
	<para>Om onder &os;&nbsp;4.X alle geluidsstuurprogramma's te
	  laden, dient de module <filename>snd</filename> geladen te
	  worden in plaats van <filename>snd_driver</filename>.</para>
      </note>

      <para>Een tweede mogelijkheid is ondersteuning voor een
	geluidskaart statisch in de kernel te compileren.  In de
	onderstaande paragrafen staat meer informatie over hoe op die
	manier ondersteuning voor hardware toegevoegd kan worden.  Meer
	informatie over het hercompileren van een kernel staat in <xref
	  linkend="kernelconfig">.</para>

      <sect3>
	<title>Aangepaste kernel maken met geluidsondersteuning</title>

	<para>Eerst moet het generieke audiostuurprogramma
	  &man.sound.4; aan de kernel toegevoegd worden.  Daarvoor
	  dient het volgende te worden opgenomen in het bestand met
	  kernelinstellingen:</para>

	<programlisting>device sound</programlisting>

	<para>Voor &os;&nbsp;4.X kan het volgende gebruikt
	  worden:</para>

	<programlisting>device pcm</programlisting>

	<para>Daarna kan ondersteuning voor de specifieke geluidskaart
	  toegevoegd worden.  Daarvoor moet bekend zijn welk
	  stuurprogramma de kaart ondersteunt.  Dit kan opgezocht
	  worden in de lijst met ondersteunde audioapparaten in de
	  <ulink url="&rel.current.hardware;">Hardware Notes</ulink>,
	  waar de correcte stuurprogramma's voor geluidskaarten
	  beschreven staan.  Zo wordt een Creative &soundblaster; Live!
	  geluidskaart bijvoorbeeld ondersteund door het stuurprogramma
	  &man.snd.emu10k1.4;.  Ondersteuning voor deze kaart kan als
	  volgt worden toegevoegd:</para>

	<programlisting>device "snd_emu10k1"</programlisting>

	<para>In de hulppagina voor een stuurprogramma staat welke
	  syntaxis gebruikt kan worden.  Informatie over de syntaxis
	  van geluidsstuurprogramma's in de kernelinstellingen staat
	  ook in <filename>/usr/src/sys/conf/NOTES</filename>
	  (<filename>/usr/src/sys/i386/conf/LINT</filename> voor
	  &os;&nbsp;4.X).</para>

	<para>Voor niet-PnP ISA-kaarten kan het nodig zijn dat de
	  kernel informatie gegeven moet worden over de instellingen
	  van een geluidskaart (IRQ, I/O poort, enzovoort).  Dit kan
	  via het bestand <filename>/boot/device.hints</filename>.  Bij
	  het starten van een systeem leest de &man.loader.8; dat
	  bestand uit en geeft de instellingen door aan de kernel.  Zo
	  gebruikt een oude Creative &soundblaster; 16 ISA
	  niet-PnP-kaart het stuurprogramma &man.snd.sbc.4; en dient de
	  volgende regel toegevoegd te worden aan het bestand met
	  kernelinstellingen:</para>

	<programlisting>device snd_sbc</programlisting>

	<para>Daarnaast moet het volgende worden toegevoegd aan
	  <filename>/boot/device.hints</filename>:</para>

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

	<para>In dit geval gebruikt de kaart I/O poort
	  <literal>0x220</literal> en IRQ <literal>5</literal>.</para>

	<para>De gebruikte syntaxis voor
	  <filename>/boot/device.hints</filename> staat beschreven in
	  de hulppagina voor het geluidsstuurprogramma.  In
	  &os;&nbsp;4.X worden deze instellingen direct in het bestand
	  met kernelinstellingen gezet.  In het geval van de
	  bovenstaande ISA-kaart gaat dat al volgt:</para>

	<programlisting>device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15</programlisting>

	<para>De bovenstaande instellingen zijn de standaard
	  instellingen.  In sommige gevallen moeten IRQ of andere
	  instellingen gewijzigd worden om een apparaat juist te laten
	  werken.  In &man.snd.sbc.4; staat meer informatie.</para>

	<note>
	  <para>Onder &os;&nbsp;4.X hebben sommige systemen met
	    audioapparaten op het moederbord de volgende optie in het
	    bestand met kernelinstellingen nodig:</para>

	<programlisting>options PNPBIOS</programlisting>
	</note>
      </sect3>
    </sect2>

    <sect2 id="sound-testing">
      <title>Geluidskaart testen</title>

      <para>Na het herstarten met de aangepaste kernel of na het laden
	van de benodigde module, hoort de geluidskaart ongeveer als
	volgt te verschijnen in de systeemberichtbuffer
	(&man.dmesg.8;):</para>

      <screen>pcm0: &lt;Intel ICH3 (82801CA)&gt; port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: &lt;Cirrus Logic CS4205 AC97 Codec&gt;</screen>

      <para>De status van de geluidskaart kan gecontroleerd worden via
	het bestand <filename>/dev/sndstat</filename>:</para>

      <screen>&prompt.root; <userinput>cat /dev/sndstat</userinput>
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: &lt;Intel ICH3 (82801CA)&gt; at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)</screen>

      <para>De uitvoer kan per systeem wat verschillen.  Als er geen
	apparaten <devicename>pcm</devicename> verschijnen, dienen
	eerdere stappen bekeken te worden.  Bekijk nogmaals de
	instellingen van de kernel en bevestig dat het juiste apparaat
	is gekozen.  Veel voorkomende problemen staan beschreven in
	<xref linkend="troubleshooting">.</para>

      <para>Als het goed is werkt de geluidskaart nu.  Als de cd-rom of
	DVD-ROM drive juist is aangesloten op de geluidskaart, dan kan
	er een CD in de drive gestoken worden en kan deze met
	&man.cdcontrol.1; afgespeeld worden:</para>

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

      <para>Applicaties als <filename
	  role="package">audio/workman</filename> kunnen een
	vriendelijker interface bieden.  Wellicht is het handig om een
	applicatie als <filename role="package">audio/mpg123</filename>
	te installeren om naar MP3 audiobestanden te luisteren.  Een
	snelle manier om de kaart te testen is het als volgt sturen van
	data naar <filename>/dev/dsp</filename>:</para>

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

      <para><replaceable>filename</replaceable> kan ieder bestand zijn.
	Deze commandoregel hoort wat ruis tot gevolg te hebben,
	waardoor wordt bevestigd dat de geluidskaart echt werkt.</para>

      <note>
	<para>&os;&nbsp;4.X gebruikers moeten de geluidskaart
	  apparaatnodes maken voordat hij gebruikt kan worden.  Als de
	  kaart voorkomt in de berichtbuffer als
	  <devicename>pcm0</devicename>, dan dient het volgende als
	  <username>root</username> uitgevoerd te worden:</para>

	<screen>&prompt.root; <userinput>cd /dev</userinput>
&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>

	<para>Als de kaart herkend is als
	  <devicename>pcm1</devicename>, kunnen dezelfde stappen als
	  hierboven gevolgd worden, waarbij
	  <devicename>snd0</devicename> wordt vervangen door
	  <devicename>snd1</devicename>.</para>

	<para><command>MAKEDEV</command> maakt een groep apparaatnodes
	  aan die gebruikt worden voor de applicaties die met geluid
	  te maken hebben.</para>
      </note>

      <para>Niveau's voor de geluidskaartmixer kunnen aangepast worden
	met het commando &man.mixer.8;.  Er staan meer details in
	&man.mixer.8;.</para>

      <sect3 id="troubleshooting">
	<title>Bekende problemen</title>

	<indexterm><primary>apparaatnodes</primary></indexterm>

	<indexterm><primary>I/O poort</primary></indexterm>

	<indexterm><primary>IRQ</primary></indexterm>

	<indexterm><primary>DSP</primary></indexterm>

	<informaltable frame="none" pgwide="1">
	  <tgroup cols="2">
	    <thead>
	      <row>
	       <entry>Fout</entry>

	       <entry>Oplossing</entry>
	      </row>
	    </thead>

	    <tbody>
	      <row>
		<entry><errorname>unsupported
		    subdevice XX</errorname></entry>

		<entry>E&eacute;n of meer van de apparaatnodes zijn
		  niet correct gemaakt.  De bovenstaande stappen dienen
		  opnieuw uitgevoerd te worden.</entry>
	      </row>

	      <row>
		<entry><errorname>sb_dspwr(XX) timed
		    out</errorname></entry>

		<entry>De I/O poort is niet correct ingesteld.</entry>
	      </row>

	      <row>
		<entry><errorname>bad irq XX</errorname></entry>

		<entry>Het IRQ is niet correct ingesteld.  Zorg dat het
		  ingestelde IRQ en het IRQ voor het geluid hetzelfde
		  zijn.</entry>
	      </row>

	      <row>
		<entry><errorname>xxx: gus pcm not attached, out of
		    memory</errorname></entry>

		<entry>Er is niet genoeg geheugen beschikbaar om het
		  apparaat te gebruiken.</entry>
	      </row>

	      <row>
		<entry><errorname>xxx: can't open
		    /dev/dsp!</errorname></entry>

		<entry>Controleer <command>fstat | grep dsp</command>
		  of een ander programma het apparaat geopend heeft.
		  Bekende probleemgevallen zijn
		  <application>esound</application> en
		  <application>KDE</application>'s
		  geluidsondersteuning.</entry>
	      </row>
	    </tbody>
	  </tgroup>
	</informaltable>
      </sect3>
    </sect2>

    <sect2>
      <sect2info>
	<authorgroup>
	  <author>
	    <firstname>Munish</firstname>
	    <surname>Chopra</surname>
	    <contrib>Geschreven door </contrib>
	  </author>
	</authorgroup>
      </sect2info>

      <title>Meerdere geluidsbronnen gebruiken</title>

      <para>Het is vaak wenselijk om meerdere geluidsbronnen
	tegelijkertijd af te kunnen spelen, zoals wanneer
	<application>esound</application> of
	<application>artsd</application> het delen van een
	geluidsapparaat met een andere applicatie niet
	ondersteunen.</para>

      <para>Met &os; kan dit met <emphasis>Virtuele
	Geluidskanalen</emphasis>, die ingesteld kunnen worden met de
	&man.sysctl.8; faciliteit.  Met virtuele kanalen kunnen de
	afspeelkanalen van een geluidskaart gemultiplext worden door
	het geluid in de kernel te mixen.</para>

      <para>Het aantal virtuele kanalen kan met twee sysctl knoppen
	als <username>root</username> als volgt ingesteld
	worden:</para>

      <screen>&prompt.root; <userinput>sysctl hw.snd.pcm0.vchans=4</userinput>
&prompt.root; <userinput>sysctl hw.snd.maxautovchans=4</userinput></screen>

      <para>In het bovenstaande voorbeeld worden vier virtuele kanelen
	gealloceerd, wat in het dagelijks gebruik voldoende is.
	In <varname>hw.snd.pcm0.vchans</varname> staat het aantal
	vitruele kanalen dat <devicename>pcm0</devicename> heeft en is
	instelbaar als een apparaat is aangesloten.
	In <literal>hw.snd.maxautovchans</literal> staat het aantal
	virtuele kanalen dat aan een nieuw audio-apparaat wordt gegeven
	als het wordt aangesloten met &man.kldload.8;.  Omdat de module
	<devicename>pcm</devicename> onafhankelijk van de hardware
	stuurprogramma's geladen kan worden, kan in
	<varname>hw.snd.maxautovchans</varname> opgeslagen worden
	hoeveel virtuele kanalen apparaten die later worden aangesloten
	krijgen.</para>

      <para>Als er geen gebruik wordt gemaakt van &man.devfs.5;, dan
	moeten applicaties wijzen naar
	<filename>/dev/dsp0</filename>.<replaceable>x</replaceable>,
	waar <replaceable>x</replaceable> tussen 0 en 3 ligt als
	<varname>hw.snd.pcm.0.vchans</varname> is ingesteld op 4, zoals
	in het bovenstaande voorbeeld.  Op een systeem waar
	&man.devfs.5; wordt gebruikt, wordt het voorgaande voor een
	gebruiker automatisch transparant gealloceerd.</para>
    </sect2>

    <sect2>
      <sect2info>
	<authorgroup>
	  <author>
	    <firstname>Josef</firstname>
	    <surname>El-Rayes</surname>
	    <contrib>Geschreven door </contrib>
	  </author>
	</authorgroup>
      </sect2info>

      <title>Standaardwaarden voor mixerkanalen instellen</title>

      <para>De standaard waarden voor de mixerkanelen zijn ingesteld in
	de broncode van het stuurprogramma &man.pcm.4;.  Er zijn vele
	applicaties en daemons waarmee waarden voor de mixer ingesteld
	en onthouden kunnen worden en iedere keer bij het starten
	weer kunnen worden ingesteld.  Maar dit is geen nette
	oplossing, omdat het netter is de standaardwaarden in te
	stellen op het niveau van het stuurprogramma.  Die kunnen
	ingesteld worden door de gewenste waarden in te stellen in
	<filename>/boot/device.hints</filename>.  Bijvoorbeeld:</para>

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

      <para>Met de bovenstaande instelling wordt het volume van een
	kanaal standaard op 100 ingesteld bij het laden van de module
	&man.pcm.4;.</para>

      <note>
	<para>Dit wordt alleen ondersteund in &os;&nbsp;5.3-RELEASE en
	  later.</para>
      </note>
    </sect2>
  </sect1>

  <sect1 id="sound-mp3">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Chern</firstname>
	  <surname>Lee</surname>
	  <contrib>Geschreven door </contrib>
	</author>
      </authorgroup>
      <!-- 11 Sept 2001 -->
    </sect1info>

    <title>MP3 audio</title>

    <para>Met MP3 (MPEG Layer 3 Audio) kan geluid bijna in CD-kwaliteit
	weergegeven worden en dus is er een goede reden om dit vooral
	niet na te laten op een &os; werkstation.</para>

    <sect2 id="mp3-players">
      <title>MP3 spelers</title>

      <para>Verreweg de meest populaire X11 MP3 speler is
	<application>XMMS</application> (X Multimedia Systeem).
	In <application>XMMS</application> kunnen
	<application>Winamp</application> skins gebruikt worden, omdat
	de GUI vrijwel gelijk is aan die van Nullsoft's
	<application>Winamp</application>.
	<application>XMMS</application> heeft ook een eigen plug-in
	ondersteuning.</para>

      <para><application>XMMS</application> kan ge&iuml;nstalleerd
	worden via de <filename
	  role="package">multimedia/xmms</filename> port of
	package.</para>

      <para>De interface van <application>XMMS</application> is
	intu&iuml;tief met een playlist, grafische equalizer en meer.
	Gebruikers die bekend zijn met
	<application>Winamp</application> vinden
	<application>XMMS</application> vast eenvoudig te
	gebruiken.</para>

      <para>De port <filename role="package">audio/mpg123</filename> is
	een alternatieve MP3 speler die gebruik maakt van de
	commandoregel.</para>

      <para><application>mpg123</application> werkt door het
	geluidsapparaat en het MP3 bestand aan te geven op de
	commandoregel, zoals hieronder wordt aangegeven:</para>

      <screen>&prompt.root; <userinput>mpg123 -a <replaceable>/dev/dsp1.0</replaceable> Foobar-GreatestHits.mp3</userinput>
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!





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

      <para><literal>/dev/dsp1.0</literal> dient gewijzigd te worden in
	het <devicename>dsp</devicename> apparaat van het systeem
	waarop de MP3 afgespeeld moet worden.</para>
    </sect2>

    <sect2 id="rip-cd">
      <title>CD audio tracks rippen</title>

      <para>Voordat een CD of een CD track naar MP3 ge-encodeerd kan
	worden moet de audiodata naar de harde schijf geript worden.
	Dit gaat door de ruwe CDDA (CD Digital Audio) data naar
	WAV-bestanden de kopi&euml;ren.</para>

      <para>Het hulpprogramma <command>cdda2wav</command>, dat
	onderdeel is van de suite <filename
	  role="package">sysutils/cdrtools</filename>, kan gebruikt
	worden om audio-informatie en de daarbij behorende informatie
	van CD's te rippen.</para>

      <para>Als de audio CD in de drive zit, kan het volgende commando
	als <username>root</username> uitgevoerd worden om een hele CD
	naar individuele (per track) WAV-bestanden te rippen:</para>

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

      <para><application>cdda2wav</application> ondersteunt ATAPI (IDE)
	cd-rom drives.  Om van een IDE drive te rippen, dient de
	apparaatnaam aangegeven te worden in plaats van de SCSI
	eenheidsnummers.  Om bijvoorbeeld track 7 van een IDE drive te
	rippen:</para>

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

      <para>De optie
	<option>-D <replaceable>0,1,0</replaceable></option> geeft het
	SCSI apparaat <devicename>0,1,0</devicename> aan, dat
	overeenkomt met de uitvoer van <command>cdrecord
	  -scanbus</command>.</para>

      <para>Om individuele tracks te rippen kan gebruik gemaakt worden
	van de optie <option>-t</option>:</para>

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

      <para>In het bovenstaande voorbeeld wordt track 7 van de audio
	CD geript.  Om een reeks tracks te rippen, bijvoorbeeld van
	1 tot 7, kan een reeks opgegeven worden:</para>

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

      <para>Ook het hulpprogramma &man.dd.1; kan gebruikt worden om
	audio tracks van ATAPI drives af te halen.  Deze mogelijkheid
	wordt beschreven in <xref
	  linkend="duplicating-audiocds">.</para>
    </sect2>

    <sect2 id="mp3-encoding">
      <title>MP3's encoderen</title>

      <para>Tegenwoodig is <emphasis>de</emphasis> MP3 encoder
	<application>lame</application>.
	<application>Lame</application> staat in
	<filename role="package">audio/lame</filename> in de
	portsstructuur.</para>

      <para>Met de geripte WAV-bestanden converteert het volgende
	commando <filename>audio01.wav</filename> naar
	<filename>audio01.mp3</filename>:</para>

      <screen>&prompt.root; <userinput>lame -h -b <replaceable>192</replaceable> \
--tt "<replaceable>Foo Titel</replaceable>" \
--ta "<replaceable>FooBar Artiest</replaceable>" \
--tl "<replaceable>FooBar Album</replaceable>" \
--ty "<replaceable>2005</replaceable>" \
--tc "<replaceable>Geript en encoded door Foo</replaceable>" \
--tg "<replaceable>Genre</replaceable>" \
<replaceable>audio01.wav audio01.mp3</replaceable></userinput></screen>

      <para>192&nbsp;kbits lijkt de standaard bitrate voor MP3 te zijn.
	Het is ook mogelijk 128 of 160 of andere bitrates te gebruiken.
	Hoe hoger de bitrate, hoe meer schijfruimte de uiteindelijke
	MP3-bestanden gebruiken, maar ook de kwaliteit wordt dan hoger.
	Met de optie <option>-h</option> wordt de modus <quote>hogere
	  kwaliteit, maar iets langzamer</quote> ingeschakeld.  Met de
	opties vanaf <option>--t</option> worden de ID3 tags ingegeven,
	die meestal informatie over een nummer bevatten en onderdeel
	uitmaken van het MP3-bestand.  In de hulppagina voor
	<application>lame</application> staan nog meer opties die
	gebruikt kunnen worden bij het encoderen beschreven.</para>
    </sect2>

    <sect2 id="mp3-decoding">
      <title>MP3's decoderen</title>

      <para>Om een CD te kunnen branden van MP3's, moeten ze omgezet
	worden naar een niet gecomprimeerd WAV-formaat.  Zowel
	<application>XMMS</application> als
	<application>mpg123</application> ondersteunen de uitvoer van
	MP3 naar een niet gecomprimeerd bestandsformaat.</para>

      <para>Naar schijf schrijven met
	<application>XMMS</application>:</para>

      <procedure>
	<step>
	  <para>Start <application>XMMS</application>;</para>
	</step>

	<step>
	  <para>Klik rechts op het venster om het
	    <application>XMMS</application> menu te zien;</para>
	</step>

	<step>
	  <para>Selecteer <literal>Preference</literal> onder
	    <literal>Options</literal>;</para>
	</step>

	<step>
	  <para>Wijzig de Output Plugin naar <quote>Disk Writer
	      Plugin</quote>;</para>
	</step>

	<step>
	  <para>Klik <literal>Configure</literal>;</para>
	</step>

	<step>
	  <para>Voer een map in (of kies <quote>browse</quote>) waar de
	    ongecomprimeerde bestanden heengeschreven moeten
	    worden;</para>
	</step>

	<step>
	  <para>Laad de MP3-bestanden zoals gewoonlijk in
	    <application>XMMS</application>, met het volume op 100% en
	    de EQ instellingen uitgeschakeld;</para>
	</step>

	<step>
	  <para>Klik <literal>Play</literal>.
	    <application>XMMS</application> lijkt nu de MP3 af te
	      spelen, maar er is geen muziek te horen.  Nu wordt
	      feitelijk de MP3 afgespeeld naar een bestand;</para>
	</step>

	<step>
	  <para>Zorg ervoor dat de standaard Output Plugin wordt
	    teruggezet naar hoe de instellingen waren om weer naar
	    MP3's te kunnen luisteren.</para>
	</step>
      </procedure>

      <para>Schrijven naar stdout vanuit
	<application>mpg123</application>:</para>

      <procedure>
	<step>
	  <para>Voer <command>mpg123 -s
	      <replaceable>audio01.mp3</replaceable> &gt;
	      audio01.pcm</command> uit.</para>
	</step>
      </procedure>

      <para><application>XMMS</application> schijft een bestand in het
	WAV-formaat, terwijl <application>mpg123</application> de MP3
	converteert naar ruwe PCM audio data.  Beide formaten kunnen
	gebruikt worden met <application>cdrecord</application> om
	audio CD's te maken.  Met &man.burncd.8; moeten ruwe
	PCM-bestanden gebruikt worden.  Als er WAV-bestanden worden
	gebruikt, is er een tik-geluid te horen bij het begin van
	iedere track.  Dit is het geluid van de kop van ieder
	WAV-bestand.  Met het hulpprogramma
	<application>SoX</application> kan de kop van WAV-bestanden
	verwijderd worden.  Dit programma kan ge&iuml;nstalleerd worden
	met de port of package <filename
	  role="package">audio/sox</filename></para>

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

      <para>In <xref linkend="creating-cds"> staat meer informatie over
	het gebruiken van een CD-brander in &os;.</para>
    </sect2>
  </sect1>

  <sect1 id="video-playback">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Ross</firstname>
	  <surname>Lippert</surname>
	  <contrib>Geschreven door </contrib>
	</author>
      </authorgroup>
      <!-- 5 June 2002 -->
    </sect1info>

    <title>Video afspelen</title>

      <para>Video afspelen is een relatief nieuwe en zich snel
	ontwikkelende richting voor applicaties.  In tegenstelling tot
	voor audio werkt alles hier niet zo soepel.</para>

      <para>Voor er wordt begonnen is het van belang te weten welk
	model videokaart zich in een systeem bevindt en welke chip die
	gebruikt.  Hoewel <application>&xorg;</application> en
	<application>&xfree86;</application> vele videokaarten
	ondersteunen, zijn er veel minder geschikt om goed video mee af
	te spelen.  Er kan een lijst met ondersteunde extensies getoond
	worden voor X server met de gebruikte videokaart door het
	commando &man.xdpyinfo.1; uit te voeren terwijl X11
	draait.</para>

      <para>Het is verstandig een kort MPEG-bestand beschikbaar te
	hebben dat gebruikt kan worden als testbestand voor het
	evalueren van de spelers en hun opties.  Omdat sommige
	DVD-spelers standaard zoeken naar DVD media in
	<filename>/dev/dvd</filename> of deze apparaatnaam standaard in
	de broncode hebben staan, is het wellicht verstandig om een
	symbolische link te maken naar de juist apparaten:</para>

      <screen>&prompt.root; <userinput>ln -sf /dev/acd0c /dev/dvd</userinput>
&prompt.root; <userinput>ln -sf /dev/racd0c /dev/rdvd</userinput></screen>

      <para>In &os;&nbsp;5.X, dat &man.devfs.5; gebruikt, worden
	net iets andere links aangeraden:</para>

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

      <para>Vanwege de werking van &man.devfs.5;, blijven handmatig
	aangemaakte links niet bestaan als een systeem wordt herstart.
	Om automatisch symbolische links aan te laten maken als een
	systeem start, kunnen de volgende regels toegevoegd worden aan
	<filename>/etc/devfs.conf</filename>:</para>

      <programlisting>link acd0 dvd
link acd0 rdvd</programlisting>

      <para>Daarnaast zijn voor het decoderen van DVD, waarvoor
	bijzondere DVD-ROM functies aangeroepen worden, schrijfrechten
	op de DVD-apparaten nodig.</para>

      <indexterm>
	<primary>kernelopties</primary>

	<secondary>CPU_ENABLE_SSE</secondary>
      </indexterm>

      <indexterm>
	<primary>kernelopties</primary>

	<secondary>USER_LDT</secondary>
      </indexterm>

      <para>Een aantal van de hier besproken ports hebben specifieke
	kernelopties nodig om correct gebouwd te worden.  Voordat ze
	gebouwd worden, dienen deze opties aan het bestand met
	kernelinstellingen toegevoegd te worden, dient de kernel
	opnieuw gebouwd te worden en het systeem opnieuw gestart te
	worden:</para>

      <programlisting>option CPU_ENABLE_SSE
option USER_LDT</programlisting>

      <note>
	<para><literal>option USER_LDT</literal> bestaat niet in
	  &os;&nbsp;5.X.</para>
      </note>

      <para>Om de gedeeld geheugen interface van X11 te verbeteren,
	wordt aangeraden dat een aantal variablelen van &man.sysctl.8;
	worden verhoogd:</para>

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

    <sect2 id="video-interface">

      <title>Videomogelijkheden vaststellen</title>

      <indexterm><primary>XVideo</primary></indexterm>

      <indexterm><primary>SDL</primary></indexterm>

      <indexterm><primary>DGA</primary></indexterm>

      <para>Er zijn een aantal methoden om video weer te geven onder
	X11.  Welke echt werkt, is voornamelijk afhankelijk van de
	gebruikte hardware.  Iedere hieronder beschreven methode geeft
	andere resultaten op andere hardware.  De laatste tijd krijgt
	het renderen van video in X11 veel aandacht en bij iedere
	versie van <application>&xorg;</application> of
	<application>&xfree86;</application> kan er een aanzienlijke
	verbetering zijn.</para>

      <para>Een lijst van veel gebruikte video-interfaces:</para>

      <orderedlist>
	<listitem>
	  <para>X11: normale X11 uitvoer met gebruikmaking van gedeeld
	    geheugen;</para>
	</listitem>

	<listitem>
	  <para>XVideo: een uitbreiding op de X11 interface die video
	    in een door X11 getekend object ondersteunt;</para>
	</listitem>

	<listitem>
	  <para>SDL: de Simple Directmedia Layer;</para>
	</listitem>

	<listitem>
	  <para>DGA: de Direct Graphics Access;</para>
	</listitem>

	<listitem>
	  <para>SVGAlib: low level console grafische laag.</para>
	</listitem>
      </orderedlist>

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

	<para><application>&xorg;</application> en
	  <application>&xfree86; 4.X</application> kennen een
	  uitbreiding <emphasis>XVideo</emphasis>, ook bekend als
	  Xvideo, Xv of xv, waarmee video direct weergegeven kan worden
	  in getekende objecten door een speciale versneller.  Deze
	  uitbreiding geeft een goede afspeelkwaliteit, zelfs op
	  machines met mindere specificaties.</para>

	<para>Of de uitbreiding actief is, kan gecontroleerd worden met
	  het commando <command>xvinfo</command>:</para>

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

	<para>XVideo wordt ondersteund als de uitvoer er ongeveer als
	  volgt uitziet:</para>

	<screen>X-Video Extension version 2.2
screen #0
  Adaptor #0: "Savage Streams Engine"
    number of ports: 1
    port base: 43
    operations supported: PutImage
    supported visuals:
      depth 16, visualID 0x22
      depth 16, visualID 0x23
    number of attributes: 5
      "XV_COLORKEY" (range 0 to 16777215)
              client settable attribute
              client gettable attribute (current value is 2110)
      "XV_BRIGHTNESS" (range -128 to 127)
              client settable attribute
              client gettable attribute (current value is 0)
      "XV_CONTRAST" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 128)
      "XV_SATURATION" (range 0 to 255)
              client settable attribute
              client gettable attribute (current value is 128)
      "XV_HUE" (range -180 to 180)
              client settable attribute
              client gettable attribute (current value is 0)
    maximum XvImage size: 1024 x 1024
    Number of image formats: 7
      id: 0x32595559 (YUY2)
        guid: 59555932-0000-0010-8000-00aa00389b71
        bits per pixel: 16
        number of planes: 1
        type: YUV (packed)
      id: 0x32315659 (YV12)
        guid: 59563132-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x30323449 (I420)
        guid: 49343230-0000-0010-8000-00aa00389b71
        bits per pixel: 12
        number of planes: 3
        type: YUV (planar)
      id: 0x36315652 (RV16)
        guid: 52563135-0000-0000-0000-000000000000
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 0
        red, green, blue masks: 0x1f, 0x3e0, 0x7c00
      id: 0x35315652 (RV15)
        guid: 52563136-0000-0000-0000-000000000000
        bits per pixel: 16
        number of planes: 1
        type: RGB (packed)
        depth: 0
        red, green, blue masks: 0x1f, 0x7e0, 0xf800
      id: 0x31313259 (Y211)
        guid: 59323131-0000-0010-8000-00aa00389b71
        bits per pixel: 6
        number of planes: 3
        type: YUV (packed)
      id: 0x0
        guid: 00000000-0000-0000-0000-000000000000
        bits per pixel: 0
        number of planes: 0
        type: RGB (packed)
        depth: 1
        red, green, blue masks: 0x0, 0x0, 0x0</screen>

	<note>
	  <para>Sommige van de weergegeven formaten (YUV2, YUV12,
	    enzovoort) zijn niet in iedere implementaties van XVideo
	    beschikbaar en hun afwezigheid kan sommige spelers
	    hinderen.</para>
	</note>

	<para>Als het resultaat er als hieronder uitziet, is er geen
	  ondersteuning voor XVideo aanwezig op de videokaart in een
	  systeem:</para>

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

	<para>Als XVideo voor een kaart niet wordt ondersteund, dan
	  betekent dat alleen dat het lastiger wordt om op een
	  beeldscherm aan de vereisten voor het renderen van video te
	  voldoen.  Afhankelijk van de videokaart en de processor kan
	  het toch nog mogelijk zijn om acceptabele prestaties neer te
	  zetten.  In <xref linkend="video-further-reading"> staan
	  verwijzingen naar leesvoer over mogelijkheden voor het
	  verbeteren van prestaties.</para>
      </sect3>

      <sect3 id="video-interface-SDL">
	<title>Eenvoudige Directmedia Laag</title>

	<para>De Eenvoudige Directmedia Laag (Simple Directmedia
	  Layer), SDL, was bedoeld als een porting-laag tussen
	  &microsoft.windows;, BeOS en &unix;, waardoor cross-platform
	  toepassingen konden worden ontwikkeld die effici&euml;nt
	  gebruik maken van geluid en beelden.  De SDL laag biedt een
	  abstractie op laag niveau naar de hardware die soms
	  effici&euml;nter kan zijn dan de X11 interface.</para>

	<para>De SDL staat in <filename
	    role="package">devel/sdl12</filename>.</para>
      </sect3>

      <sect3 id="video-interface-DGA">
	<title>Directe Grafische Toegang</title>

	<para>Directe Grafische Toegang (Direct Graphics Access) is een
	  X11 uitbreiding die een programma in staat stelt voorbij te
	  gaan aan de X server en de framebuffer direct kan wijzigen.
	  Omdat hij afhankelijk is van geheugenmapping op een laag
	  niveau om dit delen uit te voeren, moeten programma's die er
	  gebruik van maken als <username>root</username>
	  draaien.</para>

	<para>De DGA uitbreiding kan getest en gebenchmarkt worden met
	  &man.dga.1;.  Als <command>dga</command> draait, verandert
	  het de kleuren op een scherm als er een toets wordt
	  ingedrukt.  Om te stoppen kan de toets <keycap>q</keycap>
	  gebruikt worden.</para>
      </sect3>
    </sect2>

    <sect2 id="video-ports">
      <title>Ports en packages met video</title>

      <indexterm><primary>videopoorten</primary></indexterm>

      <indexterm><primary>videopackages</primary></indexterm>

      <para>In dit onderdeel wordt de software die vanuit de &os;
	Portscollectie beschikbaar is voor het afspelen van video
	beschreven.  Het afspelen van video is een tak van
	softwareontwikkeling die erg in beweging is en de mogelijkheden
	van de verschillende applicaties verschillen zeer
	waarschijnlijk van wat hier is beschreven.</para>

      <para>Als eerste is het belangrijk om te weten dat veel
	applicaties die met video te maken hebben en op &os; draaien
	ontwikkeld zijn als &linux; applicaties.  Veel van die
	applicaties zijn op het moment van schrijven van
	beta-kwaliteit.  Problemen die te verwachten zijn bij het
	gebruik van de beschreven videopakketten op &os; zijn:</para>

      <orderedlist>
	<listitem>
	  <para>Een applicatie kan geen bestanden afspelen die zijn
	    gemaakt met een andere applicatie;</para>
	</listitem>

	<listitem>
	  <para>Een applicatie kan geen bestanden afspelen die met de
	    applicatie zelf zijn gemaakt;</para>
	</listitem>

	<listitem>
	  <para>Dezelfde applicatie, op twee verschillende machines
	    gebouwd, speelt hetzelfde bestand op twee machines anders
	    af;</para>
	</listitem>

	<listitem>
	  <para>Een ogenschijlijk triviale filter, zoals het herschalen
	    van beeldgrootte, kan resulteren in vreselijk vervelende
	    artefacten door fouten in de routine voor het
	    herschalen;</para>
	</listitem>

	<listitem>
	  <para>Een applicatie dumpt zijn core regelmatig;</para>
	</listitem>

	<listitem>
	  <para>Documentatie wordt niet ge&iuml;nstalleerd bij de port
	    en staat op het web of in de map <filename
	      class='directory'>work</filename> van de port.</para>
	</listitem>
      </orderedlist>

      <para>Veel van deze applicaties kunnen ook
	<quote>Linux-ismes</quote> vertonen.  Zo kunnen er bijvoorbeeld
	problemen ontstaan door de wijze waarop standaard bibliotheken
	zijn ge&iuml;mplementeerd in de &linux; distributies of een
	aantal van de mogelijkheden van de &linux;-kernel, waarvan
	door de makers van de applicatie wordt aangenomen dat ze
	aanwezig zijn.  Dit soort problemen zijn niet altijd zichtbaar
	en er wordt ook omheen gewerkt door de beheerders van ports,
	wat tot de volgende mogelijke problemen kan leiden:</para>

      <orderedlist>
	<listitem>
	  <para>Het gebruik van <filename>/proc/cpuinfo</filename> om
	    processorkarakteristieken uit te lezen;</para>
	</listitem>

	<listitem>
	  <para>Het verkeerd gebruiken van threads, waardoor een
	    programma hangt als het klaar is, in plaats van dat het
	    echt eindigt;</para>
	</listitem>

	<listitem>
	  <para>Software die nog niet in de &os; Portscollectie zit en
	    vaak gebruikt wordt samen met een applicatie die daar wel
	    onderdeel van uitmaakt.</para>
	</listitem>
      </orderedlist>

      <para>Tot nu toe is gebleken dat de ontwikkelaars van applicaties
	wel co&ouml;peratief waren met de beheerders van ports om zo
	het aantal work-arounds dat nodig was voor het porten tot een
	minimum te beperken.</para>

      <sect3 id="video-mplayer">
	<title>MPlayer</title>

	<para><application>MPlayer</application> is een zich snel
	  ontwikkelende videospeler.  De doelen van het
	  <application>MPlayer</application>-team zijn snelheid en
	  flexibiliteit onder &linux; en andere Unices.  Het project is
	  gestart toen de oprichter van het team genoeg had van de
	  slechte afspeelprestaties van de destijds beschikbare
	  spelers.  Er zijn mensen die zeggen dat het grafische ontwerp
	  is opgeofferd voor het stroomlijnen van het ontwerp, maar het
	  blijkt dat, als een gebruiker gewend is aan de
	  commandoregelopties en de toetsencommando's, de applicatie
	  erg goed werkt.</para>

	<sect4 id="video-mplayer-building">
	  <title>MPlayer bouwen</title>

	  <indexterm>
	    <primary>MPlayer</primary>

	    <secondary>maken</secondary>
	  </indexterm>

	  <para><application>MPlayer</application> staat in <filename
	      role="package">multimedia/mplayer</filename>.
	    <application>MPlayer</application> voert een aantal
	    hardwarecontroles uit tijdens het bouwen, wat resulteert in
	    een binair bestand dat niet van het ene naar het andere
	    systeem verplaatst kan worden.  Daarom is het van belang
	    dat het uit de ports wordt gebouwd en niet als binair
	    package wordt ge&iuml;nstalleerd.  Daarnaast staan er ook
	    nog opties die vanaf de <command>make</command>
	    commandoregel meegegeven kunnen worden beschreven in de
	    <filename>Makefile</filename> en aan het begin van de
	    build:</para>

	  <screen>&prompt.root; <userinput>cd /usr/ports/multimedia/mplayer</userinput>
&prompt.root; <userinput>make</userinput>
N - O - T - E

Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html</screen>

	  <para>De standaard portopties zijn voor de meeste gebruikers
	    voldoende.  Maar als bijvoorbeeld de XviD codec nodig is,
	    dan moet de optie <makevar>WITH_XVID</makevar> op de
	    commandoregel meegegeven worden.  Het standaard
	    DVD-apparaat kan ook gedefinieerd worden met de optie
	    <makevar>WITH_DVD_DEVICE</makevar>, waarbij standaard
	    <filename>/dev/acd0</filename> wordt gebruikt.</para>

	  <para>Op het moment van schrijven wordt de
	    <application>MPlayer</application> port gebouwd met de HTML
	    documentatie en twee uitvoerbare bestanden,
	    <command>mplayer</command> en <command>mencoder</command>,
	    wat een hulpmiddel is voor het opnieuw encoderen van
	    video.</para>

	  <para>De HTML documentatie voor
	    <application>MPlayer</application> is erg informatief.  Als
	    de lezer vindt dat er informatie over videohardware en
	    interfaces in dit hoofdstuk mist, dan is de documentatie
	    van <application>MPlayer</application> een zeer grondige
	    aanvulling.  Het is de moeite waard de tijd te nemen om de
	    documentatie van <application>MPlayer</application> te
	    lezen, als meer informatie over de ondersteuning van video
	    in &unix; welkom is.</para>
	</sect4>

	<sect4 id="video-mplayer-using">
	  <title>MPlayer gebruiken</title>

	  <indexterm>
	    <primary>MPlayer</primary>

	    <secondary>gebruiken</secondary>
	  </indexterm>

	  <para>Iedere gebruiker van <application>MPlayer</application>
	    dient een submap <filename>.mplayer</filename> in zijn
	    thuismap te hebben.  Die kan als volgt gemaakt
	    worden:</para>

	  <screen>&prompt.user; <userinput>cd /usr/ports/multimedia/mplayer</userinput>
&prompt.user; <userinput>make install-user</userinput></screen>

	  <para>De commando-opties voor <command>mplayer</command>
	    staan in de hulppagina.  Nog meer details staan in de HTML
	    documentatie.  In dit onderdeel worden slechts een aantal
	    gebruiksmogelijkheden beschreven.</para>

	  <para>Om een bestand als
	    <filename><replaceable>testfile.avi</replaceable></filename>
	    af te spelen met een van de beschikbare video-interfaces,
	    kan de optie <option>-vo</option> gebruikt worden:</para>

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

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

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

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

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

	  <para>Het is de moeite waard alle bovenstaande opties uit te
	    proberen omdat hun relatieve prestatie afhangt van vele
	    factoren die aanzienlijk verschillen tussen
	    hardware.</para>

	  <para>Om een DVD af te spelen dient
	    <filename>testfile.avi</filename> vervangen te worden door
	    <option>dvd://<replaceable>N</replaceable> -dvd-device
	    <replaceable>APPARAAT</replaceable></option> waar
	    <replaceable>N</replaceable> het titelnummer is dat
	    afgespeeld moeten worden en
	    <filename><replaceable>APPARAAT</replaceable></filename> de
	    apparaatnode is voor de DVD-ROM.  Om bijvoorbeeld titel 3
	    van <filename>/dev/dvd</filename> af te spelen:</para>

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

	  <note>
	    <para>Het standaard DVD-apparaat kan ingesteld worden bij
	      het bouwen van de <application>MPlayer</application> port
	      met de optie <makevar>WITH_DVD_DEVICE</makevar>.
	      Standaard is dit apparaat <filename>/dev/acd0</filename>.
	      Meer details staan in de <filename>Makefile</filename>
	      van de port.</para>
	  </note>

	  <para>Om te stoppen, pauzeren, verder te spoelen, enzovoort,
	    kunnen de toetsendefinities gebruikt worden, die in te zien
	    zijn door <command>mplayer -h</command> uit te voeren of
	    de hulppagina te lezen.</para>

	  <para>Overige belangrijke opties voor het afspelen zijn:
	    <option>-fs -zoom</option>, waarmee het volledige scherm
	    wordt gebruikt, en <option>-framedrop</option>, die
	    prestatieverhogend werkt.</para>

	  <para>Om ervoor te zorgen dat de commandoregels niet te lang
	    worden, kan het bestand
	    <filename>.mplayer/config</filename> met
	    voorkeursinstellingen gemaakt worden:</para>

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

	  <para>Tenslotte kan <command>mplayer</command> gebruikt
	    worden om een DVD naar een bestand van het type
	    <filename>.vob</filename> te rippen.  Om de tweede titel
	    van een DVD de dumpen kan het volgende commando gebruikt
	    worden:</para>

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

	  <para>Het uitvoerbestand <filename>out.vob</filename>, is
	    van het type MPEG en kan bewerkt worden met andere in dit
	    onderdeel besproken programma's.</para>
	</sect4>

	<sect4 id="video-mencoder">
	  <title><command>mencoder</command></title>

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

	  <para>Voordat <command>mencoder</command> wordt gebruikt, is
	    het verstandig de opties uit de HTML-documentatie te
	    bekijken.  Er is een hulppagina, maar die is niet echt
	    bruikbaar zonder de HTML-documentatie.  Er zijn ontelbare
	    mogelijkheden om de kwaliteit te verhogen, de bitrate te
	    verlagen en formaten te wijzigen en een aantal van die
	    truuks maken het verschil tussen goede en slechte
	    prestaties.  Hieronder staan een aantal voorbeelden
	    beschreven.</para>

	  <para>Eenvoudigweg kopi&euml;ren:</para>

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

	  <para>Verkeerde combinaties van commandoregelopties kunnen
	    resulteren in uitvoerbestanden die zelfs niet af te spelen
	    zijn door <command>mplayer</command>.  Daarom wordt
	    aangeraden om het bij de optie
	    <option>&ndash;dumpfile</option> in
	    <command>mplayer</command> te houden als het alleen maar
	    nodig is een bestand te rippen.</para>

	  <para>Om <filename>input.avi</filename> te converteren naar
	    de MPEG4-codec met MPEG3-audio encoding (<filename
	      role="package">audio/lame</filename> is
	    verplicht):</para>

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

	  <para>Hiermee wordt uitvoer gemaakt die af te spelen is met
	    <command>mplayer</command> en
	    <command>xine</command>.</para>

	  <para><filename>input.avi</filename> kan worden vervangen
	    door <option>dvd://1 -dvd-device /dev/dvd</option> en als
	    <username>root</username> gedraaid worden om een DVD titel
	    direct te hercoderen.  Omdat het waarschijnlijk is dat de
	    eerste experimenten niet direct tevredenstellend zijn,
	    wordt aangeraden een titel eerst naar een bestand te dumpen
	    en dat als werkbestand te gebruiken.</para>
	</sect4>
      </sect3>

      <sect3 id="video-xine">
	<title><application>xine</application> videospeler</title>

	<para>De <application>xine</application> videospeler is een
	  project met een brede scope, dat niet alleen tracht een
	  allesomvattende video-oplossing te bieden, maar ook probeert
	  een herbruikbare basisbibliotheek en een modulair uitvoerbaar
	  bestand te maken dat uitgebreid kan worden met plug-ins.  Het
	  kan als package en port ge&iuml;nstalleerd worden uit
	  <filename role="package">multimedia/xine</filename>.</para>

	<para>De <application>xine</application> speler heeft nog wat
	  ruwe randjes, maar is zeker goed van start gegaan.  In de
	  praktijk heeft <application>xine</application> een snelle CPU
	  met een snelle videokaart of ondersteuning voor de XVideo
	  extensie nodig.  De GUI is bruikbaar, maar wat
	  onhandig.</para>

	<para>Op het moment van schrijven wordt er geen invoermodule
	  bij <application>xine</application> geleverd waarmee CSS
	  gecodeerde DVD's afgespeeld kunnen worden.  Er zijn er die
	  door andere partijen zijn gebouwd die dat type modules wel
	  hebben, maar die zijn niet beschikbaar in de &os;
	  Portscollectie.</para>

	<para>Vergeleken met <application>MPlayer</application>, doet
	  <application>xine</application> meer voor de gebruiker, maar
	  tegelijkertijd neemt het wat van de
	  fijnafstellingsmogelijkheden weg.  De
	  <application>xine</application> videospeler werkt het beste
	  op XVideo interfaces.</para>

	<para>Standaard start de <application>xine</application> speler
	  op in een grafische gebruikersinterface.  Via het menu kan
	  een specifiek bestand geopend worden:</para>

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

	<para>Het is ook mogelijk om zonder de GUI direct een bestand
	  af te laten spelen:</para>

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

      <sect3 id="video-ports-transcode">
	<title><application>transcode</application>
	  hulpprogramma's</title>

	<para>De software <application>transcode</application> is geen
	  speler, maar een verzameling hulpprogramma's voor het
	  hercoderen van <filename>.avi</filename> en
	  <filename>.mpg</filename> bestanden.  Met
	  <application>transcode</application> wordt het mogelijk om
	  videobestanden samen te voegen, kapotte bestanden te
	  repareren en commandoregelprogramma's te gebruiken met
	  <filename>stdin/stdout</filename> stream interfaces.</para>

	<para>Net als <application>MPlayer</application> is
	  <application>transcode</application> bijzonder experimentele
	  software die vanuit de port <filename
	    role="package">multimedia/transcode</filename> gebouwd moet
	  worden.  Er zijn veel opties voor <command>make</command>
	  beschikbaar en daaruit worden de volgende aangeraden:</para>

	<screen>&prompt.root; <userinput>make WITH_LIBMPEG2=yes</userinput></screen>

	<para>Als ook <filename
	    role="package">multimedia/avifile</filename> wordt
	  ge&iuml;nstalleerd, dan dient <literal>WITH_AVIFILE</literal>
	  aan de <command>make</command> commandoregel te worden
	  toegevoegd:</para>

	<screen>&prompt.root; <userinput>make WITH_AVIFILE=yes WITH_LIBMPEG2=yes</userinput></screen>

	<para>Hieronder staan twee voorbeelden beschreven waarin
	  <command>transcode</command> wordt gebruikt voor het
	  converteren van video met als resultaat anders geschaalde
	  uitvoer.  Het eerste encodeert de uitvoer naar een openDIVX
	  AVI-bestand, het tweede encodeert het naar het meer portabele
	  formaat MPEG.</para>

	<screen>&prompt.user; <userinput>transcode -i input.vob -x vob -V -Z 320x240 \
-y opendivx -N 0x55 -o output.avi</userinput></screen>

	<screen>&prompt.user; <userinput>transcode -i input.vob -x vob -V -Z 320x240 \
-y mpeg -N 0x55 -o output.tmp</userinput>
&prompt.user; <userinput>tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1</userinput></screen>

	<para>Er is een hulppagina voor <command>transcode</command>,
	  maar er is weinig documentatie voor de verschillende
	  <command>tc*</command> programma's (zoals
	  <command>tcmplex</command>) die ook zijn ge&iuml;nstalleerd.
	  Voor ieder commando is wel de commandoregeloptie
	  <option>-h</option> beschikbaar, waarmee een korte
	  beschrijving voor het gebruik van het programma wordt
	  getoond.</para>

	<para>Als de twee vergeleken worden, draait
	  <command>transcode</command> aanzienlijk langzamer dan
	  <command>mencoder</command>, maar is de kans wel groter dat
	  er een bestand uit komt dat op de meeste spelers afgespeeld
	  kan worden.  MPEG-bestanden die met
	  <command>transcode</command> zijn gemaakt, zijn bijvoorbeeld
	  al afgespeeld op <application>&windows.media;
	    Player</application> en Apple's
	  <application>&quicktime;</application>.</para>
      </sect3>
    </sect2>

    <sect2 id="video-further-reading">
      <title>Verder lezen</title>

      <para>De beschikbare videosoftware pakketten voor &os; zijn fors
	in ontwikkeling.  Het is goed mogelijk dat in de nabije
	toekomst de meeste problemen die hier aan de kaak zijn gesteld,
	zijn opgelost.  Intussen kunnen zij die het hoogst haalbare uit
	de A/V mogelijkheden voor &os; willen halen, dat het beste
	doen door wat beschikbaar is bij elkaar te scharrelen uit de
	beschikbare FAQ's and tutorials en meerdere programma's
	gebruiken.  Het doel van deze paragraaf is de lezer wat
	richting te geven op dat vlak.</para>

      <para>De <ulink
	  url="http://www.mplayerhq.hu/DOCS/">MPlayer
	    documentatie</ulink> is technisch erg informatief.  Deze
	documenten kunnen het beste bekeken worden door iemand die veel
	kennis wil opdoen over video in &unix;.  Op de
	<application>MPlayer</application> mailinglijst wordt het niet
	op prijsgesteld als iemand de documentatie niet heeft gelezen,
	dus het is verstandig RTFM in gedachten te houden alvorens
	bug reports naar ze te mailen.</para>

      <para>De <ulink
	  url="http://dvd.sourceforge.net/xine-howto/en_GB/html/howto.html">xine
	    HOWTO</ulink> bevat een hoofdstuk over het verbeteren van
	prestaties, dat op alle spelers van toepassing is.</para>

      <para>Tenslotte zijn er nog een aantal veelbelovende applicaties
	die het proberen waard zijn:</para>

      <itemizedlist>
	<listitem>
	  <para><ulink
	      url="http://avifile.sourceforge.net/">Avifile</ulink>
	    bestaat ook als port: <filename
	      role='package'>multimedia/avifile</filename>;</para>
	</listitem>

	<listitem>
	  <para><ulink
	      url="http://www.dtek.chalmers.se/groups/dvd/">Ogle</ulink>
	    is er ook als port: <filename
	      role='package'>multimedia/ogle</filename>;</para>
	</listitem>

	<listitem>
	  <para><ulink
	      url="http://xtheater.sourceforge.net/">Xtheater</ulink>;</para>
	</listitem>

	<listitem>
	  <para><filename
	      role="package">multimedia/dvdauthor</filename>, een open
	    source pakket voor authoring van DVD content.</para>
	</listitem>
      </itemizedlist>
    </sect2>
  </sect1>

  <sect1 id="tvcard">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Josef</firstname>
	  <surname>El-Rayes</surname>
	  <contrib>Oorspronkelijk geschreven door </contrib>
	</author>
      </authorgroup>
      <authorgroup>
	<author>
	  <firstname>Marc</firstname>
	  <surname>Fonvieille</surname>
	  <contrib>Verbeterd en aangepast door </contrib>
	  <!-- 02 January 2004 -->
	</author>
      </authorgroup>
    </sect1info>

    <title>TV-kaarten installeren</title>

    <indexterm><primary>TV-kaarten</primary></indexterm>

    <sect2>
      <title>Inleiding</title>

      <para>Met TV-kaarten is het mogelijk om naar (kabel)uitzendingen
	te kijken op een computer.  Op de meeste kaarten kan composiet
	video aangeleverd worden via een RCA of S-video input en
	sommige kaarten hebben ook een FM tuner.</para>

      <para>&os; biedt ondersteuning voor PCI-gebaseerde TV-kaarten met
	een Brooktree Bt848/849/878/879 of een Conexant CN-878/Fusion
	878a Video Capture Chip met het stuurprogramma &man.bktr.4;.
	Het is van belang dat er op de kaart ook een ondersteunde
	tuner zit.  Hiervoor kan &man.bktr.4; geraadpleegd worden,
	waarin een lijst met ondersteunde tuners staat.</para>
    </sect2>

    <sect2>
      <title>Stuurprogramma toevoegen</title>

      <para>Voordat de kaart gebruikt kan worden, dient het
	stuurprogramma &man.bktr.4; geladen te worden.  Dit kan door
	de volgende regel aan <filename>/boot/loader.conf</filename>
	toe te voegen:</para>

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

      <para>Daarnaast is het ook mogelijk om statisch ondersteuning
	voor de TV-kaart in de kernel te compileren.  Dan dient de
	volgende regel toegevoegd te worden aan de
	kernelinstellingen:</para>

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

      <para>De extra stuurprogramma's zijn nodig omdat de
	kaartcomponenten verbonden zijn via een I2C bus.  Met deze
	instellingen kan een nieuwe kernel gebouwd en
	ge&iuml;nstalleerd worden.</para>

      <para>Als een systeem eenmaal ondersteuning biedt, hoort de
	TV-kaart ongeveer als volgt bij een herstart getoond te
	worden:</para>

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

      <para>Deze berichten kunnen afwijken, afhankelijk van de
	gebruikte hardware.  Het is van belang te controleren of de
	tuner juist herkend wordt; er kunnen nog een aantal
	instellingen gemaakt worden voor parameters met &man.sysctl.8;
	MIB's en in het kernelinstellingenbestand.  Om bijvoorbeeld het
	gebruik van een Philips SECAM tuner te forceren, kan de
	volgende regel aan het bestand met kernelinstellingen worden
	toegevoegd:</para>

      <programlisting>options OVERRIDE_TUNER=6</programlisting>

      <para>Dit kan ook via een instelling van &man.sysctl.8;:</para>

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

      <para>In &man.bktr.4; en
	<filename>/usr/src/sys/conf/NOTES</filename> staan meer details
	over de beschikbare opties (onder &os;&nbsp;4.X dient voor
	<filename>/usr/src/sys/conf/NOTES</filename> het bestand
	<filename>/usr/src/sys/i386/conf/LINT</filename> gelezen te
	worden).</para>
    </sect2>

    <sect2>
      <title>Handige programma's</title>

      <para>Om een TV-kaart te gebruiken, dient een van de volgende
	applicaties ge&iuml;nstalleerd te worden:</para>

      <itemizedlist>
	<listitem>
	  <para><filename role="package">multimedia/fxtv</filename>
	    biedt TV-in-een-window en beeld/audio/videocapture
	    mogelijkheden;</para>
	</listitem>

	<listitem>
	  <para><filename role="package">multimedia/xawtv</filename>
	    is ook een TV applicatie met dezelfde mogelijkheden als
	    <application>fxtv</application>;</para>
	</listitem>

	<listitem>
	  <para><filename role="package">misc/alevt</filename>
	    decodeert Videotext/Teletext en kan deze weergeven;</para>
	</listitem>

	<listitem>
	  <para><filename role="package">audio/xmradio</filename>, een
	    applicatie om de FM tuner die bij sommige TV-kaarten zit te
	    gebruiken;</para>
	</listitem>

	<listitem>
	  <para><filename role="package">audio/wmtune</filename>, een
	    handige bureaubladapplicatie voor radiotuners.</para>
	</listitem>
      </itemizedlist>

      <para>Er zijn nog meer applicaties beschikbaar in de
	Portscollectie.</para>
    </sect2>

    <sect2>
      <title>Problemen oplossen</title>

      <para>Bij problemen met een TV-kaart dient eerst gecontroleerd te
	worden of de videocapture chip en de tuner echt ondersteund
	worden door het stuurprogramma &man.bktr.4; en of de juiste
	instellingen worden gebruikt.  Voor meer ondersteuning en
	vragen over een specifieke TV-kaart is het aan te raden de
	archieven van de &a.multimedia.name; mailinglijst te
	raadplegen of er contact mee op te nemen.</para>
    </sect2>
  </sect1>

  <sect1 id="scanners">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Marc</firstname>
	  <surname>Fonvieille</surname>
	  <contrib>Geschreven door </contrib>
	  <!-- 04 August 2004 -->
	</author>
      </authorgroup>
    </sect1info>

    <title>Scanners</title>

    <indexterm><primary>scanners</primary></indexterm>

    <sect2>
      <title>Inleiding</title>

      <para>In &os; is het, net als in andere moderne
	besturingssystemen, mogelijk om scanners te gebruiken.
	Gestandaardiseerde toegang tot scanners is mogelijk met de
	<application>SANE</application> (Scanner Access Now
	Easy) <acronym role="Application Programming
	  Interface">API</acronym> uit de &os; Portscollectie.
	<application>SANE</application> gebruikt ook een aantal &os;
	apparaatstuurprogramma's om toegang te krijgen tot de hardware
	van de scanner.</para>

      <para>&os; ondesteunt SCSI en USB scanners.  Het is van belang te
	controleren of een scanner door <application>SANE</application>
	wordt ondersteund voordat er instellingen worden gemaakt.
	<application>SANE</application> heeft een lijst met <ulink
	  url="http://sane-project.org/sane-supported-devices.html">ondersteunde
	  apparaten</ulink> waarin gekeken kan worden of een scanner
	wordt ondersteund en wat de status voor ondersteuning is.  In
	&man.uscanner.4; staat een lijst met ondersteunde
	USB-scanners.</para>
    </sect2>

    <sect2>
      <title>Kernel instellen</title>

      <para>Zoals hierboven al is aangegeven, worden zowel SCSI als
	USB-scanners ondersteund.  Afhankelijk van de gebruikte
	scannerinterface zijn verschillende apparaatstuurprogramma's
	nodig.</para>

      <sect3 id="scanners-kernel-usb">
	<title>USB interface</title>

	<para>In de <filename>GENERIC</filename> kernel zitten
	  standaard de apparaatstuurprogramma's die nodig zijn voor
	  ondersteuning van USB-scanners.  In het geval wordt besloten
	  tot het maken van een aangepaste kernel, dan dienen de
	  volgende regels in het kernelinstellingenbestand te worden
	  opgenomen:</para>

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

	<para>Afhankelijk van de USB-chipset op een moederbord, is
	  alleen <literal>device uhci</literal> of
	  <literal>device ohci</literal> nodig, maar het opnemen van
	  beiden in het bestand met kernelinstellingen is niet
	  schadelijk.</para>

	<para>Als het niet wenselijk is een nieuwe kernel te bouwen en
	  er wordt geen <filename>GENERIC</filename> kernel gebruikt,
	  dan kan de apparaatstuurprogrammamodule &man.uscanner.4;
	  direct geladen worden met &man.kldload.8;:</para>

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

	<para>Om de module bij iedere systeemstart te laden kan de
	  volgende regel aan <filename>/boot/loader.conf</filename>
	  worden toegevoegd:</para>

	<programlisting>uscanner_load="YES"</programlisting>

	<para>Na een herstart met een juiste ingestelde kernel of na
	  het laden van de benodigde module, kan de USB-scanner
	  aangesloten worden.  De scanner hoort ongeveer als volgt
	  gemeld te worden in de systeemberichtbuffer
	  (&man.dmesg.8;):</para>

	<screen>uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2</screen>

	<para>Het bovenstaande geeft aan dat de scanner de apparaatnode
	  <filename>/dev/uscanner0</filename> gebruikt.</para>

	<note>
	  <para>Om onder &os;&nbsp;4.X bepaalde USB-apparaten te zien,
	    moet daar de USB daemon (&man.usbd.8;) draaien.  Om die in
	    te schakelen, dient <literal>usbd_enable="YES"</literal>
	    toegevoegd te worden aan <filename>/etc/rc.conf</filename>
	    en dient een systeem herstart te worden.</para>
	  </note>
      </sect3>

      <sect3>
	<title>SCSI interface</title>

	<para>Als een scanner een SCSI interface heeft, is het
	  belangrijk te weten welk SCSI controllerbord gebruikt gaat
	  worden.  Afhankelijk van de gebruikte SCSI chipset, dient het
	  bestand met kernelinstellingen aangepast te worden.  De
	  <filename>GENERIC</filename> kernel ondersteunt de meest
	  voorkomende SCSI controllers.  In het bestand
	  <filename>NOTES</filename> (<filename>LINT</filename> onder
	  &os;&nbsp;4.X) is de juiste instelling te vinden die
	  toegevoegd moet worden aan het bestand met
	  kernelinstellingen.  Naast het toevoegen van het juiste
	  SCSI-adapter stuurprogramma, dienen ook de volgende regels
	  opgenomen te worden in het kernelinstellingenbestand:</para>

	<programlisting>device scbus
device pass</programlisting>

	<para>Als de kernel juist gecompileerd is, horen de apparaten
	  zichtbaar te zijn in de systeemberichtbuffer tijdens het
	  opstarten:</para>

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

	<para>Als een scanner niet aan staat tijdens het opstarten, is
	  het nog mogelijk handmatig detectie te forceren door de
	  SCSI-bus te laten scannen met &man.camcontrol.8;:</para>

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

	<para>In het bovenstaande geval zal de scanner ongeveer als
	  volgt verschijnen in de lijst met SCSI-apparaten:</para>

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

	<para>Meer details over SCSI-apparaten staan in &man.scsi.4; en
	  &man.camcontrol.8;.</para>
      </sect3>
    </sect2>

    <sect2>
      <title>SANE instellen</title>

      <para>Het <application>SANE</application> systeem is opgesplitst
	in twee delen: de backends (<filename
	  role="package">graphics/sane-backends</filename>) en de
	frontends (<filename
	  role="package">graphics/sane-frontends</filename>).  Het deel
	met de backends zorgt voor de toegang tot de scanner zelf.  In
	de lijst met door <application>SANE</application> <ulink
	  url="http://sane-project.org/sane-supported-devices.html">ondersteunde
	  apparaten</ulink> staat welk backend welke scanner(s)
	ondersteunt.  Het is echt nodig het juiste backend vast te
	stellen, omdat het anders bijzonder lastig wordt een scanner
	aan de praat te krijgen.  Het deel met frontends levert een
	grafische scaninterface
	(<application>xscanimage</application>).</para>

      <para>Als eerste dient de port of het package <filename
	  role="package">graphics/sane-backends</filename>
	ge&iuml;nstalleerd te worden.  Daarna kan met het commando
	<command>sane-find-scanner</command> gecontroleerd worden welke
	scanner er door het <application>SANE</application> systeem is
	gedetecteerd:</para>

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

      <para>In de uitvoer is te lezen welk type interface en welke
	apparaatnode worden gebruikt om de scanner met een systeem te
	verbinden.  Het merk en het model worden wellicht niet getoond,
	maar dat is ook niet echt van belang.</para>

      <note>
	<para>Sommige USB-scanners verlangen dat er firmware wordt
	  geladen.  Dit wordt uitgelegd in de hulppagina van het
	  backend.  Het is ook van belang &man.sane-find-scanner.1; en
	  &man.sane.7; te lezen.</para>
      </note>

      <para>Hierna kan gecontroleerd worden of de scanner ook te zien
	is voor een scanner-frontend.  Er zit bij de
	<application>SANE</application> backends een standaard
	hulpprogramma &man.scanimage.1;.  Met dit commando kunnen de
	apparaten zichtbaar gemaakt worden en kan vanaf de
	commandoregel gescand worden.  Met de optie <option>-L</option>
	kunnen de scannerapparaten getoond worden:</para>

      <screen>&prompt.root; <userinput>scanimage -L</userinput>
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner</screen>

      <para>De afwezigheid van uitvoer of een bericht dat aangeeft dat
	er geen scanners zijn aangetroffen, betekent dat
	&man.scanimage.1; niet in staat is een scanner te
	identificeren.  Als dit gebeurt, dient het instellingenbestand
	voor het backend aangepast te worden en dient daar de juiste
	instelling gemaakt te worden.  De map <filename
	  class="directory">/usr/local/etc/sane.d/</filename> bevat
	alle bestanden met instellingen voor de backends.  Het is
	bekend dat dit identificatieprobleem optreedt bij bepaalde
	USB-scanners.</para>

      <para>De USB-scanner die in <xref linkend="scanners-kernel-usb">
	wordt gebruikt, toont bijvoorbeeld de volgende informatie met
	<command>sane-find-scanner</command>:</para>

      <screen>&prompt.root; <userinput>sane-find-scanner -q</userinput>
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0</screen>

      <para>De bovenstaande uitvoer geeft aan dat de scanner juist is
	gedetecteerd, dat hij de USB interface gebruikt en is
	aangesloten op de apparaatnode
	<filename>/dev/uscanner0</filename>.  Nu kan gecontroleerd
	worden of de scanner juist wordt ge&iuml;dentificeerd:</para>

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

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

      <para>Omdat in het bovenstaande voorbeeld de scanner niet wordt
	ge&iuml;dentificeerd, dient het bestand
	<filename>/usr/local/etc/sane.d/epson.conf</filename>
	gewijzigd te worden.  De gebruikte scanner is een
	&epson.perfection; 1650, dus in dit geval dient voor de scanner
	het backend <literal>epson</literal> gebruikt te worden.  Het
	is van belang om het commentaar in de instellingenbestanden van
	de backends te lezen.  Het aanpassen van regels is eenvoudig:
	plaats een commentaarkarakter voor alle regels voor andere
	interfaces dan die nodig zijn weg (in dit geval worden alle
	regels die beginnen met het woord <literal>scsi</literal>
	uitgeschakeld, omdat er een USB interface wordt gebruiken), en
	dan kan onderaan het bestand een regel met de gebruikte
	interface en apparaatnode geplaatst worden:</para>

      <programlisting>usb /dev/uscanner0</programlisting>

      <para>Het is aan te raden de opmerkingen te lezen in het bestand
	met instellingen voor het backend en ook de hulppagina, omdat
	daarin meer details en de correcte syntaxis te vinden zijn.  Nu
	kan gecontroleerd worden of de scanner w&egrave;l juist wordt
	ge&iuml;dentificeerd:</para>

      <screen>&prompt.root; <userinput>scanimage -L</userinput>
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner</screen>

      <para>In het bovenstaande voorbeeld wordt duidelijk dat de
	USB-scanner is ge&iuml;dentificeerd.  Het is niet belangrijk
	dat het merk en model niet overeenkomen.  Het belangrijkste is
	het veld <literal>`epson:/dev/uscanner0'</literal>, dat de
	juiste benamingen voor het backend en de apparaatnode
	aangeeft.</para>

      <para>Als <command>scanimage -L</command> in staat is een scanner
	goed te zien, dan zijn de instellingen compleet.  Er kan nu met
	het apparaat gescand worden.</para>

      <para>Hoewel &man.scanimage.1; in staat is om vanaf de
	commandoregel te scannen, is het aan te raden beelden te
	scannen vanuit de grafische gebruikersinterface.
	<application>SANE</application> heeft een eenvoudige, maar
	effici&euml;nte grafische interface:
	<application>xscanimage</application> (<filename
	  role="package">graphics/sane-frontends</filename>).</para>

      <para><application>Xsane</application> (<filename
	  role="package">graphics/xsane</filename>) is een ander
	populair grafisch scanfrontend, dat geavanceerde
	mogelijkheden biedt, zoals meerdere scanmodi (fotokopie, fax,
	enzovoort), kleurcorrectie, batchscannen, enzovoort.  Beide
	applicaties zijn als plug-in voor
	<application>GIMP</application> te gebruiken.</para>
    </sect2>

    <sect2>
      <title>Scannergebruik voor andere gebruikers toestaan</title>

      <para>Alle voorgaande taken zijn uitgevoerd met
	<username>root</username> rechten, maar het is wellicht ook
	nodig dat andere gebruikers de scanner kunnen gebruiken.  Dan
	heeft een gebruiker lees- en schrijfrechten nodig op de
	apparaatnode voor een scanner.  Een USB-scanner gebruikt
	bijvoorbeeld apparaatnode <filename>/dev/uscanner0</filename>,
	waarvan de groep <groupname>operator</groupname> eigenaar is.
	Door gebruiker <username>joe</username> lid te maken van de
	groep <groupname>operator</groupname>, kan die gebruiker de
	scanner gebruiken:</para>

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

      <para>In &man.pw.8; staan meer details.  Op de apparaatnode
	<filename>/dev/uscanner0</filename> moeten ook de juiste
	rechten staan.  Standaard kan de groep
	<groupname>operator</groupname> alleen lezen op de
	apparaatnode.  Dit is te wijzigen door de volgende regel aan
	<filename>/etc/devfs.rules</filename> toe te voegen:</para>

      <programlisting>[system=5]
add path uscanner0 mode 660</programlisting>

      <para>Daarna kan de volgende regel aan
	<filename>/etc/rc.conf</filename> toegevoegd worden en dient
	een machine herstart te worden:</para>

      <programlisting>devfs_system_ruleset="system"</programlisting>

      <para>Meer informatie over de bovenstaande instellingen staan in
	&man.devfs.8; manual page.  Onder &os;&nbsp;4.X heeft de groep
	<groupname>operator</groupname> standaard lees- en
	schrijfrechten op <filename>/dev/uscanner0</filename>.</para>

      <note>
	<para>Natuurlijk dient ook beveiliging een factor te zijn in de
	  afweging of een gebruiker lid gemaakt moet worden van een
	  bepaalde groep, zeker als dat om de groep
	  <groupname>operator</groupname> gaat.</para>
      </note>
    </sect2>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->
