view DOCS/Hungarian/codecs.html @ 4218:3931c41f740a

Added new syncengine thanks to a new previously undocumented feature of the em8300, this might fix playback on both slow and fast machines (more testing needed). This also requires users to get the em8300 driver from cvs until the next version is released (will probably happen this weekend) Added lots of comments, should be pretty easy to understand most of the internals now Added lots of brackets to if's for's while's etc, this is not a cosmetical thing but rather due to the fact I got some very odd bugs with else's since I didn't properly use brackets (and it's the K&R standard to have brackets everywhere) Fixed some bugs that would occur when disabling libmp1e Switched to default to the new naming scheme of device nodes, the driver will slowly switch over to this state, if it can't find devices under the new name it will try the old naming scheme I stopped opening devices in non-blocking mode, it would break the new syncengine which tries to burst data to the device (alot of times meaning it will fill the fifo pretty fast which would previously result in jerkyness on fast machines) The device now sets the initial state of the pts and speed (probably not needed, but assumption is the mother of all fuckups =) Keep the control interface open during the entire duration of the libvo device, we might need this to flush video buffers on seeking (currently not implemented, therefore seeking is broken) This is beta stuff to the driver, I will get some users to test it for me and do my best to fix seeking as soon as possible...
author mswitch
date Thu, 17 Jan 2002 10:33:47 +0000
parents e5f53a91c2eb
children 4b231f3778a6
line wrap: on
line source

<HTML>
<BODY BGCOLOR=white>

<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>

<P><B><A NAME=2.2>2.2.  Támogatott codec-ek</A></B></P>


<P><B><A NAME=2.2.1>2.2.1.  Video codec-ek</A></B></P>

<P>Lásd <A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">http://www.mplayerhq.hu/DOCS/codecs-status.html</A> a teljes, naponta
generált listához!!!</P>

<P>A legfontosabb video codecek:<BR>
<UL>
<LI>MPEG1 (VCD) és MPEG2 (DVD) video
<LI>DivX ;-), OpenDivX (DivX4), 3ivx és más MPEG4 variánsok
<LI>Windows Media Video 7 (WMV1) és 8 (WMV2) ami .wmv file-okban van
<LI>Intel Indeo codecek (3.1, 3.2, 4.1, 5.0)
<LI>MJPEG, ASV2 és más hardware formátumok
<LI>XAnim codec-ek
<LI>VIVO</LI>
<LI>FLI</LI>
<LI>RealVideo</LI>
</UL></P>

<P>Ha van olyan codeced, ami nincs felsorolva vagy támogatva, olvasd el a
<A HREF="codecs.html#2.2.3">codec importálás</A> fejezetet, amiben le van írva mit kell
tenned, hogy támogassuk a codeced!</P>


<P><B><A NAME=2.2.1.1>2.2.1.1.  DivX4</A></B></P>

<P>Ez a fejezet a <A HREF="http://www.projectmayo.com">ProjectMayo</A> DivX4 codec-éről tartalmaz információkat.
Az első hozzáférhető alfa verzió az OpenDivX alpha 47 és 48 volt. A
támogatás ezekhez benne volt/van az <B>MPlayer</B>-ben, és alapállapotban
bele is fordul. Régebben a postprocessing kódját használjuk, hogy javítsunk az
MPEG1/2 filmek képminőségén. Most már saját minőségjavító kódunk van.</P>

