# Konténerek

Fontos, hogy eloszlassunk egy gyakori tévhitet. A legtöbben ha egy `.AVI` kiterjesztésű filmet látnak, rögtön arra következtetnek, hogy az nem egy MPEG fájl. Ez nem igaz. Legalábbis nem teljesen. Az átlagos véleménnyel ellentétben egy ilyen fájl tartalmazhat MPEG-1 videót.

Mint láthatod, egy codec nem ugyan az, mint egy konténer formátum. Például videó codec-ek ezek: MPEG-1, MPEG-2, MPEG-4 (DivX), Indeo5, 3ivx. De konténer formátumok ezek: MPG, AVI, ASF.

Elméletileg egy OpenDivX-es videót és MP3 audiót beletehetsz egy MPG konténerbe. Habár a legtöbb lejátszó nem fogja lejátszani, mert MPEG-1-es videót és MP2-es audiót várnak (az AVI-val ellentétben az MPG nem rendelkezik a megfelelő mezőkkel a videó és audió folyamainak leírásához). Vagy tehetsz MPEG-1 videót is AVI fájlba. Az FFmpeg és a MEncoder tud készíteni ilyen fájlokat.

## Videó formátumok

### MPEG fájlok

Az MPEG fájlok különböző alakúak lehetnek:

- MPG: Ez a legalapabb formátum az MPEG fájl formátumok közül. MPEG-1 videót és MP2 (MPEG-1 layer 2) vagy ritkán MP1 audiót tartalmaz.

- DAT: Ez majdnem ugyan olyan formátum, mint az MPG, csak a kiterjesztés különbözik. Video CD-ken használják. A VCD-k készítési és a Linux tervezési módja miatt a DAT fájlokat nem lehet sem lejátszani sem átmásolni a VCD-kről mint rendes fájlokat. A `vcd://` előtagot kell használnod a Video CD lejátszásához.

- VOB: Ez a DVD-ken használt MPEG fájl formátum. Ugyan az, mint az MPG, plusz tartalmazhat feliratot és nem-MPEG (AC-3) hangot. Kódolt MPEG-2 videót és általában AC-3 audiót tartalmaz, de DTS, MP2 és tömörítetlen LPCM is megengedett. Olvasd el a DVD részt!

- TY: Ez egy TiVo MPEG stream. MPEG PES adatot tartalmaz az audió és videó stream-hez, valamint extra információkat, mint pl. zárt feliratok. A konténer nem MPEG program stream, csak egy TiVo által készített hasonló formátum. Ha többet akarsz megtudni a TiVo stream formátumról, olvasd el a TyStudio oldalát.

A képkockák sorozata független csoportokat alkot az MPEG fájlokban. Ez azt jelenti, hogy egy MPEG fájlt szabványos fájl eszközökkel (például `dd`, `cut`) vághatsz/összeilleszthetsz, úgy, hogy teljesen működőképes marad.

Az MPG-k egyik legfontosabb tulajdonsága, hogy van egy mezőjük, mely a videó folyam képarányát írja le. Például az SVCD-knek 480x480 felbontású videójuk van, a fejlécben ilyenkor ez a mező 4:3 arányra van állítva, ezért játszódnak le 640x480-ban. Az AVI fájlokból gyakran hiányzik ez a mező, ezért ezeket újra kell méretezni a `-aspect` kapcsolóval kódolás vagy lejátszás közben.

### AVI fájlok

A Microsoft által tervezett AVI (Audio Video Interleaved) egy széles körben elterjedt, többcélú formátum, melyet jelenleg leginkább MPEG-4 (DivX és DivX4) videóknál használnak. Rengeteg ismert hátránya és hiányossága van (például stream-elésben). Támogat egy videó folyamot 0-99 audió folyammal, max 2 GB-ig, de van egy OpenDML kiterjesztés, amivel ennél nagyobb fájlok is kezelhetőek. A Microsoft már nem javasolja a használatát, és az ASF/WMV használatára buzdít. Nem mintha ez bárkit is érdekelne.

