diff options
Diffstat (limited to 'documentation/content/hu/books/handbook/multimedia/_index.adoc')
-rw-r--r-- | documentation/content/hu/books/handbook/multimedia/_index.adoc | 1093 |
1 files changed, 1093 insertions, 0 deletions
diff --git a/documentation/content/hu/books/handbook/multimedia/_index.adoc b/documentation/content/hu/books/handbook/multimedia/_index.adoc new file mode 100644 index 0000000000..dadf4a8ce0 --- /dev/null +++ b/documentation/content/hu/books/handbook/multimedia/_index.adoc @@ -0,0 +1,1093 @@ +--- +title: 7. Fejezet - Multimédia +part: II. Rész Gyakori feladatok +prev: books/handbook/desktop +next: books/handbook/kernelconfig +--- + +[[multimedia]] += Multimédia +:doctype: book +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:source-highlighter: rouge +:experimental: +:skip-front-matter: +:toc-title: Tartalom +:table-caption: Táblázat +:figure-caption: Ábra +:example-caption: Példa +:xrefstyle: basic +:relfileprefix: ../ +:outfilesuffix: +:sectnumoffset: 7 + +ifeval::["{backend}" == "html5"] +:imagesdir: ../../../images/books/handbook/multimedia/ +endif::[] + +ifeval::["{backend}" == "pdf"] +:imagesdir: ../../../../static/images/books/handbook/multimedia/ +endif::[] + +ifeval::["{backend}" == "epub3"] +:imagesdir: ../../../../static/images/books/handbook/multimedia/ +endif::[] + +include::shared/authors.adoc[] +include::shared/releases.adoc[] +include::shared/hu/mailing-lists.adoc[] +include::shared/hu/teams.adoc[] +include::shared/hu/urls.adoc[] + +toc::[] + +[[multimedia-synopsis]] +== Áttekintés + +A FreeBSD a hangkártyák széles választékát ismeri, ami által képesek vagyunk számítógépünkkel hi-fi minõségû hangzást létrehozni. Ennek részeként rögzíteni és visszajátszani tudunk többek közt MPEG Audio Layer 3 (MP3), WAV és Ogg Vorbis formátumokban. A FreeBSD Portgyûjteménye ezenkívül tartalmaz még olyan alkalmazásokat is, amelyekkel szerkeszteni lehet a felvett hangokat, effekteket hozzátenni és vezérelni a hangkártyánkhoz csatlakoztatott MIDI eszközöket. + +Némi kísérletezéssel a FreeBSD még videoállományok és DVD-k lejátszására is rávehetõ. A különféle videoanyagok kódolására, konvertálására és visszajátszására alkalmas programok száma azonban jóval kisebb, mint a hanganyagok esetén. Például az írás pillanatában nincs a FreeBSD Portgyûjteményében a formátumok közti konvertálásra alkalmas, a videókat olyan jól újrakódolni tudó alkalmazás, amilyen az audio esetén az package:audio/sox[]. Azonban ezen a területen a szoftverek palettája gyorsan változik. + +Ebben a fejezetben bemutatjuk a hangkártyánk beállításához szükséges lépéseket. Az X11 telepítése és beállítása (crossref:x11[x11,Az X Window System]) során ugyan már foglalkoztunk a videokártyánkkal kapcsolatos hardveres problémákkal, azonban a jobb visszajátszás érdekében további cselfogásokat is be kell majd vetnünk. + +A fejezet elolvasása során megismerjük: + +* hogyan állítsuk be úgy a rendszerünket, hogy felismerje a hangkártyánkat; +* hogyan bizonyosodjuk meg róla, hogy a kártyánk valóban mûködik; +* hogyan oldjuk meg a hangkártya beállítása során felmerülõ problémákat; +* hogyan játsszunk le és kódoljunk MP3-at vagy más egyéb hangformátumot; +* hogyan támogatja a videokat az X szerver; +* hogyan adnak az egyes lejátszók és kódolók még jobb eredményt +* hogyan játsszunk le DVD-ket, [.filename]#.mpg# és [.filename]#.avi# állományokat; +* hogyan mentsük a CD-k és DVD-k tartalmát állományokba; +* hogyan állítsuk be a TV kártyánkat +* hogyan állítsunk be egy scannert. + +A fejezet elolvasásához ajánlott: + +* egy új rendszermag beállításának és telepítésének ismerete (crossref:kernelconfig[kernelconfig,A FreeBSD rendszermag testreszabása]). + +[WARNING] +==== + +Ha zenei CD-ket próbálunk meg a man:mount[8] paranccsal csatlakoztatni, akkor az hibával, vagy a legrosszabb esetben akár _teljes rendszerösszeomlással_ is járhat. Az ilyen típusú lemezek az ISO szabványú állományrendszerekétõl eltérõ kódolással rendelkeznek. +==== + +[[sound-setup]] +== A hangkártya beállítása + +[[sound-device]] +=== A rendszer beállítása + +A mûvelet megkezdése elõtt ki kell derítenünk, milyen típusú hangkártyánk van, milyen chip van rajta, PCI vagy ISA buszon csatlakozik-e. A FreeBSD rengeteg PCI és ISA buszos kártyát ismer egyaránt. A sajátunk beazonosításához a támogatott hangeszközök listáját a link:{u-rel120-hardware}[Hardware Notes] (Hardverjegyzék) oldalán találhatjuk meg. Ebbõl a jegyzékbõl mellesleg azt is megtudhatjuk, hogy melyik meghajtó kezeli a kártyánkat. + +A hangeszközünk használatához be kell töltenünk a neki megfelelõ meghajtót. Ez két módon is megtehetõ. Ezek közül az a legkönnyebb, ha a man:kldload[8] paranccsal egyszerûen betöltjük a rendszermag hangkártyánkhoz tartozó modulját. Ezt megtehetjük közvetlenül parancssorból: + +[source,bash] +.... +# kldload snd_emu10k1 +.... + +vagy a [.filename]#/boot/loader.conf# állományból az alábbihoz hasonló sor hozzáadásával: + +[.programlisting] +.... +snd_emu10k1_load="YES" +.... + +A fenti példák a Creative SoundBlaster(R) Live! hangkártyára vonatkoznak. A többi betölthetõ hangkártya-modul felsorolása a [.filename]#/boot/defaults/loader.conf# állományban található. Ha nem vagyunk benne biztosak, hogy melyik meghajtót is akarjuk pontosan használni, akkor próbálkozzunk az [.filename]#snd_driver# modul betöltésével: + +[source,bash] +.... +# kldload snd_driver +.... + +Ez egy olyan metameghajtó, ami egyszerre betölti az összes érintett eszközmeghajtót, és segítségével felgyorsíthatjuk a megfelelõ meghajtó megtalálását. A [.filename]#/boot/loader.conf# használatával is be tudjuk ugyanígy tölteni az összes meghajtót. + +Az [.filename]#snd_driver# metameghajtó betöltése után úgy kereshetjük meg a ténylegesen használatban levõ meghajtót, ha megnézzük a [.filename]#/dev/sndstat# állományt a `cat /dev/sndstat` paranccsal. + +A második módszer szerint a hangkártyánk támogatását statikusan beépítjük a rendszermagba. A lentebb található szakaszban olvashatjuk mindazok az információkat, amelyekre szükségünk lehet ennek elvégzése közben. A rendszermag újrafordításával kapcsolatban forduljunk a crossref:kernelconfig[kernelconfig,A FreeBSD rendszermag testreszabása]hez. + +==== A hangkártya támogatásával rendelkezõ saját rendszermag összeállítása + +Elsõként hozzá kell adnunk a rendszermaghoz a hangeszközök alapmeghajtóját, a man:sound[4] eszközt. Ezt a rendszermag beállításait tartalmazó állományban az alábbi sor felvételével tehetjük meg: + +[.programlisting] +.... +device sound +.... + +Ezután tegyük még hozzá a hangkártyánkhoz kapcsolódó támogatást is. Ehhez viszont pontosan tudunk kell, melyik meghajtó képes mûködtetni a kártyát. A hangkártyához tartozó meghajtót a link:{u-rel120-hardware}[Hardware Notes] (Hardverjegyzék)-ben található eszközök listájából deríthetjük ki. Például a Creative SoundBlaster(R) Live! hangkártyát a man:snd_emu10k1[4] meghajtó kezeli. Ennek a hangkártyának a támogatását az alábbi sorral állíthatjuk be: + +[.programlisting] +.... +device snd_emu10k1 +.... + +Az itt használatos formátumot a meghajtó man oldalának átolvasásából tudhatjuk meg. Azonban az összes támogatott hangkártya meghajtó megadásának pontos formátuma megtalálható a [.filename]#/usr/src/sys/conf/NOTES# állományban is. + +A PnP (Plug n Play)-t nem ismerõ ISA kártyák esetén az összes többi nem PnP-s ISA kártyához hasonlóan szükséges lehet a rendszermag számára megadnunk a kártya hardveres beállításait (IRQ, I/O port stb). Ezt a [.filename]#/boot/device.hints# állományon keresztül tehetjük meg. A rendszerindítási folyamat során a man:loader[8] beolvassa ezt az állományt, majd átadja a benne szereplõ információkat a rendszermagnak. Például a Creative SoundBlaster(R) 16, nem PnP-s ISA kártya az `snd_sb16` meghajtóval együtt az man:snd_sbc[4] meghajtót használja. A kártya használatához a rendszermag beállításait tartalmazó állományba ezeket a sorokat kell megadni: + +[.programlisting] +.... +device snd_sbc +device snd_sb16 +.... + +valamint a [.filename]#/boot/device.hints# állományba ezeket: + +[.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" +.... + +Ekkor a kártya a `0x220` I/O portot és `5` IRQ-t használja. + +A [.filename]#/boot/device.hints# állományban alkalmazott felírási módról bõvebben a man:sound[4], valamint a kérdéses meghajtó man oldalán tájékozódhatunk. + +A fentiekben bemutatott beállítások alapértelmezettek, néhány esetben azonban a kártyánknak megfelelõen meg kell változtatnunk az IRQ és egyéb értékeket. Errõl a kártyáról konkrétan a man:snd_sbc[4] man oldalon olvashatunk részletesebben. + +[[sound-testing]] +=== A hangkártya kipróbálása + +Miután újraindítottuk a számítógépünket a módosított rendszermaggal, vagy miután betöltöttük a szükséges modult, a hangkártyának valahogy így kell megjelennie a rendszerünk üzenetpufferében (man:dmesg[8]): + +[source,bash] +.... +pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0 +pcm0: [GIANT-LOCKED] +pcm0: <Cirrus Logic CS4205 AC97 Codec> +.... + +A hangkártyánk állapota a [.filename]#/dev/sndstat# állományon keresztül ellenõrizhetõ: + +[source,bash] +.... +# cat /dev/sndstat +FreeBSD Audio Driver (newpcm) +Installed devices: +pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384 +kld snd_ich (1p/2r/0v channels duplex default) +.... + +Ez a kiírás rendszerenként eltérhet. Ha nem látunk semmilyen [.filename]#pcm0# eszközt, akkor menjünk vissza és nézzük át újra, pontosan mit is csináltunk. Vizsgáljuk át a rendszermagunk beállításait tartalmazó állományt és gyõzõdjünk meg róla, hogy a megfelelõ meghajtót adtuk meg. Az itt felmerülõ gyakori gondokkal a <<troubleshooting>> foglalkozik. + +Ha azonban minden remekül haladt, akkor most már van egy mûködõ hangkártyánk. Ha rendesen összekapcsoltuk hangkártyánkat a CD- vagy DVD-meghajtónk audio csatlakozásával, akkor tegyünk egy CD-t a meghajtóba és kezdjük el játszani a man:cdcontrol[1] paranccsal: + +[source,bash] +.... +% cdcontrol -f /dev/acd0 play 1 +.... + +Az olyan alkalmazások, mint például az package:audio/workman[], ehhez egy sokkal barátságosabb felületet nyújtanak. Az MP3 formátumú állományok meghallgatásához pedig minden bizonnyal jól fog jönni egy olyan alkalmazás is, mint például az package:audio/mpg123[]. + +A kártyát úgy is tesztelhetjük, ha az alábbihoz hasonló módon adatokat küldünk a [.filename]#/dev/dsp# állományba: + +[source,bash] +.... +% cat állománynév > /dev/dsp +.... + +ahol az _állománynév_ tetszõleges állomány neve lehet. A parancs hatására valamilyen zajt kell hallanunk, és ez egyben meg is erõsíti, hogy a hangkártyánk mûködik. + +A hangkártyánk csatornáinak jellemzõit a man:mixer[8] paranccsal állíthatjuk. Errõl további részleteket a man:mixer[8] man oldalon olvashatunk. + +[[troubleshooting]] +==== Gyakori problémák + +[.informaltable] +[cols="1,1", frame="none", options="header"] +|=== +| Hiba +| Megoldás + +|`sb_dspwr(XX) timed out` +|Nem állítottuk be jól az I/O portot. + +|`bad irq XX` +|Nem állítottuk be jól az IRQ értékét. Gondoskodjunk róla, hogy a beállított érték megegyezik a hangkártyánkéval. + +|`xxx: gus pcm not attached, out of memory` +|Nincs elég memória az eszköz használatához. + +|`xxx: can't open /dev/dsp!` +|A `fstat \| grep dsp` parancs kiadásával ellenõrizzük, hogy valamelyik alkalmazás használja-e már az eszközt. Gyakori bajkeverõ az esound és a KDE hangtámogatása. +|=== + +[[sound-multiple-sources]] +=== Több hangforrás kihasználása + +Gyakran szükségünk lehet több hangforrás egyidejû használatára, fõleg olyankor, amikor az esound vagy az artsd bizonyos alkalmazásokkal nem hajlandó megosztani a hangeszközt. + +A FreeBSD ezt a _virtuális hangcsatornák_ használatával oldja meg, amit a man:sysctl[8] eszközön keresztül tudunk engedélyezni. Amikor a rendszermagban virtuális csatornák használatával keverünk, akkor lényegében képesek vagyunk a hangkártyánk által egyszerre játszható hangok számát megtöbbszörözni. + +A virtuális csatornák számának beállításához a sysctl három változóját kell módosítanunk, amelyet `root` felhasználóként így tehetünk meg: + +[source,bash] +.... +# sysctl dev.pcm.0.play.vchans=4 +# sysctl dev.pcm.0.rec.vchans=4 +# sysctl hw.snd.maxautovchans=4 +.... + +A fenti példa négy virtuális csatornát hoz létre, ami egészen jellemzõ a mindennapi használatban. A `dev.pcm.0.play.vchans` és `dev.pcm.0.rec.vchans` a [.filename]#pcm0# eszköz lejátszásra és felvételre használt virtuális csatornáinak számát adja meg, amelyet az eszköz csatlakoztatása után tudunk beállítani. A `hw.snd.maxautovchans` az új eszközhöz tartozó virtuális csatornákat adja meg, ami akkor állítódik be, amikor a man:kldload[8] paranccsal csatlakoztatjuk. Mivel a [.filename]#pcm# modul a többi eszközmeghajtótól függetlenül töltõdik be, ezért a `hw.snd.maxautovchans` azt tárolja, hogy a késõbb hozzá csatlakozó eszközök mennyi virtuális csatornát fognak majd kapni. Errõl részletesebben a man:pcm[4] man oldalon olvashatunk. + +[NOTE] +==== +A használatban levõ eszközöknél nem tudjuk megváltoztatni a virtuális csatornák számát. Ehhez elõször le kell állítanunk az eszközt használó összes programot, tehát a zenelejátszókat és hangdémonokat. +==== + +Amennyiben nem használjuk ki a man:devfs[5] által nyújtott lehetõségeket, az összes alkalmazásnak a [.filename]#/dev/dsp0.x# eszközre kell mutatnia, ahol az _x_ értéke 0-tól 3-ig terjedhet attól függõen, hogy a `dev.pcm.0.rec.vchans` értékét a fenti példához hasonlóan 4-re állítottuk-e. A man:devfs[5] megoldását használó rendszerek esetén ez a folyamat automatikusan lezajlik, tehát az összes [.filename]#/dev/dsp# eszközre irányuló kérés magától átirányítódik. + +=== A keverõ alapértelmezett értékeinek beállítása + +A keverõben megjelenõ különbözõ csatornák alapértékei a man:pcm[4] meghajtó forráskódjában huzalozottan találhatóak meg. Számos alkalmazás és démon segít két hívás közt megõrizni a keverõben beállított értékeket, azonban ez nem teljesen tiszta megoldás. A meghajtó szintjén is be tudjuk állítani a keverõ alapértékeit - ezt a [.filename]#/boot/device.hints# állomány megfelelõ módosításával érhetjük el, például: + +[.programlisting] +.... +hint.pcm.0.vol="50" +.... + +Ezzel a man:pcm[4] modul betöltése során a hangerõ (volume) csatorna alapértelmezett értéket 50-re állítjuk. + +[[sound-mp3]] +== MP3 + +Az MP3 (MPEG Layer 3 Audio) használatával közel CD minõségû hangot lehet elérni, ezért a mi FreeBSD munkaállomásunk sem maradhat ki elõnyeinek élvezetébõl. + +[[mp3-players]] +=== MP3 lejátszók + +Az XMMS (X Multimedia System) kiemelkedõen a legnépszerûbb X11-es MP3 lejátszó. Mivel az XMMS grafikus felhasználói felülete szinte teljesen megegyezik a Nullsoft Winampjának felületével, ezért még a Winamp skinjeit is használhatjuk vele. Az XMMS-ben ezenkívül még a natív pluginek támogatását is megtalálhatjuk. + +Az XMMS a package:multimedia/xmms[] portból vagy csomagból telepíthetõ. + +Az XMMS használatára könnyû ráérezni: megtaláljuk benne a lejátszandó számok listáját, egy grafikus hangszínszabályzót és még sok minden mást. Akik már ismerik a Winamp mûködését, azok az XMMS-t is egyszerûnek érzik majd. + +Mellette az package:audio/mpg123[] port egy másik, parancssoros MP3 lejátszót kínál fel. + +Az mpg123 futtatásához paraméterként meg kell adnunk a hangeszközt és lejátszandó MP3 állományt. Ha a hangeszközünk a [.filename]#/dev/dsp1.0# és a _IzéMizé-Sláger.mp3_ nevû MP3 állományt akarjuk rajta lejátszatni, akkor a következõt kell begépelnünk: + +[source,bash] +.... +# mpg123 -a /dev/dsp1.0 IzéMizé-Sláger.mp3 +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 IzéMizé-Sláger.mp3 ... +MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo +.... + +[[rip-cd]] +=== Sávok lementése CD-rõl + +Mielõtt MP3 formátumba tömörítenénk egy CD-t vagy annak egy sávját, a CD-n található audio adatot valahogy le kell tudnunk szedni a merevlemezre. Ezt úgy tehetjük meg, ha a nyers CDDA (CD Digital Audio) adatot WAV formátumú állományokba mentjük. + +A package:sysutils/cdrtools[] csomag részeként elérhetõ `cdda2wav` segédprogrammal tudjuk a CD-ken levõ audio és a hozzájuk tartozó egyéb információkat leszedni. + +A meghajtóban levõ CD teljes tartalmát (`root` felhasználóként) a következõ parancs kiadásával lehet (sávonként) különálló WAV állományokba menteni: + +[source,bash] +.... +# cdda2wav -D 0,1,0 -B +.... + +A cdda2wav ismeri az ATAPI (IDE) CD-meghajtókat, használatukhoz a SCSI egység sorszáma helyett az eszköz nevét kell megadni. Tehát például így szedjük le egy IDE-meghajtóról a 7. sávot: + +[source,bash] +.... +# cdda2wav -D /dev/acd0 -t 7 +.... + +A `-D __0,1,0__` a [.filename]#0,1,0# sorszámú SCSI eszközre utal, ami megfelel `cdrecord -scanbus` parancs eredményének. + +Az egyes sávok lementéséhez a `-t` kapcsoló használható: + +[source,bash] +.... +# cdda2wav -D 0,1,0 -t 7 +.... + +A példa szerint a zenei CD-rõl a hetedik sávot szedjük le. Egyszerre több sávot, például az elsõtõl a hetedikig, egy tartomány megadásával menthetünk le: + +[source,bash] +.... +# cdda2wav -D 0,1,0 -t 1+7 +.... + +A man:dd[1] segédprogram is használható ATAPI eszközökön levõ hangsávok kimentéséhez. Ennek lehetõségérõl részletesebben a crossref:disks[duplicating-audiocds,Audio CD-k másolása]ban olvashatunk. + +[[mp3-encoding]] +=== MP3 állományok tömörítése + +Az MP3 állomány tömörítésére manapság a legtöbben a lame elnevezésû kódolót választják. A portfában a lame az package:audio/lame[] helyen található meg. + +Az elõbb kimentett WAV állományok felhasználásával az alábbi paranccsal tudjuk átalakítani a [.filename]#audio01.wav# állományt [.filename]#audio01.mp3# állománnyá: + +[source,bash] +.... +# lame -h -b 128 \ +--tt "Izé dal címe" \ +--ta "Izé-mizé előadó" \ +--tl "Izé-mizé album" \ +--ty "2001" \ +--tc "Leszedte és tömörítette: Izé" \ +--tg "Műfaj" \ +audio01.wav audio01.mp3 +.... + +A 128 kbites tömörítés a gyakorlatban leginkább használt kódolási arány, sokan azonban a sokkal jobb minõségû 160 vagy 192 kbites tömörítést szeretik. Minél nagyobb a kódolási arány, annál több helyet fog foglalni a keletkezõ MP3 állomány - habár a minõsége is jobb lesz. A `-h` kapcsoló alkalmazásával tudjuk aktivizálni a "jobb minõségû de valamivel lassabb" módot. A `--t` kezdetû paraméterek ID3 tageket adnak meg, amelyek segítségével az MP3 állományokba rájuk vonatkozó információkat tudunk beágyazni. A tömörítés további beállításairól a lame man oldalán tájékozódhatunk. + +[[mp3-decoding]] +=== MP3 állományok kitömörítése + +Ha MP3 formátumú állományokat szeretnénk audio CD-re írni, akkor ehhez elõször tömörítetlen WAV formátumba kell ezeket alakítanunk. Az XMMS és az mpg123 is egyaránt lehetõséged ad az MP3 állományok kitömörítésére. + +Lemezre írás az XMMS-sel: + +[.procedure] +==== +. Indítsuk el az XMMS alkalmazást. +. Az XMMS menüjének felhozásához kattinsunk jobb gombbal az ablakjára. +. Válasszuk az `Options` almenüben található `Preference` menüpontot. +. Változtassuk meg az "Output Plugin" beállítást a "Disk Writer Plugin" értékre. +. Nyomjunk a `Configure` gombra. +. Írjuk be (vagy válasszuk ki a `Browse` gombbal) a könyvtárat, ahová majd a kitömörített állományok kerülnek. +. Az eddig megszokottak szerint töltsük be az XMMS-be az MP3 állományt, állítsuk 100%-ra a hangerõt és kapcsoljuk ki a hangszínszabályzót (EQ, equalizer). +. Nyomjuk le a `Play` gombot - úgy fog tûnni, mintha az XMMS játszaná az MP3 állományt, de nem hallunk semmit. Ekkor a tartalmát állományba menti. +. Mikor befejeztük a kitömörítést, ne felejtsük el visszaállítani az "Output Plugin" értékét az alapértelmezettre. +==== + +Írás a szabványos kimenetre az mpg123-mal: + +[.procedure] +==== +. Futtassuk le a `mpg123 -s audio01.mp3 > audio01.pcm` parancsot. +==== + +Az XMMS az állományokat WAV formátumban írja, miközben az mpg123 nyers PCM hangadatokat képez belõlük. A cdrecord használata során mind a két formátumból hozhatóak létre audio CD-k. A nyers PCM a man:burncd[8] programmal használható. Amikor WAV állományokkal dolgozunk, minden egyes sáv elején egy apró kattanást hallhatunk: ez a WAV állomány fejléce lesz. A (package:audio/sox[] portból vagy csomagból telepíthetõ) SoX segédprogrammal a WAV formátumú állományok fejléce pillanatok alatt eltávolítható: + +[source,bash] +.... +% sox -t wav -r 44100 -s -w -c 2 track.wav track.raw +.... + +A CD-írók FreeBSD alatti használatával kapcsolatban olvassuk el a crossref:disks[creating-cds,Lézeres tárolóeszközök (CD-k) létrehozása és használata]t. + +[[video-playback]] +== Videók lejátszása + +A videolejátszás egy nagyon friss és gyorsan fejlõdõ alkalmazási terület. Legyünk türelmesek, ez nem minden fog annyira könnyen menni, mint a hangok esetében. + +A kezdéshez nem árt tudnunk, hogy a videokártyánk milyen gyártmányú és milyen chipet használ. Míg az Xorg és az XFree86(TM) számos különféle videokártyát ismer, csupán töredékükkel lehet jó lejátszási teljesítményt elõhozni. Az X11 futtatása közben az man:xdpyinfo[1] parancs kiadásával kérdezhetjük le az X szervertõl a kártyánk használatával elérhetõ kiterjesztéseket. + +Érdemes a kezünk ügyében tartani egy rövidke MPEG formátumú állományt, amellyel majd ki tudjuk próbálni a különféle lejátszókat és azok beállításait. Mivel egyes DVD lejátszók alapértelmezés szerint a [.filename]#/dev/dvd# helyen keresik a lejátszandó DVD eszközt, vagy egyszerûen csak így írták meg ezeket, mindenképpen hasznos lehet, ha szimbolikus linkeket hozunk létre a megfelelõ eszközökre: + +[source,bash] +.... +# ln -sf /dev/acd0 /dev/dvd +# ln -sf /dev/acd0 /dev/rdvd +.... + +A man:devfs[5] mûködése miatt azonban ezek a kézzel létrehozott linkek az újraindítás után már nem maradnak meg. A szimbolikus linkeket a rendszer minden egyes indulásakor úgy tudjuk automatikusan létrehozni, hogyha az [.filename]#/etc/devfs.conf# állományba felvesszük az alábbi sort: + +[.programlisting] +.... +link acd0 dvd +link acd0 rdvd +.... + +Emellett a DVD-k titkosításának feloldása, mely a DVD-meghajtók speciális funkcióit igényli, a DVD eszközökön írási jogot is igényel. + +Az X11 osztott memóriát kezelõ felületének gyorsításához javasolt néhány man:sysctl[8] változó értékének megnövelése is: + +[.programlisting] +.... +kern.ipc.shmmax=67108864 +kern.ipc.shmall=32768 +.... + +[[video-interface]] +=== A megjelenítõ képességeinek megállapítása + +Több különbözõ úton lehet X11 alatt videókat nézni, de ennek tényleges módját igazából a rendelkezésre álló hardver határozza meg. Az itt leírt módszerek által kihozható minõség hardverenként eltérhet. Másodsorban a videók megjelenítése az X11-ben az utóbbi idõben igen nagy hangsúlyt kapott, ezért az Xorg és az XFree86(TM) minden egyes változatával jelentõsen javulhat a helyzet ezen a téren. + +A videók megjelenítésére használt gyakori felületek: + +. X11: az X11 normális kimenete osztott memórián keresztül +. XVideo: az X11 felületének kiterjesztése, ami tetszõleges X11 által kirajzolható objektum esetén támogat videót +. SDL: a Simple Directmedia Layer +. DGA: a Direct Graphics Access (közvetlen grafikus hozzáférés) +. SVGAlib: alacsonyszintû konzolos grafikus réteg + +[[video-interface-xvideo]] +==== XVideo + +Az Xorg és az XFree86(TM) 4.X rendelkezik egy _XVideo_ (avagy Xvideo, Xv, xv) elnevezésû kiterjesztéssel, amelyen keresztül egy speciális gyorsítás segítségével a kirajzolható objektumokban közvetlenül meg tudunk jeleníteni videókat. Ezzel a kiterjesztéssel még a gyengébb gépeken is nagyon jó minõségû lejátszást tudunk elérni. + +A kiterjesztés mûködésérõl az `xvinfo` parancs kiadásával gyõzõdhetünk meg: + +[source,bash] +.... +% xvinfo +.... + +Ha a parancs eredménye ehhez hasonló, akkor a kártyánk támogatja az XVideót: + +[source,bash] +.... +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 +.... + +Az XVideo nem mindegyik implementációjában vannak jelen a felsorolt formátumok (YUV2, YUV12 stb.), ami viszont néhány lejátszó számára akadályokat jelenthet. + +Amennyiben viszont ezt látjuk: + +[source,bash] +.... +X-Video Extension version 2.2 +screen #0 +no adaptors present +.... + +Akkor a kártyánk nem rendelkezik XVideo támogatással. + +Ha az XVideo nem támogatott a kártyánk számára, akkor az csupán csak annyit jelent, hogy a gépünknek nehéz dolga lesz a videók megjelenítéséhez szükséges számítási kapacitás kiszolgálásában. Azonban a videokártyánktól és processzorunktól függõen még így is kielégítõ eredményt tudunk elõcsalni. Ekkor viszont minden bizonnyal érdemes lesz átolvasnunk a <<video-further-reading>>ban, miként tudjuk növelni a teljesítményét. + +[[video-interface-SDL]] +==== A Simple Directmedia Layer + +A Simple Directmedia Layer, vagy SDL, eredetileg a Microsoft(R) Windows(R), BeOS és UNIX(R) közti hordozhatóságot szándékozta megvalósítani, aminek segítségével a hangot és grafikát hatékonyan használni tudó alkalmazások hozhatóak létre. Az SDL által nyújtott réteg a hardver olyan alacsonyszintû absztrakcióját öleli fel, amely gyakran még az X11 felületénél is hatékonyabb. + +Az SDL a package:devel/sdl12[] helyen található. + +[[video-interface-DGA]] +==== Direct Graphics Access (Közvetlen grafikus hozzáférés) + +A közvetlen grafikus hozzáférés az X11 egy olyan kiterjesztése, ami lehetõvé teszi a programok számára az X szerver megkerülését és így közvetlenül a videokártya memóriáját képesek elérni. Mivel a megosztás hatékony megvalósításához ez nagyban építkezik alacsonyszintû leképzési mûveletekre, ezért az ilyet használó programokat `root` felhasználóként kell futtatni. + +A DGA kiterjesztés a man:dga[1] segítségével tesztelhetõ és mérhetõ. A `dga` parancs kiadása után minden billentyû lenyomására megváltoztatja a képernyõn látható színeket. A kilépéshez a kbd:[q] billentyût kell lenyomni. + +[[video-ports]] +=== A videókkal foglalkozó portok és csomagok + +Ebben a szakaszban a FreeBSD Portgyûjteményébõl a videók lejátszására alkalmas programokat vesszük számba. A videolejátszás nagyon gyorsan fejlõdõ terület, ezért az itt említett különbözõ alkalmazások képességei az itt leírtaktól némileg eltérhetnek. + +Elõször is fontos tisztában lennünk azzal, hogy számos FreeBSD-n futó videoalkalmazás eredetileg linuxos alkalmazásként indult, és közülük sokan még csak béta minõségûek. Íme a FreeBSD-n is megtalálható videocsomagokkal kapcsolatos néhány olyan gond, amivel esetleg összefuthatunk: + +. Az egyik alkalmazás nem képes visszajátszani olyan állományt, amit egy másik alkalmazás hozott létre. +. Az alkalmazás nem képes visszajátszani a saját maga által készített állományokat. +. Ugyanazon alkalmazás két különbözõ gépen, amikor mind a kettõn az adott konfigurációra fordítjuk le, ugyanazt az állományt másképpen játssza vissza. +. Egy olyan látszólag egyértelmû szûrõ, mint például a kép átméretezése, a hibás átméretezõ rutin miatt nagyon csúnya eredményt produkál. +. Az alkalmazás gyakran elszáll. +. A porthoz nem találjuk a dokumentációt, egyedül csak az interneten vagy a port [.filename]#work# könyvtárában van. + +Sok alkalmazás a "linuxizmus" jeleit is hordozza, vagyis gondok adódhatnak abból, hogy a szerzõk az alkalmazások mûködtetéséhez a Linux rendszermag és a különféle terjesztésekben megtalálható módosított szabványos könyvtárak különlegességeit használják ki. Ezeket a portok karbantartói nem mindig észlelik és javítják ki, ami miatt az alábbiak bármikor bekövetkezhetnek: + +. A processzor jellemzõit a [.filename]#/proc/cpuinfo# állományon keresztül állapítják meg. +. A szálak helytelen használatuk miatt a program befejezõdésekor összeakadnak. +. Az alkalmazással gyakran együtt használt egyéb alkalmazások még nem nincsenek benne a FreeBSD Portgyûjteményében. + +Az ilyen alkalmazások fejlesztõi a hordozhatóság javításával és a problémák megoldásával kapcsolatban eddig mindig igyekeztek együttmûködni a portok karbantartóival. + +[[video-mplayer]] +==== MPlayer + +Az MPlayer az utóbbi idõben felbukkant, gyorsan fejlõdõ videolejátszó. Fejlesztõinek célja a sebesség és rugalmasság a Linux, illetve más UNIX(R) rendszereken. A kezdeményezés abból fakadt, hogy a fejlesztés mögött álló csapat alapítójának elege lett az akkoriban elérhetõ lejátszók teljesítményébõl. Mondhatnánk, hogy ez a program feláldozta a grafikus felületet az áramvonalas kialakításért, azonban ha hozzászokunk a parancssori beállításokhoz és a billentyûkön keresztüli vezérléshez, remekül mûködik. + +[[video-mplayer-building]] +===== Az MPlayer lefordítása + +Az MPlayer a package:multimedia/mplayer[] helyen található. A program a fordítási folyamat során elvégez számos hardverellenõrzést, aminek eredményeképpen az egyik rendszeren fordított program nem vihetõ a másikra. Ezért különösen fontos portból fordítani és nem pedig bináris csomagot használni. Mindezek mellett a [.filename]#Makefile# állományban még számos, a `make` parancsnak a fordítás megkezdésekor átadható beállítást találhatunk: + +[source,bash] +.... +# cd /usr/ports/multimedia/mplayer +# make +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 +.... + +Az üzenet fordítása: + +[source,bash] +.... +F - I - G - Y - E - L - E - M + +Az mplayert személyes igényeinkhez úgy tudjuk igazítani, ha +figyelmesen átnézzük a Makefile állományt! Például a WITH_GTK1 +megadásával az MPlayer GTK1 alapú grafikus felülettel jön létre. +A grafikus felület használatához telepítenünk kell a +/usr/ports/multimedia/mplayer-skins portot is, vagy letölteni a +hivatalos skingyűjteményt a http://www.mplayerhq.hu/homepage/dload.html +oldalról. +.... + +A port alapbeállításai a legtöbb felhasználó számára megfelelõek, habár az Xvid kódek használatához meg kell adnunk a `WITH_XVID` beállítást. Rajta kívül még az alapértelmezett DVD eszközt is érdemes megadni a `WITH_DVD_DEVICE` beállítással, amelynek alapértéke a [.filename]#/dev/acd0#. + +A leírás elkészítésének idõpontjában az MPlayer portja létrehozza a HTML dokumentációt és a két végrehajtható állományt: az `mplayer` lejátszót és a videók újrakódolásáért felelõs `mencoder` segédprogramot. + +Az MPlayer HTML dokumentációja nagyon közlékeny, és ha az olvasó nem találná valamelyik videohardver vagy felület leírását ebben a fejezetben, akkor ez a dokumentáció mindenképpen hasznos olvasnivalónak bizonyul. Ha a UNIX(R)-ok alatt elérhetõ videotámogatás leírását keressük, határozottan megéri idõt szánni az MPlayer dokumentációjának alapos végigolvasására. + +[[video-mplayer-using]] +===== Az MPlayer használata + +Az MPlayer használatához a felhasználói könyvtárunkban rendelkeznünk kell egy [.filename]#.mplayer# elnevezésû könyvtárral. Ezt a következõ paranccsal tudjuk létrehozni: + +[source,bash] +.... +% cd /usr/ports/multimedia/mplayer +% make install-user +.... + +Az `mplayer` parancssori paraméterei a hozzá tartozó man oldalon találhatóak meg, valamint mindezek a HTML dokumentációban még részletesebben. Ebben a szakaszban csupán néhányukat mutatjuk be. + +Egy állomány, mint például a [.filename]#tesztvideo.avi#, a `-vo` beállításával játszható le a különbözõ felületeken: + +[source,bash] +.... +% mplayer -vo xv tesztvideo.avi +.... + +[source,bash] +.... +% mplayer -vo sdl tesztvideo.avi +.... + +[source,bash] +.... +% mplayer -vo x11 tesztvideo.avi +.... + +[source,bash] +.... +# mplayer -vo dga tesztvideo.avi +.... + +[source,bash] +.... +# mplayer -vo 'sdl:dga' tesztvideo.avi +.... + +Érdemes az itt felsorolt konfigurációk mindegyikét kipróbálni, mivel az egymáshoz mért teljesítményük rengeteg tényezõn múlik, de közülük talán maga a hardver a legjelentõsebb. + +A DVD-k lejátszásához cseréljük ki a [.filename]#tesztvideo.avi# paramétert a `dvd://_N_ -dvd-device _ESZKÖZ_` paraméterekkel, ahol az _N_ a lejátszandó fejezet sorszáma, valamint az [.filename]#ESZKÖZ# a DVD-hez tartozó eszközleíró. Például így tudjuk elkezdeni [.filename]#/dev/dvd# eszközrõl a 3. fejezet lejátszását: + +[source,bash] +.... +# mplayer -vo xv dvd://3 -dvd-device /dev/dvd +.... + +[NOTE] +==== +A port fordítása során a `WITH_DVD_DEVICE` paraméter segítségével megadható az alapértelmezett DVD eszköz, amely alapból a [.filename]#/dev/acd0#. Errõl többet a port [.filename]#Makefile# állományában találhatunk. +==== + +A leállításhoz, szüneteltetéshez, továbblépéshez és többi hasonló funkcióhoz tartozó billentyûket a `mplayer -h` parancs kimenetébõl vagy a man oldal elolvasásából deríthetjük ki. + +A lejátszáshoz tartozó néhány viszonylag fontos beállítás: az `-fs -zoom` teljesképernyõs módra vált, valamint a `-framedrop` segít növeli a teljesítményt. + +A lejátszáskor kiadandó parancs túlburjánzását el tudjuk kerülni, ha létrehozunk egy [.filename]#.mplayer/config# állományt és itt állítjuk be a gyakori opciókat: + +[.programlisting] +.... +vo=xv +fs=yes +zoom=yes +.... + +Végezetül megemlítjük, hogy az `mplayer` segítségével a DVD-n található fejezeteket ki tudjuk menteni [.filename]#.vob# állományokba. A DVD második fejezetének kimentéséhez gépeljük be ezt: + +[source,bash] +.... +# mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd +.... + +A parancs eredményeképpen keletkezõ [.filename]#out.vob# állomány formátuma MPEG lesz, amit a fejezetben bemutatott további csomagokkal tudunk feldolgozni. + +[[video-mencoder]] +===== mencoder + +A `mencoder` használatának megkezdése elõtt javasolt alaposan beleásnunk magunkat a HTML dokumentációba és megismerkednünk az alapvetõ beállításaival. Van külön man oldala is, azonban a HTML leírás nélkül önmagában ez nem túl sokat ér. Megszámlálhatatlan úton és módon növelhetõ benne a minõség, csökkenthetõ a kódolási arány, változtatható a formátum, és ezen apró finomságok felelõsek a jó vagy éppen a rossz teljesítményért. A témába néhány példa bemutatásával igyekszünk beavatni az olvasót. Elõször vegyünk egy egyszerû másolást: + +[source,bash] +.... +% mencoder bemenő.avi -oac copy -ovc copy -o eredmény.avi +.... + +A parancssori paraméterek helytelen kombinációja olyan állományokat eredményezhet, amelyeket még maga az `mplayer` sem képes lejátszani. Ezért ha csak le akarunk szedni egy állományt, akkor maradjunk meg az `mplayer` `-dumpfile` opciójánál. + +A [.filename]#bemenõ.avi# állományt MPEG4 video- és MPEG3 hangtömörítéssel (amihez kell majd a package:audio/lame[]) így tudjuk lekódolni: + +[source,bash] +.... +% mencoder bemenõ.avi -oac mp3lame -lameopts br=192 \ + -ovc lavc -lavcopts vcodec=mpeg4:vhq -o eredmény.avi +.... + +Ezzel az `mplayer` és `xine` programok számára is egyaránt lejátszható állomány jön létre. + +A DVD fejezeteit úgy tudjuk közvetlenül kódolni, ha a parancssorban kicseréljük a [.filename]#bemenõ.avi# állományt az `dvd://1 -dvd-device /dev/dvd` beállításra, illetve ha a programot `root` felhasználóként futtatjuk. De mivel elsõre általában ritkán vagyunk elégedettek a kódolással, érdemes elõször inkább lementeni az egész fejezetet egy állományba, majd azon dolgozni. + +[[video-xine]] +==== A xine videolejátszó + +A xine egy széles hatókörû projekt, amelynek nem csak az a célja, hogy egy "mindenes" videolejátszó alkalmazást fejlesszenek, hanem az is, hogy újrahasznosítható függvénykönyvtárakat és egy moduláris felépítésû programot hozzanak létre, amely kiegészítûkkel bûvíthetû. A package:multimedia/xine[] helyen portként, valamint csomagként is elérhetõ. + +A xine itt-ott még valamelyest durva, de mindenképpen egy dicséretes kezdeményezés. A xine a gyakorlatban erõs processzort és mellé gyors videokártyát kíván, vagy pedig az XVideo kiterjesztés támogatását. A grafikus felhasználói felülete ugyan használható, de még kicsit esetlen. + +Az írás pillanatában a xine mellé még nem kapunk olyan modult, amivel le tudnánk játszani a CSS kódolású DVD-ket. Léteznek azonban olyan külsõs modulok, amelyekkel meg lehet valósítani ezt a feladatot, azonban a FreeBSD Portgyûjteményében ezeket még nem találhatjuk meg. + +A xine az MPlayerhez képes többet tesz a felhasználóért, azonban ezzel egyidõben el is veszi tõle a finomhangolás lehetõségét. A xine legjobban az XVideót ismerõ felületeken teljesít. + +A xine alapértelmezés szerint grafikus felülettel indul, ahol a menük segítségével tudunk megnyitni egy adott állományt: + +[source,bash] +.... +% xine +.... + +Vagy a grafikus felület használata nélkül kiadhatjuk közvetlenül is az állomány lejátszását: + +[source,bash] +.... +% xine -g -p kedvencmozim.avi +.... + +[[video-ports-transcode]] +==== A transcode + +A transcode nem egy újabb lejátszó, hanem a video- és audio állományok újratömörítésére használható programok gyûjteménye. A transcode segítségével a szabványos be- és kimeneten keresztül parancssoros programokkal képesek vagyunk videoállományokat összefûzni, megjavítani. + +A package:multimedia/transcode[] port fordítása során temérdek beállítást adhatunk meg, amelyek közül az alábbi parancsban foglaljuk össze az általunk javasolandókat: + +[source,bash] +.... +# make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ +WITH_MJPEG=yes -DWITH_XVID=yes +.... + +Ezek a beállítások a legtöbb felhasználó számára elegendõek. + +A `transcode` képességeinek illusztrálásához lássunk egy példát, amiben megmutatjuk, hogyan kell egy DivX állományt PAL szabványú MPEG-1 formátumú (PAL VCD) állománnyá alakítani: + +[source,bash] +.... +% transcode -i bemenõ.avi -V --export_prof vcd-pal -o output_vcd +% mplex -f 1 -o eredmény_vcd.mpg eredmény_vcd.m1v eredmény_vcd.mpa +.... + +Az eredményül keletkezõ [.filename]#eredmény_vcd.mpg# MPEG állomány akár már játszható is MPlayerrel. Ha az állományt kiírjuk egy írható CD-re, akkor ezzel video CD-t is létre tudunk hozni, amihez viszont szükségünk van mind a package:multimedia/vcdimager[] és package:sysutils/cdrdao[] programokra. + +A `transcode` parancsnak van saját man oldala, azonban ehelyett a http://www.transcoding.org/cgi-bin/transcode[transcode wiki]ben érdemes inkább további információkat és példákat keresni. + +[[video-further-reading]] +=== Ajánlott olvasmányok + +A FreeBSD-hez tartozó videoszoftverek nagyon gyorsan fejlõdnek. Könnyen elképzelhetõ, hogy az imént tárgyalt problémák legtöbbje a közeljövõben hamarosan megoldódik. Addig viszont bárkinek, aki a legtöbbet szeretné kihozni a FreeBSD audio- és video lehetõségeibõl, rengeteg leírás és dokumentáció elolvasása alapján kell összecsiszolnia a különbözõ beállításokat, és csak néhány alkalmazás mellett érdemes kitartania. Ebben a szakaszban igyekszünk segíteni az olvasónak megtalálni az ilyen jellegû információkat. + +Az http://www.mplayerhq.hu/DOCS/[MPlayer dokumentációja] szakmai szempontból igen közlékeny. Ezt mindenkinek érdemes elolvasnia, aki a késõbbiekben magasabb szakmai szinten akar foglalkozni a UNIX(R)-os videózással. Az MPlayer levelezési listája viszont alig tolerálja a dokumentációt rendesen el nem olvasó emberek kérdéseit, ezért minden egyes hiba bejelentése elõtt lehetõleg rendesen nézzük át a dokumentáció odavágó részeit. + +A http://dvd.sourceforge.net/xine-howto/en_GB/html/howto.html[xine HOGYAN] egyik külön fejezetében az összes lejátszó esetén érvényesíthetõ teljesítménynövelési módszereket mutat be. + +Végül íme néhány ígéretes alkalmazás, amelyeket érdemes kipróbálnunk: + +* http://avifile.sourceforge.net/[Avifile], ami egyben a package:multimedia/avifile[] port +* http://www.dtek.chalmers.se/groups/dvd/[Ogle], ami a package:multimedia/ogle[] port +* http://xtheater.sourceforge.net/[Xtheater] +* package:multimedia/dvdauthor[], egy nyílt forráskódú DVD-tartalom szerkesztõ + +[[tvcard]] +== TV kártyák beállítása + +=== Bevezetés + +A TV kártyák segítségével kábeles vagy antennás televízióadásokat tudunk nézni a számítógépünkön. A legtöbbjük RCA vagy S-video bemenettel rendelkezik, valamint néhányukon még FM rádiókészülék is megtalálható. + +A FreeBSD a man:bktr[4] meghajtón keresztül a Brooktree Bt848/849/878/879, illetve a Conexant CN-878/Fusion 878a típusú, PCI-os videorögzító chipeket ismeri. Ügyelnünk kell arra, hogy a kártyánkon levõ vevõkészülék is használható legyen, amit pedig a man:bktr[4] man oldalán megtalálható támogatott eszközök listájából ellenõrizhetünk. + +=== A meghajtó beállítása + +A kártyánk használatához be kell töltenünk a man:bktr[4] meghajtót, ami csupán annyiból áll, hogy a [.filename]#/boot/loader.conf# állományhoz hozzáadunk egy ilyen sort: + +[.programlisting] +.... +bktr_load="YES" +.... + +Másik lehetõségünk, ha a TV kártya támogatását statikusan beleépítjük a rendszermagba. Ha ezt a megoldást választjuk, a következõ sorokat kell elhelyeznünk a rendszermag beállításait tartalmazó állományba: + +[.programlisting] +.... +device bktr +device iicbus +device iicbb +device smbus +.... + +A fentebb látható egyéb eszközök megadása azért szükséges, mert a kártya részegységei egy I2C buszon csatlakoznak egymáshoz. Miután beillesztettük a szükséges változtatásokat, fordítsuk le és telepítsük az új rendszermagot. + +A támogatás hozzáadása után újra kell indítanunk a számítógépünket. A rendszerindítási folyamat során meg kell jelennie a TV kártyánknak is, valahogy így: + +[.programlisting] +.... +bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0 +iicbb0: <I2C bit-banging driver> on bti2c0 +iicbus0: <Philips I2C bus> on iicbb0 master-only +iicbus1: <Philips I2C bus> on iicbb0 master-only +smbus0: <System Management Bus> on bti2c0 +bktr0: Pinnacle/Miro TV, Philips SECAM tuner. +.... + +Természetesen a fenti üzenetek az aktuális hardvereszközünknek megfelelõen némileg eltérhetnek. Ellenõrizzük, hogy a vevõkészüléket helyesen ismerte-e fel a rendszer. Ha nem sikerült volna, akkor a man:sysctl[8] és a rendszermag beállításai segítségével még mindig van lehetõségünk állítani rajta. Például, ha egy Philips SECAM vevõkészüléket akarunk beállítani, akkor a rendszermag beállításaihoz még hozzá kell adni a következõ sort: + +[.programlisting] +.... +options OVERRIDE_TUNER=6 +.... + +vagy erre közvetlenül használhatjuk a man:sysctl[8] programot is: + +[source,bash] +.... +# sysctl hw.bt848.tuner=6 +.... + +A man:bktr[4] man oldalán és a [.filename]#/usr/src/sys/conf/NOTES# állományban megtalálhatjuk a többi beállítás részletes leírását is. + +=== Hasznos alkalmazások + +A TV kártyánk tényleges használatához azonban még a következõ alkalmazások valamelyikét is telepítenünk kell: + +* A package:multimedia/fxtv[] használatával ablakban tévézhetünk, valamint lehetõségünk van kép/audio/video kimentésére is. +* A package:multimedia/xawtv[] az fxtv-hez hasonló lehetõségekkel bíró tévénézõ alkalmazás. +* A package:misc/alevt[] dekódolja és megjeleníti a mûsorhoz kapcsolódó Videotex/Teletext üzeneteket. +* Az package:audio/xmradio[] segítségével az egyes TV kártyákon megtalálható FM rádiókészülékeket tudjuk használatba venni. +* Az package:audio/wmtune[] a rádióvevõkhöz használható hasznos grafikus alkalmazás. + +Ebben a témában a FreeBSD Portgyûjteményében további érdekes alkalmazások találhatóak még. + +=== Hibakeresés + +Ha bármilyen gond adódna a TV kártyánkkal kapcsolatosan, akkor elõször mindenképpen érdemes megnézni, hogy a rajta levõ videorögzítõ chipet és vevõkészüléket a man:bktr[4] meghajtó ténylegesen ismeri-e, illetve hogy jól állítottuk-e be. A TV kártyákra irányuló különféle egyéb kérdések és segítség tekintetében érdemes lehet még levelet küldeni a {freebsd-multimedia} címére is. + +[[scanners]] +== Lapolvasók + +=== Bevezetés + +A FreeBSD lapolvasókhoz a SANE (Scanner Access Now Easy) elnevezésû API (alkalmazásfejlesztõi felület) segítségével képes hozzáférni, amelyet a Portgyûjteményben találhatunk meg. A lapolvasást végzõ hardvereszközök használatához a FreeBSD a SANE mellett még néhány eszközmeghajtóra is támaszkodik. + +A FreeBSD egyaránt ismeri az SCSI és USB csatlakoztatású lapolvasókat is. Még mielõtt nekikezdenénk a lapolvasó beállításához, bizonyosodjuk meg róla, hogy a SANE támogatja. A SANE http://www.sane-project.org/sane-supported-devices.html[által ismert eszközök] felsorolásában ellenõrizhetjük a lapolvasónk támogatottságának állapotát. A FreeBSD 8._X_ elõtti kiadásaiban ezenkívül még a man:uscanner[4] man oldalon is láthatjuk az ismert USB-s lapolvasók listáját. + +=== A rendszermag beállítása + +A korábbiak értelmében tehát mind a SCSI, mind pedig a USB felületen csatlakozó eszközök támogatottak. A lapolvasónknak megfelelõen eltérõ eszközmeghajtók szükségesek. + +[[scanners-kernel-usb]] +==== Beállítás USB felületen + +A [.filename]#GENERIC# rendszermag alapértelmezés szerint tartalmazza az USB-s lapolvasók használatához szükséges eszközmeghajtókat. Ha valamiért azonban mégis saját rendszermagot akarunk használni, akkor ne felejtsük el ellenõrizni, hogy a rendszermag beállításai között megtalálhatóak a következõ sorok: + +[.programlisting] +.... +device usb +device uhci +device ohci +device ehci +.... + +A FreeBSD 8._X_ elõtti kiadásaiban még a következõ sorra is szükségünk lesz: + +[.programlisting] +.... +device uscanner +.... + +A FreeBSD ezen változataiban a man:uscanner[4] eszközmeghajtón keresztül tudjuk használni az USB csatolóval rendelkezõ lapolvasókat. A FreeBSD 8.0 változatától kezdõdõen pedig ehhez a man:libusb[3] függvénykönyvtár nyújt közvetlen támogatást. + +A megfelelõen elõkészített rendszermag elindítása után csatlakoztassuk az USB-s lapolvasónkat. Ez a sor fog megjelenni a rendszer üzenetpufferében (man:dmesg[8]): + +[source,bash] +.... +ugen0.2: <EPSON> at usbus0 +.... + +Vagy FreeBSD 7._X_ rendszerek esetében: + +[source,bash] +.... +uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 +.... + +Ezek az üzenetek elárulják nekünk, hogy a lapolvasóhoz mostantól a használt FreeBSD verziótól függõen a [.filename]#/dev/ugen0.2# vagy a [.filename]#/dev/uscanner0# eszközleíró tartozik. A fenti példában egy EPSON Perfection(R) 1650 típusú USB lapolvasót láthatunk. + +==== Beállítás SCSI felületen + +Ha a lapolvasónk SCSI felületen csatlakozik, fontos tisztában lennünk azzal, hogy pontosan milyen SCSI-vezérlõn keresztül is érhetjük el, ugyanis a rajta található SCSI chipkészletnek megfelelõen kell majd hangolnunk a rendszermag beállításait. A [.filename]#GENERIC# rendszermag alapból ismeri a leggyakrabban elõforduló SCSI-vezérlõket. Mindenképpen olvassuk át a [.filename]#NOTES# nevû állományt és adjuk hozzá a rendszermag beállításaihoz a megfelelõ sort. A SCSI-kártya meghajtóján kívül még az alábbi beállításokat is meg kell adnunk a rendszermagunk számára: + +[.programlisting] +.... +device scbus +device pass +.... + +Ahogy sikerült a rendszermagot sikeresen lefordítani és telepíteni, a rendszer indulása során az üzenetpufferben már láthatjuk is a felismert eszközt: + +[source,bash] +.... +pass2 at aic0 bus 0 target 2 lun 0 +pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device +pass2: 3.300MB/s transfers +.... + +Ha a rendszer indulásakor még nem kapcsoltuk volna be a lapolvasónkat, a man:camcontrol[8] parancs segítségével késõbb külön kérhetjük a SCSI buszon található eszközök újbóli felderítését: + +[source,bash] +.... +# camcontrol rescan all +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 +.... + +Ekkor a lapolvasó megjelenik a SCSI eszközök felsorolásában: + +[source,bash] +.... +# camcontrol devlist +<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) +<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) +<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) +<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0) +.... + +A SCSI eszközökrõl további leírásokat a man:scsi[4] és man:camcontrol[8] man oldalakon találhatunk. + +=== A SANE beállítása + +A SANE rendszere két részre oszlik: a backendekre (package:graphics/sane-backends[]) és a frontendekre (package:graphics/sane-frontends[]). Ezek közül maguk a backendek szolgáltatják a lapolvasó hozzáférhetõségét. A SANE által http://www.sane-project.org/sane-supported-devices.html[ismert eszközeinek] listájából kifürkészhetjük, hogy lapolvasónkat melyik backenden keresztül érhetjük el. Az eszköz megfelelõ használatához döntõ fontosságú megállapítani a hozzá tartozó backendet. A frontendek között találjuk meg a lapolvasást felügyelõ grafikus felületeket (mint például az xscanimage). + +Elsõként telepítsük a package:graphics/sane-backends[] portot vagy csomagot. Ezután ellenõrizzük, hogy a SANE felismeri a lapolvasót, és ehhez adjuk ki a `sane-find-scanner` parancsot: + +[source,bash] +.... +# sane-find-scanner -q +found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3 +.... + +A kimenetében jelzi a felületet, amin a lapolvasó csatlakozik, valamint a hozzá tartozó eszközleírót. A gyártó neve és a termék típusa nem minden esetben jelenik meg, de ez nem is annyira fontos. + +[NOTE] +==== +Némely USB-s lapolvasók esetén még egy firmware-t is be kell töltenünk, amirõl bõvebben a backendhez tartozó man oldalokon olvashatunk. Ajánlott még elolvasni a man:sane-find-scanner[1] és man:linprocfs[7] man oldalakat is. +==== + +Most pedig nézzük meg, hogy vajon a frontend is be tudja-e azonosítani a lapolvasónkat. Alapértelmezés szerint a SANE backendjéhez tartozik még egy man:sane[1] nevû segédprogram is, aminek segítségével listázni tudjuk a használható eszközöket és képeket tudunk beolvasni parancssorból. Közülük a `-L` kapcsoló listáz: + +[source,bash] +.... +# scanimage -L +device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner +.... + +Vagy ha a <<scanners-kernel-usb>>ban szereplõ USB lapolvasóval nézzük: + +[source,bash] +.... +# scanimage -L +device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner +.... + +Ezt a kimenetet egy FreeBSD 8._X_ rendszeren kaptuk, ahol a `'epson2:libusb:/dev/usb:/dev/ugen0.2'` az eszközhöz tartozó backendet (`epson2`) és eszközleírót (`/dev/ugen0.2`) adja meg. + +[NOTE] +==== +Ha ennek eredményeképpen semmi sem jelenik meg, vagy a man:sane[1] látszólag nem talált semmilyen eszközt, akkor a lapolvasó azonosítása nem sikerült. Ilyen esetekben valószínûleg módosítanunk kell a backend beállításait tartalmazó állományt a használni kívánt lapolvasó eszköz szerint. A backendek beállításait a [.filename]#/usr/local/etc/sane.d/# könyvtárban találjuk. Ez a probléma bizonyos USB-s lapolvasók esetében jelentkezik. + +Például, ha <<scanners-kernel-usb>>ban használt USB-s lapolvasónkat FreeBSD 8._X_ alatt tökéletesen felismeri a rendszer, de a FreeBSD korábbi változatai esetén (ahol a man:uscanner[4] eszközmeghajtót használják) a `sane-find-scanner` parancs a következõket adja vissza: + +[source,bash] +.... +# sane-find-scanner -q +found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 +.... + +Akkor a lapolvasót sikerült megtalálni, és láthatjuk, hogy USB-n keresztül csatlakozik és a [.filename]#/dev/uscanner0# eszközleíró tartozik hozzá. Most már ellenõrizhetjük a lapolvasó helyes beazonosítását is: + +[source,bash] +.... +# scanimage -L + +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). +.... + +Az üzenet fordítása: + +[source,bash] +.... +Nincs azonosítható lapolvasó. Ha nem erre számítottunk, akkor ellenőrizzük, +hogy az eszközt tényleg bekapcsoltuk, csatlakoztattuk és észlelte a +sane-find-scanner segédprogram (amennyiben szükséges). Kérjük, olvassa el a +szoftverhez tartozó dokumentációt (README, FAQ, man oldalak)! +.... + +Mivel a lapolvasót nem sikerült azonosítani, át kell írnunk a [.filename]#/usr/local/etc/sane.d/epson2.conf# állományt. A használt lapolvasó típusa EPSON Perfection(R) 1650, ezért hozzá az `epson2` backendet fogjuk használni. Ehhez feltétlenül olvassuk el a konfigurációs állományban található megjegyzéseket is. A sorokat igen könnyû átírni: tegyük megjegyzésbe az összes olyat, ahol a lapolvasónk számára nem megfelelõ felületek találhatóak (a mi esetünkben tehát megjegyzésbe fogjuk tenni az összes `scsi` szóval kezdõdõ sort, hiszen nekünk USB-s eszközünk van), majd az állomány végére írjuk be a használni kívánt felületet és eszközleírót. Ez ebben a konkrét esetben ennyi lenne: + +[.programlisting] +.... +usb /dev/uscanner0 +.... + +A megfelelõ formátum és a további részletek leírásához ne felejtsük el azonban elolvasni a backend konfigurációs állományában felbukkanó megjegyzéseket és az ide tartozó man oldalt sem. Most már megpróbálkozhatunk újra a lapolvasó azonosításával: + +[source,bash] +.... +# scanimage -L +device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner +.... + +Láthatjuk, hogy az USB-s lapolvasónkat sikerült azonosítani. Nem számít, ha esetleg nem egyezne a valósággal a gyártó vagy a típus megjelölése. Itt a valóban lényeges elem az `epson:/dev/uscanner0` mezõ lesz, melynek a backend és az eszközleíró nevét kell helyesen tartalmaznia. +==== + +A beállítást akkor zárhatjuk le, miután a `scanimage -L` parancs képes észlelni a lapolvasót. A eszköz ekkor már készen áll a beolvasásra. + +Míg a man:sane[1] parancssorból teszi lehetõvé számunkra a lapolvasást, addig érdemesebb a képek olvasását egy grafikus felületen keresztül végeznünk. A SANE egy egyszerû, ám hatékony grafikus felületet ajánl fel ehhez, ez az xscanimage (package:graphics/sane-frontends[]). + +Az Xsane (package:graphics/xsane[]) egy másik népszerû grafikus frontend. Segítségével speciális lehetõségeket is kihasználhatunk, mint például többféle képolvasási mód (fénymásoló, fax stb.), színkorrekció, kötegelt beolvasás, stb. Mind a két említett alkalmazás elérhetõ a The GIMP bõvítményeként is. + +=== A lapolvasó használatának engedélyezése más felhasználók számára + +A korábban tárgyalt mûveletek mindegyikét `root` felhasználóként tudjuk csak végrehajtani. Azonban elõfordulhat, hogy más felhasználók számára is szeretnénk hozzáférést biztosítani a lapolvasóhoz. Ehhez az érintett felhasználóknak a lapolvasóhoz tartozó eszközleíróhoz olvasási és írás joggal kell rendelkezniük. Például az USB-s lapolvasónk a [.filename]#/dev/ugen0.2# eszközleírót használja, amely valójában csak a [.filename]#/dev/usb/0.2.0# eszközleíróra mutató szimbolikus link (ezt gyorsan le tudjuk ellenõrizni, ha megnézzük a [.filename]#/dev# könyvtár tartalmát). Az eszközleíró és a rá mutató szimbolikus link rendre a `wheel` és `operator` csoportok birtokában van. Ha a `_pgj_` nevû felhasználót felvesszük ezekbe a csoportokba, akkor ezáltal hozzá tud majd férni a lapolvasóhoz. Nyilvánvaló biztonsági megfontolásokból azonban kétszer is javasolt meggondolni, mely felhasználókat mely csoportokba vesszük fel, különösen, ha `wheel` csoportról van szó. Ennél valamivel jobb megoldást kínál, ha létrehozunk külön az USB eszközök használatára vonatkozó csoportot és a lapolvasót ezen csoport tagjainak számára elérhetõvé tesszük. + +Tehát erre a célra például megalkotjuk a `_usb_` csoportot. Ehhez elsõ lépésként a man:pw[8] parancs segítségével hozzuk létre magát a csoportot: + +[source,bash] +.... +# pw groupadd usb +.... + +Ezután a [.filename]#/dev/usb/0.2.0# eszközleírót és a rá mutató [.filename]#/dev/ugen0.2# szimbolikus linket kell az `usb` csoport részére elérhetõvé tennünk, a megfelelõ írási engedélyekkel (`0660` vagy `0664`) együtt, mivel alapértelmezetten csak a tulajdonosuk (`root`) tudja írni ezeket. Mindezt úgy tudjuk megtenni, ha az [.filename]#/etc/devfs.rules# állományhoz hozzáadjuk a megfelelõ sorokat: + +[.programlisting] +.... +[system=5] +add path ugen0.2 mode 0660 group usb +add path usb/0.2.0 mode 0660 group usb +.... + +A FreeBSD 7._X_ változatok esetén valószínûleg a következõ sorokra lesz szükségünk a [.filename]#/dev/uscanner0# eszközleíróhoz: + +[.programlisting] +.... +[system=5] +add path uscanner0 mode 0660 group usb +.... + +Ezt követõen az [.filename]#/etc/rc.conf# állományba írjuk be az alábbi sort és utána indítsuk újra a számítógépet: + +[.programlisting] +.... +devfs_system_ruleset="system" +.... + +Az itt szereplõ sorok pontos jelentésérõl a man:devfs[8] man oldaláról tájékozódhatunk. + +Ezután már csak fel kell vennünk azokat a felhasználókat a `_usb_` csoportba, amelyeknek engedélyezzük a lapolvasó használatát: + +[source,bash] +.... +# pw groupmod usb -m pgj +.... + +A további részletekrõl a man:pw[8] man oldalon olvashatunk. |