<P>Ezen codec új generációja le tudja játszani a hírhedt DivX codec-kel
készült filmeket is! És ez még nem minden, SOKKAL gyorsabb mint a
Win32-es DivX DLL (viszont a libavcodec még ENNÉL IS gyorsabb:).
A beállítást lásd lent. A codec egyetlen hátránya, hogy jelenleg zárt
forráskódú. :(</P>

<P>A következő URL-ről lehet letölteni:</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A></P>

<P>Ha ez nem működne valami oknál fogva, próbáld itt:</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://divx.com">http://divx.com</A></P>

<P>Tömörítsd ki, és futtasd a <CODE>./install.sh</CODE> scriptet.</P>

<P>Megj: NE felejtsd el hozzáadni az <CODE>/usr/local/lib</CODE>-et az
<CODE>/etc/ld.so.conf</CODE> file végére, és futtatni az
<CODE>ldconfig</CODE>-ot !</P>

<P>Az <B>MPlayer</B> automatikusan detektálja, ha a DivX4 (helyesen) van
installálva, fordítsd le a szokott módon. Ha nem veszi észre, akkor nem
követted pontosan a fent leírtakat és/vagy elcseszett konfigod van
(lásd az 5.1-es fejezet utolsó kérdését).</P>

<P>A használata kicsit trükkös. Mivel ütközik a régi OpenDivX-szel (az API-ja
nagyon hasonlít az OpenDivX-éhez), az OpenDivX kód kikapcsolásra kerül,
és annak drivere is ezt használja.</P>

<P>Ez az egész tulajdonképpen annyit takar, hogy két lehetőséget van a
használatára:</P>

<P><TABLE BORDER=0>
<TD>&nbsp;&nbsp;</TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc odivx</TD><TD>&nbsp;&nbsp;</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>a DivX4 codec használata, mint az OpenDivX új verziója.
Ebben az esetben YV12 képeket produkál a saját bufferében,
és az <B>MPlayer</B> (libvo) konverziót végez.</TD><TR>
<TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc&nbsp;divx4</TD><TD></TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>a DivX4 codec csinál konverziót.
Ebben az esetben használhatsz YUY2/UYVY módokat is.</TD></TR>
</TABLE></P>

<P>Az 'odivx' módszer általában gyorsabb, amiatt hogy a képadatokat YV12
(planar YUV 4:2:0) formátumban kezeli, így sokkal kevesebb sávszélességet
igényel a buszon. Packed YUV módokhoz (YUY2, UYVY) használd a 'divx4'
módszert. RGB módoknál szabadonválasztott, a sebességük megegyezik,
talán a használt bpp-tol függően változhat.</P>

<P>Megj: támogat postprocessinget is (ez a módszer az <CODE>-oldpp</CODE>
opcióval kapcsolható be), de az értékei furcsák :</P>

<P><TABLE BORDER=0>
<TD>&nbsp;&nbsp;</TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>0</TD><TD>&nbsp;&nbsp;</TD>
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>nincs</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>10 .. 20</TD>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>postprocessing, normal (mint a 2-es szint a DirectShow-os DivX codeccel)</TD><TR>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>30 .. 60</TD>
<TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>hard prostprocessing, sok CPU-t eszik (mint a 4-es)</TD>
</TABLE></P>

<P><B><A NAME=2.2.1.2>2.2.1.2.  ffmpeg DivX/libavcodec</A></B></P>

<P>A 0.4.2-es verzióval kezdve az <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> tartalmaz egy <B>nyitott forráskódú</B>
DivX codec-et, amely kompatibilis a hagyományossal. Az <B>MPlayer</B>
támogatja ezt a codec-et, lehetővé téve hogy <B>DivX/DivX4 filmeket nézzünk nem-x86
platformokon</B>, méghozzá sokkal gyorsabb dekódolással mint amit a Win32
codec-ek, és az eredeti DivX4 lehetővé tesz!</P>

<P>Ezekenkívül még tartalmaz jónéhány más érdekes codec-et, pl: RealVideo 1.0,
MJPEG, h263, h263+, stb.</P>

<P>Milyen <B>MPlayer</B>-ed van?

<UL>
  <LI>release : ebben az esetben semmit nem kell tenned, a libavcodec-et
    ilyenkor mindig mellékeljük.</LI>
  <LI>CVS : ebben az esetben le kell töltened az <B>FFmpeg</B>
    CVS fát:

<P><CODE>
  cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login<BR>
  cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
</CODE></P>

<P>Megj: <I>legközelebb elég ha belépsz a könyvtárába és 'cvs update'-t írsz.</I></P>

<P>Most mozgasd át az újonnan letöltött forrás <B>libavcodec</B> könyvtárát
  az <B>MPlayer</B> fába, hogy így nézzen ki :</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>main/libavcodec</CODE></P>

<P>Link létrehozása NEM elég, másolni vagy mozgatni kell.</P>

  </LI>
</UL>
</P>

<P>Ezután fordítsd le az <B>MPlayer-t</B>. A configure detektálja, ha minden
rendben. Támogat <B>postprocess-t</B>!</P>

<P>A használatához frissítsd a codecs.conf file-odat, és tégy úgy ahogy a
manpage vagy az example.conf mondja (a -vfm opció).</P>

<P>A legnagyobb sebesség eléréséhez ajánlott kivenni az <CODE>ffmpeg12</CODE>
részt a codecs.conf file-ból (a libmpeg2 kétszer gyorsabb ennél a codecnél),
és betenni a konfigurációs file-ba a <CODE>vfm=5</CODE> opciót.
Ekkor az <B>MPlayer</B> az <B>ffdivx/ffodivx</B> codec-eket használja
a <B>DivX/DivX4</B> file-ok, és a libmpeg2-t az MPEG1/2 file-ok dekódolásához.
Ezzel és egy Matrox G400-zal még a legnagyobb felbontású DivX/DivX4 filmeket
is meg lehet nézni képkockavesztés nélkül, egy régi K6/2 500-ason.</P>


<P><B><A NAME=2.2.1.3>2.2.1.3.  XAnim codec-ek</B></P>

<P>Előszó: (néhány) XAnim codec nem XAnim-mal történő használata <B><I>ILLEGÁLIS</I></B>.
A <B>TE</B> felelősséged a licensz elolvasása, és betartása. Az <B>MPlayer</B>
szerzői nem tehetők felelőssé a felhasználó hibái miatt.</P>

<P>Nos igen, az <B>MPlayer</B> tudja használni az XAnim codec-eit dekódolásra.
Nagyon könnyű bekapcsolni őket:</P>

<P>
<UL>
  <LI>töltsd le a használni kívánt codec-eket az <A HREF="http://xanim.va.pubnix.com">XAnim honlapjáról</A>.
  A <B>3ivx</B> codec-et nem találod meg ott, így azt töltsd le a
  <A HREF="http://www.3ivx.com">3ivx honlapjáról</A>.</LI>

  <LI>a <CODE>--with-xanimlibdir</CODE> opcióval mondd meg a configure-nak hogy
  hol vannak az xanim codec-ek. Alapállapotban a <CODE>/</CODE>
  könyvtárban keresi őket (...) .</LI>

  <LI>nevezd át a codeceket, hogy így nézzenek ki : <CODE>vid_cvid.xa, vid_h263.xa,
  vid_iv50.xa</CODE></LI>

</UL>
</P>

<P>Ezek a 10-es video codec családba tartoznak, így a <CODE>-vfm 10</CODE>
opcióval megadhatod az <B>MPlayer</B>-nek, hogy ezeket használja, ha
lehetséges.</P>

<P>Az eddig tesztelt codec-ek a következők: <B>Indeo 3.2</B>, <B>4.1</B>, <B>5.0</B>, <B>CVID</B>, <B>3ivX</B>, <B>h263</B>.</P>


<P><B><A NAME=2.2.1.4>2.2.1.4.  VIVO video</A></B></P>

<P>Az <B>MPlayer</B> képes lejátszani Vivo (1.0 és 2.0) file-okat. Az 1.0-ás
fileokra a legmegfelelőbb az FFmpeg-beli H263 codec, amit a <CODE>-vc ffh263</CODE>
opcióval lehet használni (alapértelmezett) (új libavcodec szükséges !). A 2.0-ás fileokhoz
szedd le az <CODE>ivvideo.dll</CODE> Win32 DLL file-t <A
HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/ivvideo.dll">innen</A>),
és installáld a <CODE>/usr/lib/win32</CODE> könyvtárba, vagy ahol tárolod
a Win32-es codeceket. Ezutóbbi codec nem támogat se YV12 se YUY2 kimenetet,
csak BGR-t, ezért kizárólag X11 és OpenGL kimenetekkel működik. Remélhetőleg
hamarosan az ffh263 is tud VIVO 2.0-ás file-okat dekódolni.</P>

<P>Olvasd el a <A HREF=#2.2.2.4>VIVO audio codec</A> fejezetet is!</P>


<P><B><A NAME=2.2.1.5>2.2.1.5.  MPEG 1/2 video</A></B></P>

<P>Az MPEG1 és MPEG2 a natív <B>libmpeg2</B>-vel dekódoljuk. A forrása benne
van az <B>MPlayer</B>-ben, és természetesen több platformon is használható.
A hibás MPEG1/2 fileokat úgy játszuk le hogy figyeljük a libmpeg2 mit
ad vissza, és hiba esetén gyorsan ujraindítjuk a codecet pontosan onnan ahol
a hiba volt. Nincs sebességvesztés.</P>


<P><B><A NAME=2.2.1.6>2.2.1.6.  MS Video1</A></B></P>

<P>Ez egy nagyon régi és nagyon rossz codec a Microsoft-tól. Régebben
ennek dekódolásához az <CODE>msvidc32.dll</CODE> nevű Win32-es codecet
használtuk, de mostmár van nyitott forrású implementációnk,
<A HREF="mailto:melanson@pcisys.net">Mike
Melanson</A>-tól.</P>


<P><B><A NAME=2.2.1.7>2.2.1.7.  Cinepak CVID</A></B></P>

<P>Az <B>MPlayer</B> a saját nyílt forrású, többplatformos Cinepak dekóderét
használja Cinepak filmekhez. Ez a dekóder támogatja a YUV kimenetet, így a
hardveres gyorsítást is ha az adott video kimeneti meghajtó lehetővé teszi
azt.</P>


<P><B><A NAME=2.2.1.8>2.2.1.8.  RealVideo</A></B></P>

<P>Jelenleg CSAK a RealVideo 1.0 codec (fourcc RV10) támogatott, az ffmpeg-en
keresztül. Sajnos az újabb RealMedia file-ok már ehelyett a codec helyett
az RV20 és RV30 codec-ekkel jönnek, amelyek zárt forrásúak. Jövőbeli
támogatottságuk valószínűtlen. :(</P>


<P><B><A NAME=2.2.2>2.2.2.  Audio codec-ek</A></B></P>

<P>A legfontosabb audio codecek:<BR>
<UL>
<LI>MPEG layer 2, és layer 3 (MP3) audio (nativ kód, MMX/SSE/3DNow! optimalizációval)
<LI>AC3 dolby audio (natív kód, SSE/3DNow! optimalizációval)
<LI>AC3 dekódolás a hangkártya dekóderével
<LI>Ogg Vorbis audio codec (natív)
<LI>VoxWare audio (DirectShow-os DLL használatával)
<LI>alaw, msgsm, pcm és más régi formátumok
<LI>VIVO audio (g723, Vivo Siren)</LI>
</UL></P>


<P><B><A NAME=2.2.2.1>2.2.2.1.  Szoftveres AC3 dekódolás</B></P>

<P>Ez az alapértelmezett AC3 audio dekóder.</P>

<P>Az AC3 dekóder 2, 4 vagy 6 hangszórós mixelési képességgel van ellátva.
Ha 6 csatornára van állítva, a dekóder külön-külön adja a hangkártyának a 
csatornákat, ami teljes térhatást eredményez, külső - hwac3 codec-kel 
használható - AC3 dekóder nélkül.</P>

<P>A <CODE>-channels</CODE> opcióval adható meg a kimeneti csatornák száma.
A <CODE>-channels 2</CODE> stereo mixet eredményez. 4 csatornás mixhez
(bal első, jobb első, bal térhatás és jobb térhatás) a <CODE>-channels 4</CODE>
opció használható. Ebben az esetben minden "középső" csatorna egyenlő mértékben
kerül az elülső csatornákra. Végül, a <CODE>-channels 6</CODE> opció
ugyanúgy adja ki a csatornákat, ahogy azokat enkódolták - sorrendben : bal,
jobb, bal térhatás, jobb térhatás, közép és LFE.</P>

<P>Az alapértelmezett kimenet a 2 csatornás.</P>

<P>Több mint két csatorna használatához OSS meghajtó kell, és egy olyan
hangkártya (illetve meghajtó), ami támogatja is az adott mennyiségű
csatornát a SNDCTL_DSP_CHANNELS ioctl-en keresztül. Például a 2001 augusztusinál
újabb emu10k1 meghajtó (SB Live kártyákhoz) megfelelő (úgy hallottam hogy
a legújabb ALSA CVS-ben is van hozzá támogatás).</P>


<P><B><A NAME=2.2.2.2>2.2.2.2.  Hardveres AC3 dekódolás</B></P>

<P>Kell egy AC3 képes hangkártya, digitális kimenettel (SP/DIF). A kártya
meghajtójának támogatnia kell az AFMT_AC3 formátumot (ilyen például az
SB Live!). Kapcsold rá a hardveres AC3 dekódered az SP/DIF kimenetre,
és használd az -ac hwac3 opciót. Akár működhet is. De nem fog. Tényleg. :)</P>


<P><B><A NAME=2.2.2.3>2.2.2.3.  libmad támogatás</A></B></P>

<P>A <A HREF="http://mad.sourceforge.net">libmad</A> egy többplatformos MPEG
audio dekóder. Ha nem tudod miért lenne szükséged rá, nincs szükséged rá.</P>

<P>A támogatást az <CODE>--enable-mad</CODE> configure opcióval lehet bekapcsolni.</P>


<P><B><A NAME=2.2.2.4>2.2.2.4. VIVO audio</A></B></P>

<P>A VIVO file-okban használt audio codec milyensége attól függ hogy VIVO/1.0
avagy VIVO/2.0 fileról beszélünk. Az 1.0-ás fileokban <B>g.723</B> audio van,
a 2.0-ásokban pedig <B>Vivo Siren</B>. Mindkettő támogatott.
A g.723/Siren codec <A
HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/vivog723.acm">innen</A> letölthető.</P>


<P><B><A NAME=2.2.2.5>2.2.2.5. RealAudio</A></B></P>

<P>Jelenleg csak a DNET codec támogatott. Ez egyébként a jól ismert AC3
codec-nek egy alacsonyabb bitrátára optimalizált verziója. Előfordul régi és
új RealMedia file-okban is.</P>


<P><B><A NAME=2.2.3>2.2.3.  Hogyan használj ismeretlen Win32 codec-et</A></B></P>

<P><B><A NAME=2.2.3.1>2.2.3.1.  VfW</A></B></P>

<P>VfW (Video for Windows) a régi Video API Windowshoz. A codec-jei .DLL vagy
(ritkábban) .DRV kiterjesztést kapnak.
Ha az <B>MPlayer</B> ezt írja ki az AVI-dra:</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P>

<P>Ez azt jelenti, hogy az AVI-d egy olyan codec-kel van tömörítve, aminek
a fourcc-je HFYU (HFYU = HuffYUV codec, DIV3 = DivX Low Motion, stb...).
Most, hogy ezt már tudod, azt kell kitalálni, hogy a Windows melyik DLL-lel
játssza le a file-t. Esetünkben a system.ini ezt tartalmazza (többek között):</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>VIDC.HFYU=huffyuv.dll</CODE></P>

<P>Azaz a huffyuv.dll file-ra lesz szükség. Észrevehető, hogy az audio codecek
az MSACM előtagot használják :</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>msacm.l3acm=L3codeca.acm</CODE></P>


<P>Ez az MP3 codec.
Most, hogy tudod az összes szükséges infót (fourcc, codec file, minta AVI),
küldd el kérésed levélben, és töltsd fel eme file-okat FTP-re:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P>


<P><B><A NAME=2.2.3.2>2.2.3.2.  DirectShow</A></B></P>

<P>DirectShow az újabb Video API, ami történetesen sokkal rosszabb, mint az
  elődje. Nehezebb dolgod lesz a DirectShow-val, mivel
<UL>
<LI>a system.ini nem tartalmazza a szükséges információt, ehelyett az egész a
registryben van :(
<LI>szükség lesz a codec GUID-jára is.
</UL></P>

<P>Na kezdjük átnézni azt az istenverte registry-t...
<UL>
<LI>Indítsd el a 'regedit'-et
<LI>ctrl-f, kapcsold ki az első két checkbox-ot, és be a harmadikat. Írd be
a codec fourcc-jét. (pl.: TM20)
<LI>jó esetben előjön a path és filenév
(pl. : C:\WINDOWS\SYSTEM\TM20DEC.AX)
<LI>most hogy ez megvolt, szükség lesz a GUID-ra. Keress újra, de most a
  codec nevére, ne a fourcc-re. A név megnézhető pl. a Media Playerrel, a
  File/Properties/Advanced menüpont alatt. Ha nem, ígyjárás ;) Találd ki.
     (itt : TrueMotion)
<LI>ha megvan, lesz ott egy FriendlyName, és egy CLSID mező. Írd le azt a
  16 byte-nyi CLSID-et, ez a GUID.
</UL></P>

<P>MEGJ. : ha semmiképp nem találod, próbáld meg úgy, hogy bekapcsolod az összes
          checkboxot... Lesz egy rakás hamis találat, de talán meglesz az igazi
          is...</P>
<P>MEGJ. : dobd ki azt az M$ szart.</P>


<P>Most, hogy tudod az összes szükséges infót (fourcc, GUID, codec file, minta
  AVI), küldd el kérésed levélben, és töltsd fel eme file-okat FTP-re:
      ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</P>

</BODY>

</HTML>