[OpenBSD]

[FAQ Index] [Naar Sectie 12 - Hardware- en Platform-Specifieke Vragen] [Naar Sectie 14 - Inrichting van de Schijf]

13 - Multimedia


Inhoudsopgave


13.1 - Hoe configureer ik mijn audio device?

De devices in OpenBSD die betrekking hebben op audio zijn: /dev/audio, /dev/sound, /dev/audioctl en /dev/mixer. Lees voor een goed overzicht van de audio driverlaag alstublieft de audio(4) manual pagina.

Alle ondersteunde audio drivers zijn reeds opgenomen in de GENERIC kernel, dus er is geen extra configuratie of installatie van drivers nodig. Om opties voor uw specifieke geluidschip te weten te komen, moet u achterhalen welke geluidschip u hebt. Ondersteunde chips kunnen teruggevonden worden op de hardware compatibiliteitspagina voor uw platform. Wanneer u reeds OpenBSD draait, zoek dan een geluidsdriver in de uitvoer van het dmesg(8) commando, en lees de manual page ervan om meer specifieke informatie zoals opties en andere details over de driver terug te vinden. Een voorbeeld van een audiochip in een dmesg uitvoer is:

auich0 at pci0 dev 31 function 5 "Intel 82801BA AC97" rev 0x04: irq 10, ICH2 AC97 ac97: codec id 0x41445360 (Analog Devices AD1885) ac97: codec features headphone, Analog Devices Phat Stereo audio0 at auich0

U kan testen of uw audio device al dan niet goed werkt door er een audiobestand (gewoonlijk met .au extensie) naartoe te sturen. Als u geen audiobestand hebt, kan u ook gelijk welk tekst- of binair bestand naar het device sturen:

$ cat filename > /dev/audio
Als u iets hoort (als het geen audiobestand is, zal het niet goed klinken en het kan ook luid klinken), betekent dit dat de chip ondersteund wordt door OpenBSD en tijdens het booten door de kernel herkend en geconfigureerd werd.

Opmerking: Niet elke variatie of gebruiksmogelijkheid van elke chip werd getest of gedebugged.

Indien u niets hoorde bij het ingeven van het bovenstaande commando, dan zijn er een aantal mogelijke redenen:

Merk op dat zelfs indien u een geluid hoorde, dat niet noodzakelijk betekent dat alles zal functioneren zoals gewenst. Indien u problemen krijgt bij het afspelen van geluid, dan is hier nog een lijstje om te controleren:

Om de parameters voor het audio device, zoals de bemonsteringssnelheid bij het afspelen, af te stemmen, kan u audioctl(1) gebruiken. Om het geluidsvolume en andere mixerinstellingen af te stemmen kan u mixerctl(1) gebruiken. Beide utilities zijn voorzien als onderdeel van het basissysteem.

Om bijvoorbeeld het geluidsvolume van het linker en het rechter kanaal in te stellen op 200, zou u bijvoorbeeld (zie Opmerking 2 hieronder) dit uitvoeren:

$ mixerctl outputs.master=200,200 outputs.master: 255,255 -> 207,207
Merk op hoe de waarde 207 wordt. De reden hiervoor is dat mijn audio device een AC'97 codec heeft, die slechts 5 bits gebruikt voor volumecontrole, wat leidt tot slechts 32 mogelijke waarden. Natuurlijk zou het kunnen dat andere hardware een verschillende resolutie heeft.

Om het masterkanaal te unmuten, zou u het volgende doen:

$ mixerctl outputs.master.mute=off outputs.master.mute: on -> off

Om uw wijzigingen permanent te maken, moet u /etc/mixerctl.conf bewerken, bijvoorbeeld:

$ cat /etc/mixerctl.conf outputs.master=200,200 outputs.master.mute=off outputs.headphones=160,160 outputs.headphones.mute=off
Opmerking 1: Het kan dat u meer uitgangen ziet dan er op uw geluidskaart of moederbord zijn. Dit komt doordat audiochips in het algemeen goedkoper zijn om op borden te monteren dan de jacks gebruikt om de uitgangen te verbinden, dus niet elke optie van elke audiochip bereikt noodzakelijk de buitenwereld.

Opmerking 2: Het is mogelijk dat de uitvoerkanalen van het audio device in uw systeem anders benoemd zijn. Het kan bijvoorbeeld dat u geen "outputs.master" hebt zoals in het bovenstaande voorbeeld, u kan in de plaats hiervan veeleer "outputs.output" of nog iets anders moeten aanpassen. Dit hangt af van de audio driver en u kan gemakkelijk de juiste naam terugvinden door de mixerbedieningen op te sommen met

$ mixerctl -a

13.2 - Verschillende soorten audio spelen

Digitale audio

Verliesvrije audioformaten (AU, PCM, WAV, FLAC, TTA)

Sommige verliesvrije audioformaten kunnen gespeeld worden zonder dat er software van derden nodig is, op voorwaarde dat ze de ongecomprimeerde digitale monsters in blokken van bytes bevatten. Deze formaten zijn o.a. Sun audio (AU), raw PCM bestanden (zonder hoofdingen), and RIFF WAV.

Om zulk een bestand te spelen, moet u zijn hoofdparameters kennen: type van codering, aantal kanalen, bemonsteringssnelheid, bits per monster. Indien u dit niet weet, zou u het kunnen te weten komen met de file(1) utility:

