Mercurial > mplayer.hg
view DOCS/tech/formats-hun.txt @ 6247:0b8660d79efe
sub_read_line_ssa sig11 fix by Jindrich Makovicka <makovick@kmlinux.fjfi.cvut.cz>
when this function encounters a multiline subtitle with more lines than
SUB_MAX_TEXT, this stupid bug manifests. The function actually reads one
line less than the returned count. Subsequently, either during iconv or
during playing a null pointer gets referenced, with obvious result.
author | arpi |
---|---|
date | Fri, 31 May 2002 21:48:36 +0000 |
parents | 0f23282f971b |
children |
line wrap: on
line source
1. Beolvasásért felelős rész, támogatott egységek: - normál file, tekerés támogatott - standard bemenet (STDIN), csak előretekerés - hálózatról olvasás (jelenleg csak egyszerű wget-szerű HTTP, nincs MMS támogatás) - VCD (Video CD) sávról, közvetlen CDROM hozzáféréssel (nem kell mountolni) - DVD-k melyek .IFO felépítésűek, közvetlen DVD hozzáféréssel (nem kell mountolni) 2. Demuxer(szétválasztó)/feldolgozó rész, támogatott file/média formátumok: - MPEG fileok (ES, PES, PS. Jelenleg nincs TS támogatás) Megj.: az MPEG demuxer figyelmeztetés nélkül eldobja a nem-MPEG részeket, és ezt addig teszi, amíg igazi MPEG stream-et nem talál. Ez annyit tesz, hogy közvetlenül lejátszhatóak a VCD image-k (például a CDRwin .BIN file-jai), a benne lévő MPEG file-ok előzetes kiemelése nélkül (amit a vcdgear-ral vagy hasonlóval lehet megtenni). Mindenfajta PES variánst elfogad, a VDR-rel készülteket is. Megj: VOB (video object) egy egyszerű MPEG stream, de tartalmaz 01BD csomagokat, amik tartalmazhatnak feliratokat vagy nem-MPEG audio-t. Általában DVD lemezeken található. Fejlécek: az MPEG fileoknak nincs globális fejlécük. Az összes képfolyamat (nevezik GOP-nak is (Group Of Pictures = képek csoportja)) tartalmaz egy fejlécet ami jellemzi az adott blokkot. Egy normál MPEG1/2-ben 12-15 frame van egy csoportban (24/30 fps). Ez annyit jelent hogy szabadon tekerhetsz az MPEG fileokban, vagy akár apró darabokra is vághatod normál filekezelőkkel anélkül, hogy ártanál neki. Codec-ek: a video mindig MPEG video (MPEG, MPEG2 vagy MPEG4). Az audio általában MPEG audio (bármelyik layer megengedett, de a legtöbb file-ban 2-es layer (MP2) van). 01BD csomagok tartalmazhatnak AC3, DTS vagy LPCM-et is. FPS: az MPEG2 engedélyezi változó bitráta használatát, késleltetett képkockák formájában. Ez általában 24fps-es fileok 29.97/30 fps-ű (NTSC) visszajátszásánál használatos (ezt nevezik Telecine vagy 3:2 pulldown effektusnak). Ez azt jelenti hogy bár 30 képkockát látsz egy másodperc alatt, de közülük csak 24 a különböző, ezért néhányat többször látsz, hogy kilegyen a 30 fps. Ha a MEncoder-rel kódolsz hasonló fileokat, az -ofps 24 vagy -ofps 23.98 opciók használata ajánlott. - AVI fileok. A RIFF AVI fileoknak két tipusa ismeretes: 1. interleaved: az audio és video részek össze vannak fűzve (azaz egy video csomag, egy audio csomag, egy video, stb...). Ez a leggyorsabb módszer, és elég 1 olvasó részt indítani. Ajánlott, és széleskörben használt. 2. non-interleaved: itt szimplán vannak összefűzve, azaz egy nagy video blokk, és utána az audio blokk. 2 olvasó processzt kell indítani, vagy egyet, de akkor rengeteget fog tekerészni. Ez rettenetesen rossz például hálózaton vagy CDROM-on. 3. rosszul interleave-lt fileok: MPlayer induláskor detektálja az interleave jelenlétét vagy hiányát, és ez alapján dönti el hogy bekapcsolja-e a -ni opciót. Sajnos néhány program rossz interleave-t hoz létre, ezért az ilyen fileokat non-interleaved módban kell lejátszani, különben bizonyos az A/V szinkron elvesztése, vagy a buffer túlcsordulása. Az MPlayer kétféle időzítést támogat AVI file-ok lejátszásához: - bps-alapú: ez az adott audio/video stream bitráta/mintavételezési ráta értékén alapul. A legtöbb lejátszó ezt a módszert használja, ideértve az avifile-t, valamint a wmp-t. A rossz fejléccel rendelkező, valamint a VBR audio-t tartalmazó, de VBR-t nem támogató enkóderrel készült file-ok ilyen módszerrel történő lejátszása az A/V szinkron elvesztését eredményezi (többnyire tekerésnél). - interleave-n alapuló: megj: ez nem használható a -ni opcióval. Ez a módszer nem használja a fejléc bitráta értékét, ehelyett az audio és video csomagok relatív pozíciója alapján számol. A legtöbb rosszul (vagy VBR audioval) enkódolt file lejátszható így. Fejlécek: az AVI file-ok elején kötelező lennie egy fejlécnek ami leírja a video paramétereit (felbontás, fps), és a codec-eket. Opcionálisan van a file végén egy INDEX blokk. A legtöbb file tartalmazza, mivel ez szükséges a tekeréshez. Általában ez újraépíthető a file tartalma alapján, az MPlayer készséggel megteszi ezt, az -idx opcióval. Rosszul létrehozott index blokkok rekreációja a -forceidx opcióval lehetséges. Mivel az AVI file-oknak szükségük van index-re a véletlenszerű hozzáféréshez, az index nélküli file-ok általában lejátszhatatlanok. Természetesen az AVI file-ok szétvágása illetve összefűzése speciális programokat igényel. Codec-ek: bármilyen audio vagy video codec megengedett, de a VBR (változó bitrátás) audio a legtöbb lejátszó által nem támogatott. Bár a fileformátum lehetővé teszi a használatát, de a legtöbb lejátszó CBR audiot vár, ezért belepusztul a VBR-be (a Microsoft AVI specifikációi csak CBR audiot írnak le). Megjegyzem hogy a legtöbb AVI enkóder rossz fileokat generál VBR audio használatakor. Két kivételt ismerek: NaNDub és MEncoder. FPS: csak konstans képráta engedélyezett, de képkockák kihagyása lehetséges. - ASF file-ok: ASF (Active Streaming Format) a Microsoft-tól származik. Az ASF-nek két változatát hozták létre, v1.0 és v2.0 . A v1.0-át a média programjaik (wmp és wme) használják, a v2.0-át pedig nyilvánosságra is hozták, és levédették :). Természetesen különböznek, semmi kompatibilitás nincs (megint egy jogi játék). MPlayer csak a v1.0 fileokat támogatja, mivel eddig senki se látott v2.0-át :) Megjegyzés: az ASF file-ok manapság .WMA vagy .WMV kiterjesztéssel vannak ellátva. Fejlécek: a fejlécek (a kodekek paraméterei) elméletileg bárhol lehetnek, de eddig csak olyan file-okat láttam ahol a fejléc a file elején volt. Az ASF fix csomagméretet használ, így INDEX blokk nélkül is lehet benne tekerni, valamint hibás file-ok is lejátszhatók. Codec-ek: a video többnyire a microsoft MPEG4 variánsainak egyike: MP42, MP43 (aka DivX), WMV1 vagy WMV2. De bármilyen codec engedélyezett. Az audio általában wma vagy voxware, néha mp3, de itt is engedélyezett bármilyen codec. FPS: nincs fix fps, ehelyett minden video képkockának egy pontos timestamp értéke van. Van olyan fileom is amiben egy frame 3 másodpercig látszik. - QuickTime / MOV file-ok: Ezek a Mac felhasználóktól származnak, általában .mov vagy .qt kiterjesztéssel, de mivel az MPEG Group a quicktime-t választotta ajánlott formátumnak az MPEG4-hez, .mpg vagy .mp4 kiterjesztésű de quicktime formátumú fileok is forgalomban vannak. Első pillantásra az ASF és AVI keveréke. INDEX blokkra van szüksége a véletlenszerű hozzáféréshez, tekeréshez, és lejátszáshoz is, mint az AVI-nak, de timestamp-okat használ konstans képráta helyett, valamint rugalmasabb a stream része (ideértendő a hálózat is) mint az ASF-nek. Fejlécek: tehetők a file elejére, vagy a végére. A file-jaim felének az elején van, másoknak a végén. A hibás file-ok csak akkor játszhatók le, ha a fejléc a file elején van! Codec-ek: bármilyen codec engedélyezett, mint CBR mind VBR. Megj.: a legtöbb új mov file Sorenson video-t és QDesign Music audiot használ, melyek védett, zárt, titkos, (TM) formátumok, és csak az Apple quicktime lejátszó tudja őket lejátszani (és csak win/mac-on). - VIVO file-ok: Vicces jószágok. Emberileg olvasható ascii fejléc van az elejükön, ezt követik az összefűzött (interleaved) audio és video csomagok. Nincs index blokk bennük, se fix csomagméret vagy sync byte, és legtöbbjükben keyframe sincs, szoval tekerést el lehet felejteni! A video szabványos h.263 (a vivo/2.0 file-okban egy módosított, nem szabványos h.263 van), az audio vagy szabványos g.723 vagy Vivo Siren codec. Megjegyzendő hogy mivel a microsoft licenszelte és beépítette a netshow v2.0-ba a vivo-t, így rendelkezésre állnak Vfw/ACM codec-ek a vivo videohoz és audiohoz.