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™ 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 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
/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:
#
ln -sf /dev/acd0 /dev/dvd
#
ln -sf /dev/acd0 /dev/rdvd
A 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 /etc/devfs.conf
állományba felvesszük az alábbi
sort:
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 sysctl(8) változó értékének megnövelése is:
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™ 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
Az Xorg és az XFree86™ 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:
%
xvinfo
Ha a parancs eredménye ehhez hasonló, akkor a kártyánk támogatja az XVideót:
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:
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 7.4.3. szakasz - Ajánlott olvasmányokban, miként tudjuk növelni a teljesítményét.
A Simple Directmedia Layer, vagy SDL, eredetileg a Microsoft® Windows®, BeOS és UNIX® 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 devel/sdl12
helyen található.
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 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 q
billentyűt kell lenyomni.
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 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
/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.
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® 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.
Az MPlayer a 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
Makefile
állományban
még számos, a make
parancsnak a fordítás megkezdésekor
átadható beállítást
találhatunk:
#
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:
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
/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®-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.
Az MPlayer
használatához a felhasználói
könyvtárunkban rendelkeznünk kell egy
.mplayer
elnevezésű
könyvtárral. Ezt a következő
paranccsal tudjuk létrehozni:
%
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
,
a tesztvideo.avi
-vo
beállításával
játszható le a különböző
felületeken:
%
mplayer -vo xv tesztvideo.avi
%
mplayer -vo sdl tesztvideo.avi
%
mplayer -vo x11 tesztvideo.avi
#
mplayer -vo dga tesztvideo.avi
#
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
paramétert a
tesztvideo.avi
dvd://
paraméterekkel, ahol az N
-dvd-device
ESZKÖZ
N
a lejátszandó fejezet sorszáma,
valamint az
a DVD-hez tartozó eszközleíró.
Például így tudjuk elkezdeni
ESZKÖZ
/dev/dvd
eszközről a 3.
fejezet lejátszását:
#
mplayer -vo xv dvd://3 -dvd-device /dev/dvd
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 /dev/acd0
.
Erről többet a port
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
.mplayer/config
állományt
és itt állítjuk be a gyakori
opciókat:
Végezetül megemlítjük, hogy az
mplayer
segítségével
a DVD-n található fejezeteket ki tudjuk
menteni .vob
állományokba. A DVD második
fejezetének kimentéséhez
gépeljük be ezt:
#
mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
A parancs eredményeképpen keletkező
out.vob
állomány
formátuma MPEG lesz, amit a fejezetben bemutatott
további csomagokkal tudunk feldolgozni.
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:
%
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
állományt MPEG4 video- és MPEG3
hangtömörítéssel (amihez kell majd a
bemenő.avi
audio/lame
) így
tudjuk lekódolni:
%
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
állományt az bemenő.avi
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.
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 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:
%
xine
Vagy a grafikus felület használata nélkül kiadhatjuk közvetlenül is az állomány lejátszását:
%
xine -g -p kedvencmozim.avi
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 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:
#
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:
%
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ő
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 eredmény_vcd.mpg
multimedia/vcdimager
és
sysutils/cdrdao
programokra.
A transcode
parancsnak van saját
man oldala, azonban ehelyett a transcode
wikiben érdemes inkább további
információkat és példákat
keresni.
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 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®-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 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:
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.