$ file music.au music.au: Sun/NeXT audio data: 16-bit linear PCM, stereo, 44100 Hz
$ file music.wav music.wav: Microsoft RIFF, WAVE audio data, 16 bit, stereo 44100 Hz
De enige overblijvende dingen om te weten over deze voorbeeldbestanden is dat ze little-endian byte-rangschikking en signed lineaire quantisatie gebruiken. U zou dit kunnen te weten komen door de hoofding te lezen met hexdump(1). Als u een bestand zonder hoofding (raw) gebruikt, is het niet mogelijk om op voorhand de parameters te kennen. Stel de volgende parameters overeenkomstig in met audioctl(1).
play.encoding=slinear_le play.rate=44100 play.channels=2 play.precision=16
Stuur vervolgens het audiobestand naar het sound device:
$ cat music.au > /dev/sound
Als u de juiste instellingen hebt toegepast, zou u moeten horen wat u verwachtte.

Opmerking: Gebruik steeds /dev/sound, niet /dev/audio, als u wil dat de instellingen die u met audioctl deed, van kracht blijven.

Er zijn nog andere utilities die u kan gebruiken, zoals aucat(1), en audio/waveplay in packages en ports. Natuurlijk kan ook populaire software zoals XMMS deze bestanden afspelen, naast andere audioformaten.

Los van het bovenstaande, zijn er audioformaten die verliesvrije gegevenscompressie gebruiken. Voorbeelden zijn de Free Lossless Audio Codec (FLAC) en TTA. De FLAC implementatie werd naar OpenBSD geported en kan teruggevonden worden onder audio/flac in packages en ports.

Audioformaten die compressie met verliezen gebruiken (Ogg Vorbis, MP3, WMA, AAC)

Compressiemethoden met verliezen worden vaak gebruikt voor audio of andere mediabestanden. De idee is dat een hoeveelheid gegevens weggegooid wordt tijdens het comprimeren, op zo'n manier dat het gecomprimeerde resultaat nog steeds heel bruikbaar is en voldoende kwaliteit heeft om gespeeld te worden. Het voordeel is dat deze technieken veel hogere compressiefactoren mogelijk maken, wat leidt tot lagere schijfruimte- en bandbreedtevereisten.

Een goed voorbeeld is het vrije, open en ongepatenteerde Ogg Vorbis formaat. Om Ogg Vorbis bestanden te spelen, kan u de ogg123 utility gebruiken, die gebundeld is in de audio/vorbis-tools package. Bijvoorbeeld:

$ ogg123 music.ogg Audio Device: Sun audio driver output Playing: music.ogg Ogg Vorbis stream: 2 channel, 44100 Hz Time: 00:02.95 [02:21.45] of 02:24.40 (133.1 kbps) Output Buffer 87.5%
Natuurlijk bestaan er Ogg Vorbis plugins voor veel andere audio software.

Een ander voorbeeld is de heel populaire MPEG-1 Audio Layer 3 (MP3) codering, die echter haar deel licentie- en patentproblemen heeft. Veel tools kunnen MP3 bestanden spelen, kijk eens in de audio sectie van het packages en ports systeem en kies er één uit die u bevalt.

Wat met het propriëtaire Windows Media Audio (WMA) formaat? Bestanden van dit type kunnen gespeeld worden met x11/mplayer die de FFmpeg omkadering gebruikt.

Een goed vertrekpunt om meer te leren over verschillende audio bestandsformaten is dit Wikipedia artikel: Audio file formats.

Het redden met vaste snelheid ("fixed rate") geluidsapparaten

Sommige geluidsapparaten kunnen alleen vaste bemonsteringssnelheden ("sample rates") spelen. Het kan bijvoorbeeld dat u een 22050 Hz bestand probeert af te spelen via een geluidschip die vast zit op 48000 Hz.

Er zijn audio utilities in de packages en ports collectie die met dit probleem afrekenen door herbemonstering ("rate resampling") uit te voeren. Zo heeft x11/mplayer bijvoorbeeld een "-srate" optie om een gewenste uitvoerbemonsteringssnelheid te specificeren. Die kan u dan instellen op de snelheid die uw geluidsapparaat gebruikt. KDE's artsd en bepaalde spelletjes ondersteunen gelijkaardige opties. Lees de documentatie van uw specifieke audio toepassing om te weten te komen of ze herbemonstering ondersteunt.

Gesynthetiseerd geluid

MIDI

Het Musical Instrument Digital Interface (MIDI) protocol biedt een gestandaardiseerde en efficiënte manier om muzikale uitvoeringsinformatie als elektronische gegevens voor te stellen. Een MIDI bestand kan heel erg klein zijn in vergelijking met een bemonsterd audiobestand, omdat het alleen instructies bevat die een synthesizer nodig heeft om de geluiden te spelen.

Twee wijd gebruikte technologieën in muzieksynthesizers zijn:

De meeste van de benodigde informatie over MIDI op OpenBSD kan gevonden worden in de midi(4) manual pagina.

De voornaamste utility om standaard MIDI bestanden te behandelen is midiplay(1). Om een lijst van MIDI devices te krijgen die beschikbaar zijn op uw systeem, probeert u het volgende:

$ midiplay -l 0: SB MIDI UART 1: SB Yamaha OPL3 2: PC speaker
In dit voorbeeld zien we de UART uitgang waaraan een extern MIDI-apparaat kan verbonden worden, de Yamaha OPL3 FM on-board synthesizer, en de goede oude speaker.

