MPlayer - Movie Player for LINUX (C) 2000-2001 Arpad Gereoffy (A'rpi/ESP-team)

http://www.mplayerhq.hu

[ English ] [ Hungarian ] [ German ] [ French ]


Tartalomjegyzék



1. Bevezetés

1.1. Röviden

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, VOB, AVI, VIVO, ASF/WMV, QT/MOV, FLI file-t, és ezekhez 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, DirectFb, sőt SDL-lel vagy GGI-vel is (beleértve ezáltal az SDL/GGI 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ő. Az MPlayer támogat továbbá hardveres MPEG kártyákkal történő dekódolást/megjelenítést, így például aDVB és DXR3/Hollywood+ kártyákon ! É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. GPL-re törekszünk.

Az MPlayer binárisok illetve bináris csomagok formájában történő terjesztése jelenleg lehetetlen, jogi és technikai akadályokba ütközik. Részletes információ ezen file, második részében található (angol) (ajánlott olvasmány).

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.

1.2. Történelem

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...

1.3. Installálás

Ez a fejezet arra szolgál hogy segítsen véghezvinni az MPlayer fordítását és konfigurálását. Nem könnyű, de nem is szükségszerűen nehéz. Ha a leírtaktól eltérő viselkedést tapasztalsz, nézd át a dokumentációt és bizonyos hogy megtalálod a választ. A linkek azért vannak hogy alaposan elolvasd ahova mutatnak. Időigényes lesz, de megéri.

Újabb keletű rendszer ajánlott. Linuxon a 2.4.x-es számú kernelek ajánlottak, de 2.4.10-zel és afölött problémák adódhatnak (licenszelés, kernel bugok, stb).

SZÜKSÉGES CSOMAGOK

A következő (és leírt verziójú) csomagokra lesz szükséged ha nem akarsz problémákba ütközni:

CODECEK

VIDEOKÁRTYÁK

Itt kétféle videokártyát különböztetünk meg. Az egyik fajta (az újabbak) rendelkezik hardveres YUV gyorsítással, a másik pedig nem.

YUV kártyák

Kevés CPU idő felhasználásával tudják megjeleníteni vagy nagyítani a képet. Itt a nagyítás ugyanannyi CPU időt használ mint a síma megjelenítés, tekintve hogy a videokártya végzi. Így a teljes képernyős lejátszás szép és gyors lesz.

YUV gyorsítással nem rendelkező kártyák

Ezeknél vagy szoftveresen kell nagyítani a képet (ez nagyon lassú), vagy le kell váltani egy kisebb videomódba hogy pont akkora legyen a kép (pl 352x288). Ha nincs YUV gyorsításod, az utóbbi módszer a célravezetőbb. Az MPlayerben ez a -vm opcióval kapcsolható be. A következő meghajtókat érdemes kipróbálni :

HANGKÁRTYÁK

EGYÉB FUNKCIÓK

Ezután fordítsd le az MPlayer-t:

	./configure
	make
	make install

Ajánlott átnézni a ./configure kimenetét valamint a configure.log file-t, fontos információkat tartalmaznak 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. Ajánlatos továbbá az example.conf és a manpage átnézése, hogy képet kapj az opciókról.

1.4. És a grafikus felület ?

A grafikus felület GTK-t használ (de alapban nem épül rá), í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 :

Mivel a GTK nem fut setuid root binárisból, nem lehet egyszerre használni a GUI-t és az új időzítő kódot egyszerre (kivéve persze ha root-ként futtatod az MPlayer-t).

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.

1.5. Feliratok és OSD

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. Funkciók

2.1. Támogatott formátumok

2.2. Támogatott codec-ek

2.3. Video és audio kimeneti eszközök

2.4. MEncoder

2.5. TV bemenet

Ez a fejezet elmagyarázza hogy tudsz nézni/grabbelni egy V4L kompatibilis TV tuner-ről.

Fordítás

  • előszöris, add hozzá a --enable-tv opciót a ./configure-hez, és fordíts újra.
  • bizonyosodj meg róla hogy a tunered működik más TV szoftverekkel Linux alatt, mint például az xawtv.

Rendelkezésre álló opciók
   on    TV bemenet használata
   driver dummy - NULL TV bemenet :) Csak tesztelésre, hamis TV bemenetet generál.
v4l - tényleges képgrabbelés V4L interface-ről (alapértelmezett : /dev/video0)
   device    más eszköz megadása a /dev/video0 helyett
   input    itt megadható hogy a tuner mely bemenetéről akarsz grabbelni (pl.: television, s-video, composite, ...)
Indításnál kiírja a lehetőségeket.
   freq    megadhatod hogy mely frekvenciára állítsa a tunert (pl. 511.250 ez a Magyar Királyi TV lesz:)
   outfmt    milyen kimeneti formátumban történjen a megjelenítés (rgb32, rgb24, yv12, uyvy)
Ennek és a következő opciónak beállításainak egyezniük kell !
   width    a megjelenítési ablak szélessége, pixelben
   height    a megjelenítési ablak magassága, pixelben
   norm    PAL, SECAM, NTSC
   channel    a tuner megadott csatornára állítása
   chanlist    us-bcast, us-cable, europe-west, europe-east, etc

Irányítás a billentyűzetről

  h or l  előző/következő csatorna
nnormaváltás
bcsatornalista váltása

Példák

Teszt kimenet, AAlib-re :)
    mplayer -tv on:driver=dummy:width=640:height=480 -vo aa

