Mercurial > mplayer.hg
view DOCS/Polish/codecs.html @ 4775:080cf3df3e4e
improved event handling, implemented working pause that does not flush all buffers, work around a deadlock in the new threadsafe version 1.5 of libaudio by Tobias Diedrich
author | atmos4 |
---|---|
date | Wed, 20 Feb 2002 22:45:48 +0000 |
parents | ed33540a982b |
children | ad9d0116616a |
line wrap: on
line source
<HTML> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> <BODY BGCOLOR=WHITE> <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> <P><B><A NAME=2.2>2.2. Wspierane kodeki</A></B></P> <P><B><A NAME=2.2.1>2.2.1. Kodeki Video</A></B></P> <P>Zobacz: <A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html"> http://www.mplayerhq.hu/DOCS/codecs-status.html</A>. Znajdziesz tam kompletną, codziennie tworzoną listę!!!</P> <P>Najważniejsze kodeki video:<BR> <UL> <LI>MPEG1 (VCD) i MPEG2 (DVD) video</LI> <LI>DivX ;-), OpenDivX (DivX4), 3ivx i inne warianty MPEG4</LI> <LI>Windows Media Video 7 (WMV1) i 8 (WMV2) wykorzystywany w plikach .wmv</LI> <LI>Kodeki Intel Indeo (3.1,3.2,4.1,5.0)</LI> <LI>MJPEG, ASV2 i inne formaty sprzętowe</LI> <LI>Kodeki XAnim</LI> <LI>VIVO</LI> <LI>FLI</LI> <LI>RealVideo 1.0</LI> </UL></P> <P>Jeśli masz kodeka Win32 nie wymienionego tutaj, oraz jeszcze nie obsługiwanego, przeczytaj <A HREF="#2.2.3">importowanie kodeków</A>, by uzyskać informacje o tym, jak pomóc nam w dodaniu wsparcia dla niego!</P> <P><B><A NAME=2.2.1.1>2.2.1.1. DivX4</A></B></P> <P>Ta sekcja zawiera informacje o kodekach DivX4 z <A HREF="http://www.projectmayo.com">ProjectMayo</A>. Ich pierwszą dostępną wersją alfa był OpenDivX 4.0 alfa 47 oraz 48. Wsparcie dla nich zostało dołączone w <B>MPlayerze</B>, i jest kompilowane standardowo. Dawniej używaliśmy kodu postprocessing z tych kodeków do opcjonalnego zwiększenia jakości filmów MPEG1/2. Teraz już stosujemy własny.</P> <P>Nowa generacja tych kodeków potrafi nawet dekodować filmy zrobione z użyciem niesławnych kodeków DivX! Ale to jeszcze nie wszystko! Są one DUŻO szybsze, niż tradycyjne DLLe Win32 DivX. Zobacz poniżej opis konfiguracji. Jedyną wadą tych kodeków jest fakt, że aktualnie są one closed-source. :(</P> <P>Kodeki można ściągnąć z następującego URL:</P> <P> <A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A></P> <P>Jeśli to nie zadziała, spróbuj jeszcze:</P> <P> <A HREF="http://divx.com">http://divx.com</A></P> <P>Rozpakuj je i uruchom, jako root, polecenie: <CODE>./install.sh</CODE> .</P> <P>Uwaga: NIE zapomnij dodać /usr/local/lib do /etc/ld.so.conf !</P> <P><B>MPlayer</B> automatycznie wykrywa czy DivX4 jest (właściwie) zainstalowany, wystarczy go, tak jak zawsze, skompilować. Jeśli mplayer nie wykrywa DivX4, oznacza to, że nie zainstalowałeś go w taki sposób jak powyżej podano, i/lub popsułeś konfigurację (zobacz ostatnie pytanie w sekcji 5.1).</P> <P>Używanie tego kodeka jest trochę skomplikowane. Ponieważ powstaje konflikt ze starym OpenDivX (jego API jest bardzo podobne do do tego z OpenDivX), kod OpenDivX jest wyłączony, również sterownik OpenDivX wywołuje tą bibliotekę.</P> <P>Ogólnie możemy sprowadzić to zagadnienie do faktu, że masz dwie opcje do zastosowania tego kodeka:</P> <P><TABLE BORDER=0> <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc odivx</TD><TD> </TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>użycie kodeka divx4 jako nowej wersji OpenDivX. W tym przypadku produkuje on we własnym buforze obrazy YV12 oraz <B>MPlayer</B> (libvo) dokonuje konwersji przestrzeni kolorów. (<B>REKOMENDOWANE!</B>)</TD><TR> <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc divx4</TD><TD></TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>użycie konwersji przestrzeni kolorów z kodeka divx4. W tym trybie można użyć również YUY2/UYVY.</TD></TR> </TABLE></P> <P>Metoda 'odivx' jest zazwyczaj szybsza, ze względu na fakt, że przenosi ona dane obrazu do formatu YV12 (planar YUV 4:2:0), a to wymaga dużo mniejszego pasma przenoszenia na szynie. W trybie spakowanego YUV (YUY2, UYVY) stosuj metodę 'divx4'. W trybie RGB możesz dowolnie wybierać, ponieważ prędkości ich są takie same, różnią się być może tylko w odniesieniu do aktualnego bpp.</P> <P>Uwaga: ten kodek wspiera również postprocessing, ale zakres wartości jest dziwny: (UAKTUALNIĆ)</P> <P><TABLE BORDER=0> <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>0</TD><TD> </TD> <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>bez postproc</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, normalny (jak na poziomie 2 z divxd)</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>mocny prostprocessing, obciąża mocno CPU (podobnie jak poziom 4 z divxd</TD><TR> </TABLE></P> <P><B><A NAME=2.2.1.2>2.2.1.2. DivX/libavcodec z ffmpeg</A></B></P> <P>Poczynając od wersji 0.4.2, <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> zawiera kodek DivX <B>opensource</B>, który jest kompatybilny z tradycyjnym DivX. <B>MPlayer</B> wspiera ten kodek i dzięki temu możliwe staje się <B>oglądanie filmów DivX/DivX4 na platformach innych niż x86</B> oraz osiąganie dużo szybszej prędkości dekodowania <B>DivX/DivX4</B>, niż za pomocą kodeków Win32 i oryginalnych bibliotek DivX4<BR>. Ponieważ zostało to usunięte z drzewa cvs <B>MPlayera</B>, musisz ściągnąć to ręcznie bezpośrednio z drzewa cvs <B>FFmpeg</B></P>. <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>UWAGA: <I>Jeśli kopiujesz z podkatalogami CVS, następnym razem wystarczy zrobić 'cvs update'.</I></P> <P>Teraz przenieś nowo ściągnięte źródła ffmpeg: katalog <B>libavcodec</B>, (ze wszystkimi jego podkatalogami) do drzewa katalogowego <B>MPlayera</B>, tak, aby to wyglądało w taki sposób:</P> <P> <CODE>main/libavcodec</CODE></P> <P>Linkowanie symboliczne NIE jest wystarczające. Musisz to skopiować bądź przenieść!!!</P> <P>Następnie skompiluj. configure wykrywa czy wszystko jest w porządku i może być skompilowane. Ten kodek również <B>wspiera postprocessing!</B></P> <P>W celu użycia go, uaktualnij swój plik codecs.conf, zgodnie z tym, co mówią strony podręcznika lub example.conf (opcja -vfm).</P> <P>Aby osiągnąć <B>największą prędkość</B> na moim K6, usuwam sekcję <CODE>ffmpeg12</CODE> z codecs.conf (ten kodek nie jest zoptymalizowany a libmpeg2 jest dwa razy szybszy), i wpisuję <CODE>vfm=5</CODE> w moim pliku konfiguracyjnym. Po czym <B>MPlayer</B> zawsze już używa <B>ffdivx/ffodivx</B> do dekodowania plików <B>DivX/DivX4</B> oraz libmpeg2 do plików MPEG1/2. Przy takiej konfiguracji na moim K6/2 500 z Matrox G400 mogę oglądać filmy DivX/DivX4 w najwyższej rozdzielczości, bez straty klatek (framedrop).</P> <P><B><A NAME=2.2.1.3>2.2.1.3. Kodeki XAnim</A></B></P> <P>Używanie (niektórych) kodeków XAnim z innym programem niż XAnim, jest <B><I>NIELEGALNE</I></B>. <B>TWOIM</B> obowiązkiem jest przeczytanie licencji i zastosowanie się do niej. Autorzy <B>MPlayera</B> nie mogą zostać pociągnięci do odpowiedzialności za jakiekolwiek, sprzeczne z prawem, zachowania użytkowników.</P> <P>A więc: tak, <B>MPlayer</B> potrafi używać do dekodowania kodeków XAnim. Włączenie ich jest bardzo proste:</P> <P> <UL> <LI>Ściągnij kodeki, których chcesz używać ze <A HREF="http://xanim.va.pubnix.com">strony XAnim</A>. Nie ma tam kodeka <B>3ivx</B> , więc ściągnij go ze <A HREF="http://www.3ivx.com">strony 3ivx</A>.</LI> <LI>Użyj opcji <CODE>--with-xanimlibdir</CODE>, aby podać dla configure, gdzie znajdują się kodeki xanim. Domyślnie są one szukane w katalogu <CODE>/</CODE> (...) .</LI> <LI>Zmień nazwy plików, obcinając część dotyczącą architektury tak, aby wyglądały one następująco: <CODE>vid_cvid.xa, vid_h263.xa, vid_iv50.xa</CODE> </UL> </P> <P>Jest to rodzina kodeków video o numerze 10, przydatne więc będzie użycie opcji <CODE>-vfm 10</CODE> i poinformowanie <B>MPlayera</B>, by ich użył jeśli to możliwe.</P> <P>Testowane kodeki: <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. Obraz VIVO</A></B></P> <P><B>MPlayer</B> potrafi odgrywać obrazy Vivo (1.0 i 2.0). Najbardziej odpowiedni kodek do plików 1.0, to dekoder FFmpeg's H263, Możesz go użyć za pomocą opcji <CODE>-vc ffh263</CODE> (domyślnie) (będziesz potrzebował najnowszego libavcodec!). Do plików 2.0 użyj <CODE>ivvideo.dll</CODE> pliku DLL Win32 (do sciągnięcia <A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/ivvideo.dll">tutaj</A>), zainstaluj go w <CODE>/usr/lib/win32</CODE>, bądź w innym miejscu, w którym przechowujesz kodeki Win32. Ten późniejszy kodek nie obsługuje trybów YV12 ani YUY2, a tylko BGR i jest użyteczny wyłącznie z wyjściami X11 i OpenGL. Miejmy nadzieję, że ffh263 będzie wspierał pliki VIVO 2.0 w przyszłości.</P> <P><B><A NAME=2.2.1.5>2.2.1.5. Obraz MPEG 1/2</A></B></P> <P>MPEG1 i MPEG2 są dekodowane za pomocą biblioteki własnej <B>libmpeg2</B>. Jej kod źródłowy jest zawarty w <B>MPlayerze</B> i oczywiście jest wieloplatformowy. Obsługujemy pliki video MPEG1/2 z błędami przez sprawdzanie, jaką sygnaturę zwraca libmpeg2, i kiedy jest to sig11 (segmentation fault), szybko inicjalizujemy ponownie kodek, i kontynuujemy dokładnie z tego miejsca, w którym pojawił się błąd. Nie ma tu zauważalnej straty prędkości.</P> <P><B><A NAME=2.2.1.6>2.2.1.6. MS Video1</A></B></P> <P>Jest bardzo stary i bardzo zły kodek Microsoftu. W przeszłości był on dekodowany z kodekiem Win32 <CODE>msvidc32.dll</CODE>, teraz mamy własną implementację open-source wykonaną przez <A HREF="mailto:melanson@pcisys.net">Mike'a Melansona</A>).</P> <P><B><A NAME=2.2.1.7>2.2.1.7. Cinepak CVID</A></B></P> <P><B>MPlayer</B> posiada teraz swój własny opensource, wieloplatformowy dekoder Cinepak. Obsługuje on wyjścia YUV, wykonuje skalowanie sprzętowe, jeśli sterowniki wyjścia video na to pozwalają. Jest używany domyślnie.</P> <P><B><A NAME=2.2.1.8>2.2.1.8. RealVideo</A></B></P> <P> Aktualnie obsługiwany jest TYLKO kodek RealVideo 1.0 (fourcc RV10), poprzez ffmpeg. To smutne, ale żadne nowe pliki RealMedia nie są z nim dostarczone, tylko nowe kodeki RV20 i RV30, które są closed-source. Mało prawdopodbne jest wsparcie dla nich w przyszłości :(</P> <P><B><A NAME=2.2.2>2.2.2. Kodeki dźwięku</A></B></P> <P>Najważniejsze kodeki dźwięku, to:<BR> <UL> <LI>MPEG layer 2 oraz layer 3 (MP3) audio(<B>własny</B> kod, z optymalizacją MMX/SSE/3DNow!)</LI> <LI>MPEG layer 1 audio(<B>własny</B> kod, z libavcodec)</LI> <LI>AC3 Dolby audio (<B>własny</B> kod, z optymalizacją SSE/3DNow!)</LI> <LI>Ogg Vorbis kodek audio (<B>własna</B> biblioteka)</LI> <LI>Voxware audio (użycie DirectShow DLL)</LI> <LI>alaw, msgsm, pcm i inne proste stare formaty dźwiękowe</LI> <LI>VIVO audio (g723, Vivo Siren)</LI> <LI>RealAudio: DNET (niska bitrate AC3)</LI> </UL></P> <P><B><A NAME=2.2.2.1>2.2.2.1. Programowe dekodowanie AC3</A></B></P> <P>Domyślny dekoder, używany do plików z dźwiękiem AC3.</P> <P>Dekoder AC3 może tworzyć mieszanki wyjściowego dźwięku dla 2, 4 lub 6 głośników. Skonfigurowany dla 6 głośników, dekoder ten dostarcza oddzielne wyjścia dla wszystkich kanałów AC3 do sterownika karty dźwiękowej, umożliwiając doświadczenie wrażenia pełnego "dźwięku otaczającego", bez wymagania od zewnętrznego dekodera AC3 użycia kodeka hwac3.</P> <P>Użyj opcji <CODE>-channels</CODE>, aby wybrać ilość kanałów wyjściowych. Użyj opcji <CODE>-channels 2</CODE> dla stereo downmix. Dla czterokanałowego downmix (wyjścia lewo-przód, prawo-przód, lewo-tył, prawo-tył), użyj opcji <CODE>-channels 4</CODE>. W tym przypadku jakikolwiek centralny kanał będzie miksowany odpowiednio do przednich kanałów. Ostatecznie, "-channels 6" będzie wyprowadzało wszystkie kanały AC3 tak, jak są zakodowane - w kolejności lewy, prawy, lewy-tylny, prawy-tylny, centralny oraz LFE.</P> <P>Domyślna liczba kanałów wyjściowych wynosi 2.</P> <P>Aby korzystać z więcej niż dwóch kanałów wyjściowych, musisz użyć OSS, i posiadać sterownik dla karty dźwiękowej, który obsługuje odpowiednią liczbę kanałów wyjściowych przez SNDCTL_DSP_CHANNELS ioctl. Na przykład wersja sterownika emu10k1 (używanego z kartami SB Live), nowsza niż z sierpnia 2001, powinna być odpowiednia.</P> <P>Miksowanie na wyjściu więcej niż dwóch kanałów powinno być traktowane jako eksperymentalne.</P> <P><B><A NAME=2.2.2.2>2.2.2.2. Sprzętowe dekodowanie AC3</A></B></P> <P>Potrzebna ci będzie karta dźwiękowa, zdolna do obsługi AC3, z cyfrowym wyjściem (SP/DIF). Sterownik karty dźwiękowej musi obsługiwać format AFMT_AC3 (tak, jak to jest w SB Live!). Połącz swój dekoder AC3 do wyjścia SP/DIF oraz użyj opcji '-ac hwac3'. To może zadziałać, bądź nie (status eksperymentalny - najprawdopodobniej nie zadziała).</P> <P><B><A NAME=2.2.2.3>2.2.2.3. Obsługa libmad</A></B></P> <P><A HREF="http://mad.sourceforge.net">libmad</A> jest wieloplatformową biblioteką dekodowania dźwięku MPEG. Jeśli nie wiesz dlaczego to jest dobre, prawdopodobnie nie potrzebujesz tego. </P> <P>Aby włączyć obsługę, skompiluj źródła z opcją <CODE>--enable-mad</CODE>. </P> <P><B><A NAME=2.2.2.4>2.2.2.4. Dźwięk VIVO</A></B></P> <P>Kodek dźwięku stosowany do plików VIVO zależy od tego, czy jest to plik VIVO/1.0, czy VIVO/2.0. Pliki VIVO/1.0 zawierają dźwięk <B>g.723</B>, zaś pliki VIVO/2.0 mają <B>Vivo Siren</B>. Oba formaty są <U>obsługiwane</U>. Możesz ściągnąć kodek g.723/Siren Win32 DLL z <A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/vivog723.acm">tej strony</A>, a następnie skopiować go do katalogu <CODE>/usr/lib/win32</CODE> lub innego odpowiedniego.</P> <P><B><A NAME=2.2.2.5>2.2.2.5. RealAudio</A></B></P> <P>Aktualnie jedynym obsługiwanym kodekiem jest DNET. Właściwie jest to wersja low-bitrate dobrze znanego kodeka AC3. Może on się pojawić zarówno w starszych jak i w nowych filmach RealMedia</P> <P><B><A NAME=2.2.3>2.2.3. Importowanie kodeków Win32</A></B></P> <P><B><A NAME=2.2.3.1>2.2.3.1. Kodeki VFW</A></B></P> <P>VfW (Video for Windows), jest to stare Video API dla Windows. Jego kodeki mają rozszerzenia .DLL lub (rzadziej) .DRV. Jeśli <B>MPlayer</B> nie działa z twoim AVI:</P> <P> <CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P> <P>To oznacza, że twój AVI jest zakodowany za pomocą kodeka, który ma HFYU fourcc (HFYU = kodek HuffYUV, DIV3 = DivX Low Motion, itd....). Teraz, gdy już to wiemy, będziemy musieli dowiedzieć się, którą bibliotekę DLL z Windows załadować, aby móc odtworzyć ten plik. W naszym przypadku system.ini zawiera to (oraz wiele innych):</P> <P> <CODE>VIDC.HFYU=huffyuv.dll</CODE></P> <P>Tak więc będziemy potrzebować pliku huffyuv.dll. Zauważ, że kodeki dźwięku są wyróżnione za pomocą prefiksu MSACM:</P> <P> <CODE>msacm.l3acm=L3codeca.acm</CODE></P> <P>To jest kodek MP3. Mając już wszystkie potrzebne informacje (fourcc, plik z kodekiem, próbka AVI), wyślij żądanie wsparcia dla twojego kodeka mailem i załaduj te pliki przez FTP:</P> <P> <CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[nazwa_kodeka]/</CODE></P> <P><B><A NAME=2.2.3.2>2.2.3.2. Kodeki DirectShow</A></B></P> <P>DirectShow to najnowsze Video API, które jest nawet gorsze, niż jego poprzednik. Sprawy się bardziej komplikują, odkąd: <UL> <LI>system.ini nie zawiera potrzebnych informacji, a w zamian za to jest przechowywany w rejestrze :( <LI>będzie potrzebny nam GUID kodeka. </UL></P> <P>Więc znajdźmy ten przeklęty rejestr ... <UL> <LI>Uruchom 'regedit'. <LI>Wciśnij ctrl-f, odznacz pierwsze dwie opcje i zaznacz trzecią. Wpisz fourcc kodeka (np.: TM20). <LI>Powinno się pokazać pole ze ścieżką i nazwą pliku (np. : C:\WINDOWS\SYSTEM\TM20DEC.AX). <LI>Skoro mamy już plik, potrzebne nam jeszcze GUID. Spróbuj jeszcze raz poszukać, ale tym razem nazwy kodeka, nie fourcc. Jego nazwę można odczytać w File/Properties/Advanced, podczas odtwarzania tego pliku przez Media Player. Jeśli się nie da, to pech ;) Spróbuj zgadnąć (np. szukaj: TrueMotion). <LI>Jeśli znalazłeś (w rejestrze), powinno być tam pole FriendlyName oraz pole CLSID. Zapisz, że 16 bajtów CLSID, to potrzebne nam GUID. </UL></P> <P>UWAGA:Poszukując plików, staraj się włączyć wszystkie pola wyboru ... Możesz dostać wiele nieprzydatnych odpowiedzi, ale być może dostaniesz te właściwe przy okazji ... </P> <P>UWAGA: W razie niepowodzenia zrzuć wszystko na M$.</P> <P>Mając już wszystkie potrzebne informacje (fourcc, GUID, plik z kodekiem, próbka AVI), wyślij zgłoszenie wsparcia dla swojego kodeka mailem, i prześlij te pliki na adres FTP:<BR> ftp://ftp.mplayerhq.hu/MPlayer/incoming/[nazwa_kodeka]/</P> </BODY> </HTML>