Opmerking: Niet alle geluidskaarten hebben een on-board MIDI synthesizer, dus het kan dat u alleen een UART uitgang en de PC speaker opgesomd ziet.

Een standaard MIDI bestand spelen, in dit geval via de OPL3 synthesizer, is zo gemakkelijk als:

$ midiplay -d 1 file.mid
Merk op dat we MIDI device nummer 1 als parameter specificeerden omdat standaard device nummer 0 gebruikt wordt.

Meer informatie: Tutorial on MIDI and Music Synthesis

MOD

Een Soundtracker module is een binair formaat dat audiomonsters mengt met sequentievolgordes, dit maakt het mogelijk om vrij lange digitale muziekstukken te spelen met redelijk goede kwaliteit.

De gemakkelijkste manier om uw favoriete MOD bestanden te spelen op OpenBSD is waarschijnlijk door de XMMS software te gebruiken, die beschikbaar is via packages en ports. U moet de -mikmod subpackage voor XMMS installeren om het de MikMod geluidsbibliotheek te laten gebruiken, die de MOD, S3M, IT en XM moduleformaten ondersteunt.

U zal ook een aantal zogenaamde "trackers" terugvinden in de audio sectie van de packages en ports verzameling, bv. tracker, soundtracker. Met deze trackers kan u niet alleen modules afspelen maar ook uw eigen modules genereren. Merk echter op dat niet elk trackerformaat ondersteund wordt door de tools in de ports tree. U bent altijd welkom om een port in te dienen van uw favoriete tracker software.

13.3 - Hoe kan ik audio CD's afspelen in OpenBSD?

Om een audio CD te spelen met de analoge uitgang van uw CD-ROM speler, kan u

Een fijne commandoregel-utility met de naam cdio(1) werd opgenomen in het base systeem. Aangeroepen zonder parameters zal het in interactieve modus gaan. Indien u de CD meteen wil afspelen, geef dan gewoon dit in:

$ cdio play

Dit zal standaard lezen vanaf de eerste CD-ROM speler, cd0. Merk op dat de gebruiker die cdio uitvoert permissies moet hebben om het CD-ROM apparaat (bv. /dev/rcd0c) te lezen. Aangezien dit apparaat standaard alleen leesbaar is door root of de operator groep, wil u misschien voor het gemak de gebruiker toevoegen aan de operator groep door de lijn voor deze groep aan te passen in /etc/group. Als alternatief kan u de bestandspermissies van het apparaat wijzigen zoals nodig.

Het kan gebeuren dat u de CD invoer van de mixer moet "unmuten" Net als de uitvoer, kan de eigenlijke naam van de invoer verschillen tussen systemen, maar u zal een commando gebruiken dat lijkt op:

$ mixerctl inputs.cd.mute=off

Als u een mooie GUI verkiest, zijn er veel X11-gebaseerde CD spelers in de packages en ports verzameling. Kijk gewoon eens in de audio sectie.

13.4 - Kan ik OpenBSD gebruiken om audiomonsters op te nemen?

Ja, om dit te doen kan u /dev/sound of /dev/audio als ingangsdevice gebruiken.

Stel eerst de relevante opnameparameters in met audioctl(1), bv.

record.encoding=mulaw record.rate=8000 record.channels=1 record.precision=8
Hier gebruik ik niet-uniforme quantisatie met het mu-law algoritme, met één kanaal, een bemonsteringssnelheid van 8000 Hz en met 8 bits per monster. De mu-law en A-law algoritmes zijn vooral nuttig bij het digitaliseren van spraaksignalen, omdat ze een hogere coderingsefficiëntie behalen. Dit betekent dat de kwaliteit van de bemonsterde spraak beter zal zijn voor een gegeven aantal bits per monster, of dat minder bits vereist zullen zijn voor een gegeven kwaliteit.

Als u beslist de bovenstaande waarden (alleen die!) over te nemen, kan u het /dev/audio device gebruiken, die ze standaard gebruikt, dus u hoeft ze in dat geval niet expliciet in te stellen.

Zorg vervolgens dat u het juiste device selecteert om van op te nemen en dat de bron geünmuted is. U kan de nodige parameters instellen met mixerctl(1). Bijvoorbeeld:

inputs.mic.mute=on inputs.mic.preamp=on inputs.mic.source=mic0 record.source=mic record.volume=255,255 record.volume.mute=off record.mic=0 record.mic.mute=off
In dit voorbeeld zal ik opnemen met een microfoon. Voorversterking werd ingeschakeld, anders kan het opgenomen geluid vrij stil klinken.

Om de eigenlijke opname te doen, gebruikt u gewoon cat(1) of dd(1):

$ dd if=/dev/audio of=myvoice.raw
Druk [CTRL]-C om de opname te beëindigen. De uitvoer is een ruwe sequentie van bytes. Dit geluid kan gespeeld worden zoals uitgelegd in Verschillende soorten audio spelen. Voor een snelle test, in de veronderstelling dat de audioparameters juist zijn ingesteld:
$ dd if=myvoice.raw of=/dev/audio

Opnieuw, als u andere coderingsparameters instelt, moet u het /dev/sound device gebruiken. Een ander voorbeeld van coderingsparameters:

record.encoding=slinear_le record.rate=22050 record.channels=2 record.precision=8
Dit zal leiden tot PCM met signed lineaire (uniforme) quantisatie, opgeslagen met little-endian byte-volgorde, met een bemonsteringssnelheid van 22050 Hz, in stereo, en met 8 bits om één monster voor te stellen (2^8 = 256 quantisatieniveaus).

Opmerking: U zal deze opname in het ruwe formaat (zonder hoofdingen) waarschijnlijk willen omzetten naar een meer bruikbaar formaat voor verdere verwerking. Lees FAQ 13 - Omzetting om hierover meer te weten te komen.

13.5 - Vertel me eens over Ogg Vorbis en MP3 codering?

Deze formaten werden reeds vermeld in Verschillende soorten audio spelen. In deze sectie zullen we een korte inleiding geven over het coderen van zulke bestanden. Als u geïnteresseerd bent te leren hoe deze audiocompressie-codecs werken, kan verder leesvoer gevonden worden via deze Wikipedia artikels over Vorbis en MP3.

Ogg Vorbis

Het coderen van raw, WAV of AIFF formaat audio naar Ogg Vorbis kan gedaan worden met de oggenc utility, opgenomen in de audio/vorbis-tools package, die beschikbaar is via OpenBSD's packages en ports systeem.

Stel dat u een aantal WAV bestanden klaar hebt om te coderen, bijvoorbeeld uw favoriete album dat u net van zijn CD haalde. Om al deze bestanden te coderen met een benaderende bitsnelheid van 192 kbps, zou u een commando als dit kunnen ingeven:

$ oggenc *.wav -b 192
Wanneer dit klaar is, zal dit u een stel .ogg bestanden geven in de huidige directory. Meer uitgebreide voorbeelden en coderingsopties kunnen teruggevonden worden in de oggenc manual pagina.

MPEG-1 Audio Layer 3 (MP3)

Als u om één of andere reden het MP3 formaat wil gebruiken, kan u "Lame ain't an MP3 encoder" (LAME) gebruiken, een onderwijs-tool om te gebruiken om over MP3 codering te leren. Lame zit in de OpenBSD ports tree. Merk op dat wegens MP3 patenten, u deze package niet zal terugvinden op de officiële CD sets.

Hieronder staat een eenvoudig voorbeeld van het coderen van een WAV bestand met een bit rate van 192 kbps:

$ lame -b 192 track01.wav track01.mp3
Raadpleeg voor alle opties en details alstublieft de manual pagina die bij lame zit.

13.6 - Hoe kan ik video DVD's afspelen in OpenBSD?

OpenBSD ondersteunt DVD media via het ISO 9660 bestandssysteem dat ook op CD-ROMs gebruikt wordt, en, sinds OpenBSD 3.8, ook via het nieuwere Universal Disk Format (UDF) bestandssysteem dat men op sommige DVD's aantreft. Bijna alle DVD-Video en DVD-ROM schijfjes gebruiken echter het UDF bridge formaat, dat een combinatie is van de DVD MicroUDF (subset van UDF 1.02) en ISO 9660 bestandssystemen. Het wordt gebruikt omwille van achterwaartse compatibiliteit.

Aangezien de meeste computers met DVD-ROM spelers softwaredecodering gebruiken, is het aanbevolen om ten minste een 350-MHz Pentium II of gelijkwaardige CPU te hebben om een goede kwaliteit bij het afspelen te verkrijgen.

Enkele populaire mediaspelers, die ook het afspelen van DVD's ondersteunen, werden naar OpenBSD geported. Voorbeelden zijn ogle, mplayer, xine en kaffeine. Lees alstublieft de installatie-instructies die bij deze packages zitten, omdat deze tools bijkomende instellingen kunnen nodig hebben. Met deze utilities is het mogelijk om de DVD af te spelen door rechtstreeks het raw device te benaderen. Natuurlijk is het ook mogelijk om een DVD eerst te mounten met mount_cd9660(8), en de bestanden op dit of gelijk welk ander gemount bestandssysteem te spelen.

Opmerkingen:

13.7 - Hoe brand ik CD's en DVD's?

13.7.1 - Inleiding en basisinstellingen

U moet er eerst voor zorgen dat uw CD/DVD-schrijver door de kernel herkend en geconfigureerd werd. De meeste SCSI devices worden ondersteund. IDE/ATAPI en USB devices worden ondersteund via SCSI emulatie. U zal snel uw device terugvinden in een dmesg(8) uitvoer. Zoek gewoon lijnen die beginnen met "cd", bijvoorbeeld
cd0 at scsibus0 targ 0 lun 0: <TOSHIBA, CD-ROM XM-5702B, 2826> SCSI0 5/cdrom removable cd1 at scsibus1 targ 4 lun 0: <PLEXTOR, CD-R PX-R412C, 1.04> SCSI2 5/cdrom removable

Maar cdrecord -scanbus werkt niet!

Ja. OpenBSD gebruikt een verschillende device naamruimte dan het BS waarvoor de cdrecord utility werd geschreven. Alle geconfigureerde devices zouden in de dmesg uitvoer moeten staan, zoals hierboven vermeld. De informatie die u nodig hebt staat daar.

Fout: mount_cd9660: /dev/cd2c on /mnt/cdrom: No such file or directory