Szabványos V4L-ről bemenet
    mplayer -tv on:driver=v4l:width=800:height=600:device=/dev/video0:input=television:outfmt=yv12 -vo xv

3. Használat

  file  mplayer [opciók] [útvonal//]filenév
VCDmplayer [opciók] -vcd trackszám /dev/cdrom
DVDmplayer [opciók] -dvd titleno [/dev/dvd]
netmplayer [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 lehátra/előre seek, 1 percnyi
pgup/pgdownhátra/előre seek, 10 percnyi
p vagy SPACEpillanatállj, bármely billentyűre tovább
q vagy ESClejá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
oOSD funkciók : nincs / seek / seek+idő
mmaster/pcm csatorna használata hangerőhöz
z vagy xfeliratok késleltetése +/- 0.1 másodperccel

(a következők csak a DirectShow DivX illetve DivX4 codecekre érvényesek)

1 vagy 2kontraszt beállítása
3 vagy 4fényerő beállítása
5 vagy 6hue állítása
7 vagy 8szaturáció állítása

Grafikus felület billentyűi

  , és .  előző / következő file
numerikus - és +hangerő csökkentése / növelése
enterlejátszás indítása
spacepillanatállj
sstop
aabout
lfile betöltése
bskin böngésző
eequalizer ki/be
plejátszási lista ki/be
fteljesképernyős mód ki/be
mhang ki/be

TV interface irányítása

  h or l  előző/következő csatorna
nnormaváltás
bcsatornalista váltása

3.2. Irányítás LIRC-cel

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.
QUITkilépés
RWND10 másodperccel vissza
FRWND60 másodperccel vissza
FWD10 másodperccel előre
FFWD60 másodperccel előre
INCVOLhangerő növelése 1 százalékkal
DECVOLhangerő 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 -

4. FAQ fejezet

5. CD/DVD fejezet

6. Különböző operációs rendszerek

6.1. Debian csomagolás

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) ...

6.2. FreeBSD

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

Egyelőre nincs DVD támogatás FreeBSD-hez.

6.3. Solaris

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.

6.4. StrongARM

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

6.5. Silicon Graphics Indigo / IRIX

Azt mondják műxik. Használd az sgi ao meghajtót és jók leszünk. Közelebbi információ valakinél?

6.6. QNX

Működik. Csak -vo x11 kimenete van ami lassabb mintha Linuxon lenne, tekintve hogy a QNX csak emulálja az X-et, és azt is lassan.

A függelék - Készítők

A2 függelék - Maintainerek

B függelék - Levelezési listák

Jónéhány MPlayer lista van. A következő címeken lehet feliratkozni:

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