Van egy hack, aminek a segítségével az AVI fájlokban lehet Ogg Vorbis audió folyam is, de így inkompatibilisek lesznek a szabványos AVI-val. Az MPlayer le tudja játszani ezeket a fájlokat. A keresés is megoldott, de ezt egyszerűen gátolja a rosszul kódolt fájlok zavaros fejléce. Sajnos jelenleg az egyetlen kódoló program, ami tud ilyen fájlokat készíteni, a NanDub is küzd ezzel a problémával.

A DV kamerák készítenek nyers DV folyamokat, amit a DV grab-belő segédprogramja két különböző típusú AVI fájllá konvertál. Az AVI ezután vagy külön audió és videó stream-et fog tartalmazni, amit az MPlayer le tud játszani vagy nyers DV stream-et, aminek a támogatása még fejlesztés alatt van.

Kétfajta AVI fájl létezik:

- Interleaved (átlapolt): Az audió és a videó tartalom át van lapolva. Ez az alapértelmezett. Javasolt és a legtöbbször használt. Néhány segédprogram hibás szinkronú átlapolt AVI-t készít. Az MPlayer ezeket átlapoltként detektálja és emiatt elveszik az A/V szinkronizáció, valószínűleg pörgetésnél. Ezeket a fájlokat nem-átlapoltként kell lejátszani (a `-ni` kapcsolóval).

- Non-interleaved (Nem-átlapolt): Először jön a teljes videó folyam, majd a teljes audió folyam. Így rengeteg ugrásra van szükség, mely megnehezíti a hálózati és CD-ROM-ról történő lejátszást.

Az MPlayer kétféle időzítést támogat az AVI fájlokhoz:

- bps-alapú: A videó/audió folyam bitrátán/mintavételi rátáján alapul. Ezt a módszert használja a legtöbb lejátszó, beleértve az avifilet és a Windows Media Player-t. A sérült fejlécű vagy VBR audióval, de nem VBR-kész kódolóval készített fájlok A/V deszinkronizációhoz vezetnek ezzel a módszerrel (legtöbbször pörgetésnél).

- interleaving-alapú: Nem használja a fejléc bitráta értékét, inkább az átlapolt audió és videó darabok relatív pozícióját nézi, lehetővé téve ezzel a VBR audió-s, rosszul kódolt fájlok lejátszását.

Bármelyik audió és videó codec engedélyezett, de vedd figyelembe, hogy a VBR audiót a legtöbb lejátszó nem támogatja. A fájl formátum lehetővé teszi a VBR audió használatát, de a legtöbb lejátszó CBR audiót vár, így elakadnak a VBR-ben. A VBR ritka és a Microsoft AVI specifikációi csak a CBR audiót írják le. Azt is észre lehet venni, hogy a legtöbb AVI kódoló/multiplexelő hibás fájlt készít VBR audió használatakor. Csak két ismert kivétel van: a NanDub és a MEncoder.

### ASF/WMV fájlok

Az ASF (Active Streaming Format) szintén a Microsofttól származik. Az ASF-nek kétfajta verzióját készítették el, v1.0 és v2.0. A v1.0-t a saját média eszközeik használják (Windows Media Player és Windows Media Encoder) és nagyon titkos. A v2.0 nyilvános és szabadalmaztatott :). Természetesen különböznek, semmilyen kompatibilitás nincs köztük (ez is csak egy jogi játék). Az MPlayer csak a v1.0-t támogatja, mivel még soha senki sem látott v2.0 fájlokat :). Figyelj rá, hogy az ASF fájlok manapság `.WMA` vagy `.WMV` kiterjesztésűek.

### QuickTime/MOV fájlok