Standaard maakt het OpenBSD installatieprogramma slechts twee cd device nodes, cd0 en cd1. Om uw cd2 device beginnen te gebruiken, moet u de nodige device nodes ervoor aanmaken. De aanbevolen manier om dat te doen is met het MAKEDEV(8) (selecteer uw specifiek platform) script:
# cd /dev # ./MAKEDEV cd2
In wat volgt, zullen we de CD/DVD-schrijver meestal benaderen via het raw karakter-device, niet het blok-device.

Werking van de CD/DVD-schrijver controleren

Het is aanbevolen om te controleren of uw CD/DVD-schrijver juist werkt. In dit voorbeeld zal ik deze USB 2.0 DVD schrijver gebruiken:
cd2 at scsibus2 targ 1 lun 0: <LITE-ON, DVDRW LDW-851S, GS0C> SCSI0 5/cdrom removable
Probeer hem te gebruiken door er een bestaande CD/DVD in te mounten. Indien gewenst, zou u ook de overdrachtsnelheid kunnen nagaan die u krijgt wanneer u bestanden naar uw harde schijf kopieert. Het time(1) commando zal uw gewillige assistent zijn.

Als er hier iets verkeerd gaat en u krijgt fouten tijdens deze fase, dan is het slim om het probleem op te lossen en nog niet te beginnen met een CD/DVD te schrijven.

Ik wil hier een CD schrijven! Kunnen we een beetje voortmaken?

Alvorens verder te gaan, is het een goed idee om enkele woorden van goede raad in het achterhoofd te houden:

13.7.2 - CD's schrijven

Gegevens CD-ROMs aanmaken

Eerst zal u een ISO 9660 bestandssysteem willen aanmaken om op een CD-ROM te zetten. Om dit te doen kan u de mkhybrid(8) utility in het basissysteem gebruiken, ofwel de mkisofs utility die bij de cdrtools package zit en die beter werkt met grote file trees. In de voorbeelden hieronder zullen we mkhybrid gebruiken, hoewel het gebruik van mkisofs heel gelijkaardig is.

Stel als voorbeeldgebruik dat ik de OpenBSD kernel broncode in een ISO 9660 image wil opslaan:

$ mkhybrid -R -o sys.iso /usr/src/sys Using ALTQ_RMC.000;1 for /usr/src/sys/altq/altq_rmclass_debug.h (altq_rmclass.h) ... Using IEEE8021.00H;1 for /usr/src/sys/net80211/ieee80211_amrr.c (ieee80211.c) 10.89% done, estimate finish Sat Nov 3 08:01:23 2007 21.78% done, estimate finish Sat Nov 3 08:01:28 2007 ... 87.12% done, estimate finish Sat Nov 3 08:01:31 2007 98.01% done, estimate finish Sat Nov 3 08:01:32 2007 Total translation table size: 0 Total rockridge attributes bytes: 896209 Total directory bytes: 2586624 Path table size(bytes): 11886 Max brk space used 0 45919 extents written (89 Mb)

De -R optie zegt mkhybrid om Rock Ridge extensies aan te maken in de ISO 9660 image. Het Rock Ridge Interchange Protocol werd gemaakt om POSIX bestandssysteem semantiek te ondersteunen in ISO 9660 bestandssystemen, zoals langere bestandsnamen, eigendom, permissies, bestandslinks, soft links, device nodes, diepe bestandshiërarchieën (meer dan 8 niveaus van subdirectories), enz.

Als u wil dat de lange bestandsnamen op uw CD-ROM leesbaar zijn op Windows of DOS systemen, moet u de -J vlag toevoegen om Joliet extensies op te nemen in de ISO 9660 image.

Na het bestandssysteem aan te maken, kan u het verifiëren door de ISO 9660 image te mounten. Als alles goed gaat, bent u nu klaar om de CD-R(W) te branden. De gemakkelijkste manier om dit te doen is met de cdio(1) utility.

Als u multi-write media zoals CD-RW gebruikt, moet u het medium blanco maken alvorens het te branden.

# cdio -f cd1c blank
U bent nu klaar om de image aangemaakt in het bovenstaande voorbeeld op een lege CD-R(W) te branden. U zou een commando kunnen gebruiken gelijkaardig aan:
# cdio -f cd1c tao sys.iso
Met de opties hierboven gespecificeerd, vragen we cdio om het tweede CD-ROM apparaat als CD-schrijver te gebruiken.

Om te verifiëren of de CD-ROM juist geschreven werd, kan u hem mounten en nagaan of alles er op staat. Om het bestandssysteem te mounten, moet u het block device gebruiken voor de CD-ROM lezer, die in dit geval nog steeds de CD-schrijver is:

# mount /dev/cd1c /mnt/cdrom

Audio CD's aanmaken

Om audio CD's te branden, kan u opnieuw cdio(1) gebruiken met de tao -a optie.

Als voorbeeld zal ik een veiligheidskopie maken van één van mijn muziek-CD's. Dit omvat twee stappen:

  1. Haal de audio tracks van de originele CD. Bijvoorbeeld:
    # cdio -f cd1c cdrip
    Dit commando zal een reeks WAV bestanden uitpakken vanaf uw tweede CD-ROM speler naar uw schijf.
  2. Schrijf de audio tracks naar een lege CD. Bijvoorbeeld:
    # cdio -f cd1c tao -a *.wav

13.7.3 - DVD's schrijven

Er zijn een aantal belangrijke dingen over DVD die u zou moeten weten alvorens verder te gaan met het schrijven van uw eigen DVD's.

Belangrijke opmerkingen:

Verschillende DVD formaten

Er zijn een aantal verschillende DVD formaten. Vaak gebruikt zijn de DVD-R, DVD-RW, en DVD+RW formaten (R betekent éénmalig beschrijfbaar, RW betekent dat het enkele duizenden keren kan overschreven worden). Dit zijn eigenlijk nogal concurrerende standaarden.

Een behoorlijk verschillend formaat is DVD-RAM, dat hoofdzakelijk ontwikkeld werd als een gegevensschijf en geavanceerde pakketschrijffuncties heeft, wat toelaat dat het als een soort optische harde schijf gebruikt wordt. DVD-RAM is niet aanbevolen voor videogebruik aangezien video op de schijfjes geschreven wordt in een formaat dat niet compatibel is met normale DVD spelers.

Het belangrijkste is dat u media gebruikt die passen bij uw DVD schrijver. Als u compatibiliteit met andere DVD spelers verwacht, pas dan op uw stappen en lees zeker deze sectie van de DVD FAQ.

DVD schrijfsnelheid

Het kan nuttig zijn om toe te lichten dat DVD snelheidsindicaties verschillen van CD-ROM snelheidsindicaties. De volgende tabel geeft een overzicht:

DVD lees/schrijfsnelheid Overdrachtsnelheid (MB/s) Equivalente CD-R(W) lees/schrijfsnelheid
1x 1.32 9x
2x 2.64 18x
4x 5.28 36x
8x 10.57 72x

Zoals gezien kan worden in de tabel, zijn de overdrachtssnelheden relatief hoog, en moet u nagaan of uw bus (SCSI, (E)IDE/ATAPI, USB) voldoende performant is om deze doorvoer aan te kunnen. Vooral de oudere USB 1.0 en 1.1 interfaces werken aan tragere overdrachtssnelheden, met maximale snelheden van respectievelijk 1.5 Mbit/s en 12 Mbit/s. Dat betekent dat USB 1.0 een maximale doorvoer van 178.8 kByte/s heeft en USB 1.1 een maximale doorvoer heeft van 1.43 MB/s. USB 2.0 is veel sneller: 480 Mbit/s of 57.2 MB/s. In het algemeen zou de snelheid van SCSI en (E)IDE/ATAPI bussen moeten volstaan.

De DVD schrijven

Het proces is heel gelijkaardig aan het schrijven van CD-R(W)'s. De gebruikte software is echter verschillend. Op dit ogenblik is de beste optie growisofs uit de sysutils/dvd+rw-tools package. Deze utility schrijft een ISO 9660 image op het DVD medium. Alle recordable DVD formaten worden ondersteund door de dvd+rw-tools.

In het geval u meer wil te weten komen over het medium in uw DVD schrijver (bijvoorbeeld als u het info label in de jewel case kwijt bent of gewoon ongeorganiseerd bent zoals ik), kan u de dvd+rw-mediainfo utility gebruiken. Er zijn twee mogelijkheden om de DVD te schrijven:

Ik maakte een pre-mastered ISO 9660 image vanuit de OpenBSD CVS modules (src, XF4, ports en www) die in de /cvs directory op mijn schijf staan. Ik gebruikte het volgende commando, dat er heel gelijkaardig uitziet aan datgene dat ik gebruikte om de CD-ROM image hierboven te maken.

$ mkisofs -R -o cvs.iso /cvs
Controleer indien gewenst het ISO 9660 bestandssysteem door de image te mounten. Om deze image (ongeveer 2 GB) naar een lege DVD schijf te schrijven, kan men het volgende gebruiken:
# growisofs -dvd-compat -Z /dev/rcd2c=cvs.iso Executing 'builtin_dd if=cvs.iso of=/dev/rcd2c obs=32k seek=0' /dev/rcd2c: pre-formatting blank DVD+RW... /dev/rcd2c: "Current Write Speed" is 4.1x1385KBps. 23822336/1545832448 ( 1.5%) @3.9x, remaining 5:19 42172416/1545832448 ( 2.7%) @3.9x, remaining 5:20 60522496/1545832448 ( 3.9%) @3.9x, remaining 4:54 ... 1504706560/1545832448 (97.3%) @3.9x, remaining 0:07 1523318784/1545832448 (98.5%) @3.9x, remaining 0:04 1541898240/1545832448 (99.7%) @3.9x, remaining 0:00 /dev/rcd2c: flushing cache /dev/rcd2c: writing lead-out /dev/rcd2c: reloading tray
De -Z optie zegt growisofs om een initiële sessie op het device te branden, dat in dit geval mijn DVD schrijver is, gekoppeld aan cd2. De -dvd-compat optie sluit de schijf, wat betekent dat er geen sessies meer aan kunnen toegevoegd worden. Dit zou betere compatibiliteit moeten bieden met video DVD spelers en sommige oudere DVD-ROM spelers.

Merk op hoe growisofs de schrijfsnelheid aangeeft, in dit geval 3.9x DVD snelheid, dat is wat verwacht kon worden van de medium en schrijver combinatie, zoals aangegeven door dvd+rw-mediainfo.

Als u weinig schijfruimte hebt en geen ISO 9660 image voor een DVD kan bewaren, dan kan u de gegevens rechtstreeks op de DVD schrijven. Laten we eerst een test doen, die het aanmaken van het bestandssysteem simuleert.

