Tartalomjegyzék
Az MPlayer egy LINUXON működő videolejátszó (fut sok más Unix-on és akár nem-x86 processzorokon is. Lásd a 6-os fejezetet). Le tudja játszani a legtöbb MPEG, AVI és ASF/WMV file-t (néhány QT/MOV file-t is, leginkább a CVID vagy VP31 video fileokat, tömörítetlen audioval), valamint felsorakoztat jónéhány natív, XAnim, és Win32 codecet. Nézhetsz vele VideoCD-t, SVCD-t, DVD-t, 3ivx-et, és még DivX-et is (ezutóbbihoz egyáltalán nincs szükség az avifile csomagra!). A másik óriási tulajdonsága az MPlayernek a megjelenítési módok széles választéka. Működik X11, Xv, DGA, OpenGL, SVGAlib, fbdev, aalib, sőt SDL-lel is (beleértve ezáltal az SDL drivereit is), és néhány alacsonyszintű kártyaspecifikus driver (Matrox/3dfx/SiS) is használható! Legtöbbjük támogat szoftveres vagy hardveres skálázást, így a teljesképernyős mód is elérhető. És még nem is szóltam a szép, élsímított, árnyékolt feliratozásról (9 támogatott típus!!!), ami támogat európai/ISO 8859-1,2 (magyar, angol, cseh, stb), cirill és koreai fontokat, valamint OSD-t!
Az MPlayer alapjában véve GPL, de tartalmaz néhány nem-GPL kódot is, amit NEM lehet bináris formában terjeszteni, továbbá tartalmazza az OpenDivX könyvtárat is, melynek speciális licensze van.
Nem codeceket írtam, csak néhány lejátszót. Sok időt töltöttem azzal is, hogy megtaláljam a megfelelő módszert a hibás file-ok beolvasására (mind MPEG, AVI), valamint a tökéletes A-V szinkronra, akár seekkel is. A lejátszó sziklaszilárdan játszik le hibás MPEG file-okat (hasznos néhány VCD-nél), és lejátszik minden olyan hibás AVI-t, amit a csodás windows media player nem. Még az index chunk nélküli AVI-k is lejátszhatók, sőt az indexet fel is lehet építeni a '-idx' opcióval, így tekerni is lehet bennük! Amint az látszik, a stabilitás és a minőség a legfontosabbak a számomra, és a sebesség is fontos.
Egy éve kezdődött... Nagyon sok lejátszót kipróbáltam Linux alatt (mtv,xmps,dvdview,livid/oms, VideoLAN,xine,xanim,avifile,xmmp), de mindnek ugyanazok a problémái. Többnyire a különleges file-okkal, vagy a hang/kép szinkronnal. Legtöbbjük képtelen mind MPEG1, MPEG2 ÉS AVI (DivX) lejátszásra. Sokuknak gondjuk van a képminőséggel, vagy a sebességgel is. Elhatároztam, hogy (át)írok egyet...
A következő (és leírt verziójú) csomagokra lesz szükséged ha nem akarsz
problémákba ütközni:
Mielőtt sietnél fordítani, olvasd el a következőket is :
Ezután fordítsd le az MPlayer-t:
./configure make make install
Ajánlott átnézni a ./configure kimenetét, fontos információkat tartalmaz arra vonatkozóan hogy mi lesz belefordítva és mi nem. Megnézheted továbbá a config.h és config.mak file-okat.
Bár nem kötelező, jobb ha felteszed a fontokat is, mert így kapsz OSD-t, és feliratok megjelenítésének képességét. Töltsd le az mp-arial-iso-8859-2.zip-et (és/vagy opcionálisan nyelvi kiegészítőket). Részletekért olvasd el az 1.5-ös fejezetet.
mkdir ~/.mplayer/font cd ~/.mplayer/font unzip mp-arial-iso-8859-2.zip
Már csak egy dolog maradt hátra: másold át a codecs.conf file-t
az etc
könyvtárból (az MPlayer könyvtáron belül) a $HOME/.mplayer/codecs.conf-ba.
A grafikus felület GTK-ra épül, így a gtk-t (és a hozzávaló fejlesztői csomagokat)
fel kell installálni. A lefordításhoz meg kell adni a --enable-gui
opciót
a ./configure-nak. Ezután, a GUI mód bekapcsolásához :
-gui
opciótgui=yes
sort a konfigurációs file-baln -s /usr/local/bin/mplayer /usr/local/bin/gmplayer
,
és a gmplayer
file-t indítsd.
Mivel az MPlayer alapban nem tartalmaz skineket, ezeket külön kell
letöltened. Lásd itt.
Ezeket a szokásos /usr/local/share/mplayer/Skin
vagy $HOME/.mplayer/Skin
könyvtárak egyikébe kell kicsomagolni. Az MPlayer egy 'default'
nevű könyvtárat keres alapállapotban, de a -skin newskin opcióval, vagy
a konfigurációs file-ba a skin=newskin sor beírásával meg lehet adni
ehelyett másik alapban betöltendő skin-t. Ilyenkor a */Skin/newskin
könyvtárban lévő skin kerül betöltésre.
Igen, az MPlayer sokféle fajta feliratot támogat. A beolvasó kód jelenleg 8 fajtát ismer fel. Hogy lásd melyek ezek, nézd meg a subreader.c file-t, a 30. sor körül.
Az MPlayer tartalmaz egy új, MPsub nevű feliratformátumot. A tervezés az én (Gabucino) kezem munkáját dicséri. A legfőbb újítása hogy dinamikusan idő alapú (bár van képkocka alapú módja is). Példa (a DOCS/tech/mpsub.sub file-ból) :
# első szám : ennyi másodpercnyi szünet miután az előző felirat eltünt
# második szám : a jelenlegi feliratot ennyi ideig jeleníti meg
15 3
A long, long time ago...
0 3
in a galaxy far away...
0 3
Naboo was under an attack.
Tehát a fő cél a felirat szerkesztés/időzítés/összeillesztés/szétvágás
megkönnyítése. Valamint, ha - tegyük fel - szerzel egy SSA feliratot,
de a te filmedhez képest rosszul van időzítve, egyszerűen végrehajtasz egy
mplayer semmi.avi -sub forras.ssa -dumpmpsub parancsot. Ekkor egy
dump.mpsub
file jön létre a jelenlegi könyvtárban, a
forrás feliratfile szövegével, de MPsub formátumban. Ezekután
szabadon, röviden, gyorsan időzítheted.
A feliratok egy 'OSD', On Screen Display nevu módszerrel vannak megjelenítve. Ez az OSD használatos az idő, hangerő, stb megjelenítésére is.
OSD és feliratok installálása
Előszöris, egy MPlayer betűtipus csomag kell. Sok módszer van a megszerzésére:
Ezután, tömörítsd ki a file-okat a ~/.mplayer/font/ könyvtárba. Ha most elindítod a lejátszást, egy órát láthatsz a film bal felső sarkában (kikapcsolás az 'o' billentyűvel).
Az OSD-nek 3 állása van: ('o' billentyűvel lehet váltani)
Az alapértelmezést megváltoztathatod az osdlevel=
változóval a
konfigurációs file-ban.
2.1. Video formátumok, audio és video codec-ek
2.2. Video és audio kimeneti eszközök
file | mplayer [opciók] [útvonal//]filenév | ||
VCD | mplayer [opciók] -vcd trackszám /dev/cdrom | ||
DVD | mplayer [opciók] -dvd titleno [/dev/dvd] | ||
net | mplayer [opciók] http://site.com/file.[mpg|avi] | ||
mplayer -vo x11 /mnt/Films/Contact/contact2.mpg mplayer -vcd 2 /dev/cdrom mplayer -afm 3 /mnt/DVDtrailers/alien4.vob mplayer -dvd 1 /dev/dvd mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi
3.1. Irányítás billentyűzetről
<- és -> | hátra/előre seek, 10 másodpercnyi | ||
fel vagy le | hátra/előre seek, 1 percnyi | ||
pgup/pgdown | hátra/előre seek, 10 percnyi | ||
p vagy SPACE | pillanatállj, bármely billentyűre tovább | ||
q vagy ESC | lejátszás leállítasa, kilépés | ||
+ vagy - | audio késleltetése +/- 0.1 másodperccel | ||
/ vagy * | hangerő csökkentése/növelése | ||
o | OSD funkciók : nincs / seek / seek+idő | ||
m | master/pcm csatorna használata hangerőhöz | ||
z vagy x | feliratok késleltetése +/- 0.1 másodperccel | ||
(a következők csak a DirectShow DivX illetve DivX4 codecekre érvényesek) | |||
1 vagy 2 | kontraszt beállítása | ||
3 vagy 4 | fényerő beállítása | ||
5 vagy 6 | hue állítása | ||
7 vagy 8 | szaturáció állítása | ||
Grafikus felület billentyűi
, és . | előző / következő file | ||
numerikus - és + | hangerő csökkentése / növelése | ||
enter | lejátszás indítása | ||
space | pillanatállj | ||
s | stop | ||
a | about | ||
l | file betöltése | ||
b | skin böngésző | ||
e | equalizer ki/be | ||
p | lejátszási lista ki/be | ||
f | teljesképernyős mód ki/be | ||
m | hang ki/be | ||
Linux Infrared Remote Control - használj egy otthon is könnyen elkészíthető infravörös távirányítót, hogy irányítsd vele a géped! Részletek a www.lirc.org címen.
Ha felinstalláltad a lirc csomagot, így fordítsd az MPlayer-t : ./configure --enable-lirc
Ha sikerült, az MPlayer ezt fogja kiírni induláskor: LIRC init was successful. Ha hibát talál, azt is kiírja. Ha semmi LIRC-szerűt nem mond, akkor nincs belefordítva.
A megadandó programnév - mily' csoda - mplayer_lirc. A következő parancsokat érti:
PAUSE | lejátszás megállítása. Bármely másik billentyű újraindítja. | ||
QUIT | kilépés | ||
RWND | 10 másodperccel vissza | ||
FRWND | 60 másodperccel vissza | ||
FWD | 10 másodperccel előre | ||
FFWD | 60 másodperccel előre | ||
INCVOL | hangerő növelése 1 százalékkal | ||
DECVOL | hangerő csökkentése 1 százalékkal | ||
MASTER | 'master' mixer csatorna használata | ||
PCM | 'pcm' mixer csatorna használata | ||
Ne felejtsd bekapcsolni a repeat flag-et a RWND/FWD-hez a .lircrc-ben. Itt egy példa az enyémből:
begin remote = CU-SX070 prog = mplayer_lirc button = Tape_Play repeat = 1 config = FFWD end begin remote = CU-SX070 prog = mplayer_lirc button = Tape_Stop config = QUIT end
Ha nem felel meg a lirc-config file eredeti helye (~/.lircrc), használd a -lircconf [file-név] kapcsolót.
3.3. Lejátszás hálózatról, vagy pipe-n keresztül
Az MPlayer a HTTP protokollal tud lejátszani hálózaton keresztül. A konfigurálása egyszerű, csak fordítsd újra az MPlayer-t így :
./configure --enable-streaming
Nem tud viszont lejátszani MMS protokollal ASF file-okat hálózatról, csak HTTP-vel.
MPlayer tud a standard bemenetről (NEM named pipe-okról) beolvasni. Itt egy példa az FTP-n keresztüli lejátszásra ennek segítségével :
wget ftp://micorsops.com/something.avi -O - | mplayer -
6. Különböző operációs rendszerek
A csomag felépítéséhez töltsd le a cvs verziót vagy .tgz-t, tömörítsd ki, majd lépj bele :
cd main fakeroot debian/rules binary
(... mplayer detektálja a hardvert/szoftvert, lefordul, és..)
dpkg-deb: building package `mplayer' in `../mplayer_0.18-1_i386.deb'.
Most root-ként add ki a következő parancsot :
dpkg -i ../mplayer_0.18-1_i386.deb
Valahogy így kell kinéznie:
eyck@incubus:/src/main$ sudo dpkg -i ../mplayer_0.18-1_i386.deb Password: (Reading database ... 26946 files and directories currently installed.) Preparing to replace mplayer 0.17a-1 (using ../mplayer_0.18-1_i386.deb) Unpacking replacement mplayer ... Setting up mplayer (0.18-1) ...
A fordításhoz szükséged lesz GNU make-re (gmake, /usr/ports/devel/gmake), natív BSD make nem jó.
Az MPlayer futtatásához fordítsd újra a kernelt "options USER_LDT"-vel, kivéve ha -CURRENT-et használsz, ahol ez az alapállapot). Ha van SSE-t támogató CPU-d, használd az "options CPU_ENABLE_SSE"-t is. FreeBSD-STABLE kell, vagy kernel patch-ek.
Ha az MPlayer azt mondja hogy "CD-ROM Device '/dev/cdrom' not found!",
csinálj egy linket : ln -s /dev/(meghajtó) /dev/cdrom
Egyenlőre nincs DVD támogatás FreeBSD-hez.
Az AVI file-ok lejátszása legjobban Solarix x86-on működik, mert itt megteheted hogy win32-es codec-eket használsz, az x86-os platform miatt. Solaris SPARC-on jónéhány AVI file lesz ami nem fog működni, mert csak win32-es codec van hozzá. DivX/OpenDivX filmek menni fognak, ha libavcodec-et használsz.
Az MPlayer kihasználja az UltraSPARC gépek VIS utasításkészletét (az MMX sparc-os megfelelője), bár jelenleg csak a libmpeg2-ben, libavcodec-ben, és a libvo-ban, mp3lib-ben nem. Egy 400Mhz-es CPU elég hogy megnézz egy VOB file-t. Szükséged lesz egy felinstallált mLib-re is.
A fordításhoz GNU make-re lesz szükséged (gmake, /opt/sfw/gmake), natív Solaris make nem jo. Egy tipikus hiba ha mégis azzal próbálkozol :
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
Solaris SPARC-on GNU C/C++ fordító is kell; az nem számít ha assemblerrel vagy nélküle van.
Solaris x86-on kell a GNU assembler is és a GNU C/C++ fordító is,
aminek támogatnia kell a GNU assemblert! Az MPlayer igencsak támaszkodik
az MMX, SSE és 3DNOW! utasításokra, amiket a Solaris standard assemblere
(/usr/ccs/bin/as
) nem támogat.
A configure script megpróbálja megkeresni hogy a "gcc" parancsod melyik assemblert indítja (ha nem sikerül neki, használd a "--as=/ahova/installáltad/gnu-as" parancsot).
GNU assembler nélküli GCC ilyet ír ki Solaris x86-on :
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(Megoldás: "--with-as=gas"-al fordított GCC használata)
Tipikus hiba GNU as nem-használatára:
% gmake ... gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c Assembler: mplayer.c "(stdin)", line 3567 : Illegal mnemonic "(stdin)", line 3567 : Syntax error ... more "Illegal mnemonic" and "Syntax error" errors ...
DVD támogatáshoz patchelt libcss szükséges. Patch : http://www.tools.de/solaris/mplayer/
2 hiba miatt nem tudsz megbízhatóan DVD-t lejátszani Solaris 8 x86-on, ha annak kapacitása nagyobb mint 4 GB :
On Solaris with an UltraSPARC CPU, you can get some extra speed by using the CPU's VIS instructions for certain time consuming operations. VIS acceleration can be used in MPlayer by calling functions in Sun's mediaLib.
VIS accelerated operations from mediaLib are used for mpeg2 video decoding and for color space conversion in the video output drivers.
Az MPlayer állítólag lefordul StrongARM-on. A következő opciókat használd :
./configure --target=arm-linux --disable-css --with-x11libdir=/usr/arm/lib --with-x11incdir=/usr/arm/lib --disable-gcc-checking
B függelék - Levelezési listák
Jónéhány MPlayer lista van. A következő címeken lehet feliratkozni:
Ez az MPlayer fejlesztői lista! Témák: interface/API változások, új library-k, optimalizáció, ./configure, és IDE kell küldeni patch-eket. NE küldj ide bugreportot, kérdést! Ne növeljük a lista forgalmát.
Matrox-szal kapcsolatos kérdések helye,
A DVB nevű hardveres dekóderkártyával kapcsolatos kérdések helye.
CVS-beli változásokról kérdéseket ide küldj. (ha nem érted, mire kell egy változtatás, vagy jobb fixet tudsz) Bizonyosodj meg róla, hogy a kívánt fejlesztő is olvassa a listát!
Megj.: a fenti listák nyelve ANGOL, kivéve ahol más van feltüntetve. Más nyelven ne írj!
Megj.: a kereshető archivum itt található.
C függelék - Hogyan jelents be hibát