Ezeket a formátumokat az Apple fejlesztette ki, és bármilyen codec-et tartalmazhatnak, CBR-t vagy VBR-t. Legtöbbször `.QT` vagy `.MOV` kiterjesztésük van. Megjegyzendő, hogy mióta az MPEG-4 csapat a QuickTime-ot választotta az MPEG-4 javasolt fájlformátumának, a MOV fájlaik `.MPG` vagy `.MP4` kiterjesztéssel jönnek (érdekes módon a videó és audió folyamok ezekben a fájlokban igazi MPG és AAC fájlok. Még ki is tudod őket csomagolni a `-dumpvideo` és `-dumpaudio` kapcsolókkal.).

### VIVO fájlok

Az MPlayer örömmel demuxálja a VIVO fájl formátumokat. A legnagyobb hátránya a formátumnak az, hogy nincs index blokkja, sem fix csomag mérete vagy szinkron bájtja, és a legtöbb fájlban még a kulcs képkockák is hiányoznak, így felejtsd el a pörgetést!

A VIVO/1.0 fájlok videó codec-je szabványos h.263. A VIVO/2.0 fájlok videó codec-je módosult, nem szabványos h.263v2. Az audio ugyan az, valószínűleg g.723 (standard) vagy Vivo Siren.

### FLI fájlok

A FLI egy nagyon régi fájl formátum, melyet az Autodesk Animator használt, de gyakoran használják rövid animációkhoz a neten. Az MPlayer demuxálja és dekódolja a FLI filmeket és még keresni is tud bennük (hasznos a `-loop` kapcsolóval történő ciklikus lejátszásnál). A FLI fájlokban nincs kulcs képkocka, így a kép egy rövid időre zavaros lesz a keresés után.

### RealMedia (RM) fájlok

Igen, az MPlayer tudja olvasni (demuxálni) a RealMedia (`.rm`) fájlokat.

### NuppelVideo fájlok

A NuppelVideo egy TV grab-belő eszköz (AFAIK:). Az MPlayer tudja olvasni a `.NUV` fájlait (csak NuppelVideo 5.0). Ezek a fájlok tartalmazhatnak tömörítetlen YV12, YV12+RTJpeg tömörített, YV12 RTJpeg+lzo tömörített és YV12+lzo tömörített képkockákat. Az MPlayer dekódolja (és kódolja a MEncoderrel MPEG-4-be (DivX)/stb.!) őket. A keresés működik.

### yuv4mpeg fájlok

A yuv4mpeg / yuv4mpeg2 egy az mjpegtools programok által használt fájlformátum. Grab-belheted, készíthetsz, szűrheted vagy kódolhatod az ilyen formátumú videókat ezekkel az eszközökkel. A fájl formátum igazából tömörítetlen YUV 4:2:0 képek sorozatából áll.

### FILM fájlok

Ezt a formátumot a régi Sega Saturn CD-ROM játékok használták.

### RoQ fájlok

A RoQ fájlok multimédia fájlok, melyeket pár ID játék használ, pl. a Quake III és a Return to Castle Wolfenstein.

### OGG/OGM fájlok

Ez egy új fájlformátum a Xiphophorus-tól. Bármilyen videó és audió codec-et tartalmazhat, CBR vagy VBR. El kell végezned a libogg és a libvorbis telepítését az MPlayer fordítása előtt, hogy le tudd játszani ezeket a fájlokat.

### SDP fájlok

Az SDP egy IETF szabványos formátum videó és/vagy audió RTP folyamok leírásához. ("LIVE555 Streaming Media" szükséges.)

### PVA fájlok

A PVA egy MPEG-szerű formátum, melyet a DVB TV kártyák szoftvere használ (pl.: MultiDec, WinTV Windows alatt).

### NSV fájlok

NSV (NullSoft Video) egy a Winamp lejátszó által használt formátum audio és video stream-eléshez. A videó VP3, VP5 vagy VP6, az audió MP3, AAC vagy VLB. Az csak audiót tartalmazó fájlnak `.nsa` kiterjesztése van. Az MPlayer mindkét NSV folyamot és fájlt le tudja játszani. Meg szeretném jegyezni, hogy a Winamp oldalán a legtöbb fájl VLB audiót használ, amit nem lehet dekódolni még. Ezenkívül több stream az oldalon külön szétcsomagoló réteget igényel, amit még el kellene készíteni (ezek a fájlok úgyis lejátszhatatlanok, mert VLB audiót használnak).