# growisofs -dry-run -Z /dev/rcd2c -R /cvs
Als dit lukt, laat dan gewoon de -dry-run optie er uit en begin de DVD te branden.
# growisofs -Z /dev/rcd2c -R /cvs

Het is ook mogelijk om gegevens toe te voegen aan een bestaande DVD door de -M optie te gebruiken, die een nieuwe sessie samensmelt met een bestaande:

# growisofs -M /dev/rcd2c -R /mydata
Raadpleeg voor meer informatie over growisofs de manual pagina.

Wanneer u het schrijven van de DVD beëindigd hebt, mount hem dan en kijk of alles wat u verwachtte dat er zou op staan, er inderdaad op staat.

Waarom krijg ik niet de schrijfsnelheid die ik verwachtte?

In plaats van de bovenstaande schrijfuitvoer, kan u iets als dit zien:
4784128/1545832448 ( 0.3%) @0.7x, remaining 26:50 7929856/1545832448 ( 0.5%) @0.7x, remaining 29:05 14123008/1545832448 ( 0.9%) @0.7x, remaining 27:06 ...
wat veel trager is. Dit betekent dat u op één of andere manier niet voldoende doorvoer krijgt op de bus die uw DVD schrijver gebruikt. In het bovenstaande voorbeeld was de USB DVD writer gekoppeld aan een machine waarop de ehci(4) driver, gebruikt door USB 2.0 controllers, niet juist geïnitialiseerd werd. Zoals steeds bent u welkom om patches en testresultaten aan te bieden. De DVD schrijver viel terug op de tragere USB 1.1 interface, wat zorgt voor verlaagde doorvoer. Inderdaad, USB 1.1 is beperkt tot 12 Mbit/s, wat neerkomt op 1.43 MB/s of 1.08x in termen van DVD-snelheid. De DVD schrijver valt terug tot een lagere snelheid om het risico op buffer underruns te verlagen.

13.8 - Maar ik wil mijn mediabestanden in het formaat FOO.

Omzetting tussen verschillende audioformaten

Stel dat we de geluidsopname uit FAQ 13 - Audio Opname willen verwerken. Deze opname werd opgeslagen in het ruwe formaat. Het zal nuttig zijn om ze om te zetten omdat het ruwe formaat geen hoofdingen bevat en de opnameparameters bij elk gebruik van het bestand opnieuw zullen moeten gespecificeerd worden.

Eén geluidomzettingstool is audio/sox, beschikbaar via packages en ports. sox ondersteunt AIFF, AU, MP3, Ogg Vorbis, RIFF WAV en ruwe formaten, maar ook enkele van de meer exotische audioformaten. Hieronder volgt een voorbeeld om de opname naar RIFF WAV formaat om te zetten.

$ sox -U -c 1 -r 8000 -b myvoice.raw myvoice.wav
Merk op dat de gespecificeerde parameters overeenstemmen met de opnameparameters gespecificeerd vóór de opname. Dit was slechts een voorbeeld. Er kunnen nog meer audio-gerelateerde libraries en software gebruikt worden voor audio-omzetting.

Opmerking: Het is niet aangeraden om te zetten tussen verschillende compressieformaten met verliezen. De MP3 en Vorbis codecs gooien bijvoorbeeld verschillende delen weg van een oorspronkelijke audio golfvorm. Daarom zal bij de omzetting van een MP3 bestand naar Ogg Vorbis het eindresultaat waarschijnlijk slechter klinken dan de oorspronkelijke MP3.

Omzetting tussen verschillende videoformaten

Het is belangrijk een duidelijk onderscheid te maken tussen In OpenBSD is de ondersteuning voor MPEG en AVI containers het meest volwassen op dit moment. Er zijn in de ports tree nog geen utilities die streams in MP4 containers kunnen aanmaken.

Twee populaire utilities zijn multimedia/transcode en mencoder (onderdeel van x11/mplayer). Ze gebruiken de libavcodec library als onderdeel van de graphics/ffmpeg port, die uitvoer met goede kwaliteit genereert. U kan natuurlijk ook rechtstreeks ffmpeg gebruiken. Het zou ook moeten mogelijk zijn om de XviD encoder in multimedia/xvidcore te gebruiken.

De documentatie die bij deze packages zit, onder de vorm van manual pagina's of HTML documenten in /usr/local/share/doc, bevat vele voorbeelden, dus het is TEN ZEERSTE aanbevolen om die documenten te lezen.

13.9 - Is het mogelijk om streaming media af te spelen onder OpenBSD?

Ja, dat is mogelijk. Vele audio en video streams zullen gewoon prima werken, op een beperkt aantal platformen. Enkele ervan zullen niet werken.

Dit is niet bedoeld om een volledig, uitermate gedetailleerd antwoord te zijn om ieder mogelijk streamingformaat te laten werken op gelijk welke hardware-architectuur. U wil misschien om te beginnen iets meer leren over streaming media. Een lichtjes gedateerd maar nog steeds een goed vertrekpunt is dit hoofdstuk over streaming media uit het O'Reilly boek getiteld Designing Web Audio.