### Matroska fájlok

A Matroska egy nyílt konténer formátum. További infók a hivatalos weboldalukon találhatóak.

### NUT fájlok

A NUT az MPlayeres és az FFmpeges emberkék által kifejlesztett konténer formátum. Mindkét projekt támogatja. További infókat a hivatalos weboldalon olvashatsz.

### GIF fájlok

A GIF egy gyakori web-es grafikus formátum. Két verziója van a GIF specifikációnak, GIF87a és GIF89a. A fő különbség az, hogy a GIF89a megengedi az animációt. Az MPlayer támogatja mindkét formátumot a libungif vagy más libgif-kompatibilis függvénykönyvtár segítségével. A nem animált GIF-ek egy képkockát tartalmazó videóként lesznek megjelenítve. (Használd a `-loop` és a `-fixed-vo` kapcsolókat a hosszabb megjelenítéshez.)

Az MPlayer jelenleg nem támogatja a keresést a GIF fájlokban. A GIF fájlok nem szükségszerűen fix képkocka méretűek, sem fix framrátájúak. Inkább minden egyes képkocka független méretű és meghatározott helyzetű egy fix méretű mezőn. A framerátát egy opcionális blokk vezérli minden egyes képkocka előtt, ami leírja a következő képkocka késleltetését centisecundumokban.

A szabványos GIF fájlok 24-bites RGB képkockákat tartalmaznak legtöbbször egy 8-bites indexelt palettával. Ezeket a képkockák legtöbbször LZW-vel tömörítettek, habár néhány GIF kódoló tömörítetlen képkockákat készít, hogy elkerüljék az LZW tömörítés szabadalmának megsértését.

Ha a disztribúciódban nincs libungif, töltsd le a libungif weboldaláról. Bővebb technikai információkért vess egy pillantást a GIF89a specifikációra.

## Audió formátumok

Az MPlayer egy film és nem egy zene lejátszó, ennek ellenére le tud játszani néhány audió fájl formátumot (az alábbi részben vannak felsorolva). Nem javaslom az MPlayer ilyen formában történő használatát, jobb ha XMMS-t használsz.

### MP3 fájlok

Bizonyos MP3 MPlayerrel történő lejátszásakor problémáid lehetnek, mert rosszul, MPEG-ként ismeri fel és vagy rosszul vagy sehogy sem játsza le. Ez nem javítható anélkül, hogy ne törölnénk bizonyos sérült MPEG fájlok lejátszásának támogatását, így a belátható jövőben ez így is marad. A `-demuxer` kapcsoló, melyet a man oldal ír le, segíthet ezekben az esetekben.

### OGG/OGM fájlok (Vorbis)

Megfelelően telepített libogg és libvorbis kell hozzá.

### CD audio

Az MPlayer fel tudja használni a cdparanoia-t CDDA (Audio CD) lejátszásához. A cdparanoia jellemzőinek felsorolása átlépi ezen fejezet kereteit.

Lásd a man oldal `-cdda` kapcsolóra vonatkozó részét, melynek a segítségével kapcsolókat adhatsz tovább a cdparanoia-nak.

### XMMS

Az MPlayer fel tudja használni az XMMS bemeneti plugin-jeit több fájl formátum lejátszásához. Van plugin SNES játék hangok, SID hangok (Commodore 64), sok Amiga formátum, .xm, .it, VQF, musepack, Bonk, és számos egyéb lejátszásához. Megtalálhatóak az XMMS bemeneti plugin oldalán.

Ehhez a képességhez XMMS és `./configure --enable-xmms` kapcsolóval fordított MPlayer kell. Ha ez nem működik, pontosan meg kell adnod az XMMS plugin és függvénykönyvtár elérési útvonalát a `--with-xmmsplugindir` és `--with-xmmslibdir` kapcsolókkal.