Het eerste dat u moet begrijpen is dat er een aantal verschillende streaming protocols zijn. Het streaming protocol definieert hoe de streams over het netwerk zullen gezonden worden. Ze werden ontwikkeld om efficiënte transmissie van audio/video over het internet toe te laten in real-time. Meestal is het streaming protocol een (Laag 7) applicatieprotocol, dat ofwel UDP ofwel TCP (Laag 4) transportprotocols kan gebruiken. Het User Datagram Protocol (UDP) is heel geschikt voor dit soort van toepassing aangezien het geen heruitzending van pakketten of andere overhead doet. Er werden een aantal gespecialiseerde maar propriëtaire protocols ontwikkeld, bv. Microsoft Media Services (MMS) en het Real Time Streaming Protocol (RTSP). Zoals we zullen zien, wordt soms ook HTTP gebruikt (dat op zijn beurt TCP gebruikt), ook al laat het niet toe om streams aan een gelijkmatige bitsnelheid te leveren zoals UDP, RTSP en MMS dat kunnen.

Vervolgens is er het streaming formaat, dat is hoe de audio/video gegevens georganiseerd zijn en afgespeeld kunnen worden. De meest gebruikte streamingformaten zijn MP3, Real Audio (RA, RM) en Windows Media (ASF), allemaal propriëtaire technologieën. Soms zal u ook streams in het open Ogg Vorbis formaat tegenkomen.

Als voorbeeld zal ik in enkele stappen uitleggen hoe ik kan luisteren naar Radio 1, één van de Belgische nationale radiostations. Browser plugins zijn niet beschikbaar op OpenBSD, dus het verhaal is gewoonlijk niet dadelijk "klikken en spelen".

Windows Media (ASF) streams zullen vaak werken, hoewel ze gegevens kunnen bevatten in formaten die alleen ondersteund worden via de graphics/win32-codecs port, die alleen op i386 draait ('pkg_info win32-codecs' zal u zeggen welke codecs). Bepaalde Real Audio streams kan men laten werken op i386 met mplayer in samenwerking met de graphics/win32-codecs en emulators/fedora/base ports (zie deze thread op de ports mailinglijst).

13.10 - Kan ik een Java plugin in mijn web browser krijgen? (alleen i386)

De Java plugin is een onderdeel van de Java Development Toolkit (JDK). Om licentieredenen kan OpenBSD geen binaire packages verdelen voor de JDK. Dit betekent dat u hem vanuit ports zal moeten bouwen. Meer informatie over het bouwen van de JDK kan u vinden in FAQ 8 - Programmeertalen. Zodra u klaar bent met het bouwen van de JDK, kan u ofwel de volledige JDK package installeren ofwel enkel de Java Runtime Environment (JRE) die in een subpackage zit en de browser plugin bevat.

Bij de installatie worden instructies getoond voor gebruik van de Java plugin met een Firefox of Mozilla web browser. Maak de symlink aan zoals uitgelegd, en vervolgens zou u de Java plugin moeten zien wanneer u "about:plugins" ingeeft in de URL balk.

Opmerking: De Java plugin werd enkel getest met de Firefox en Mozilla browsers. Als hij bij u goed werkt met een andere browser, laat het ons dan alstublieft weten.

13.11 - Kan ik een Flash plugin in mijn web browser krijgen? (alleen i386)

De Flash plugin wordt door Adobe alleen in binaire vorm verdeeld. Adobe voorziet geen "native" OpenBSD plugin, maar er is een Linux plugin die u kan gebruiken onder Linux emulatie. Deze plugin is alleen beschikbaar voor het i386 platform.

Alvorens verder te gaan, is het een goed idee om over Linux emulatie te lezen in de compat_linux(8) manual pagina, en ook FAQ 9 - Linux binaries draaien op OpenBSD.

Als u dit begrepen hebt en de nodige bestanden nog niet hebt geïnstalleerd, voeg dan gewoon de fedora package toe. In de veronderstelling dat u de omgevingsvariabele PKG_PATH ingesteld hebt (zie FAQ 15),

# pkg_add -i fedora_base
Dit zal automatisch kern.emul.linux=1 instellen, maar niet blijvend. Indien u permanente Linux emulatie nodig hebt, moet u dat specificeren in /etc/sysctl.conf, zoals uitgelged in FAQ 9 - Linux binaries draaien op OpenBSD.

Nog iets anders dat u moet weten, is dat Linux "shared libraries" en modules niet kunnen gebruikt worden met OpenBSD executables, dus u zal ook een Linux browser nodig hebben.

Een kandidaat is de Opera web browser, beschikbaar in de ports tree. OpenBSD verdeelt er geen packages voor, aangezien de licentie van Opera niet duidelijk is met betrekking tot herdistributie ervan. Installatie hoeft echter niet lang te duren, aangezien de browser al in binaire vorm verdeeld wordt door Opera Software. Nadien kan u gemakkelijk de Flash plugin installeren via de ports tree.

# cd /usr/ports/www/opera # make install # cd /usr/ports/www/opera-flashplugin # make install

Opmerking: Het zou moeten volstaan om alleen de laatste stap uit te voeren, en het ports systeem zal de dependencies automatisch installeren. Voor de duidelijkheid hebben we het proces hier echter opgesplitst in enkele stappen om het uit te leggen.

Als u de bovenstaande richtlijnen gevolgd hebt, zou de Flash plugin nu moeten getoond worden wanneer u "about:plugins" typt in de URL balk.

[FAQ Index] [Naar Sectie 12 - Hardware- en Platform-Specifieke Vragen] [Naar Sectie 14 - Inrichting van de Schijf]


[terug] www@openbsd.org
$OpenBSD: faq13.html,v 1.28 2007/12/09 14:56:37 tobias Exp $