Mercurial > mplayer.hg
view DOCS/xml/pl/codecs.xml @ 18520:18746d502ce2
URL fix
author | gpoirier |
---|---|
date | Mon, 15 May 2006 19:35:45 +0000 |
parents | 4144a695f602 |
children | 87d755e003e7 |
line wrap: on
line source
<?xml version="1.0" encoding="iso-8859-2"?> <!-- synced with 1.72 --> <sect1 id="codecs"> <title>Obsługiwane kodeki</title> <sect2 id="video-codecs"> <title>Kodeki Video</title> <para> Zajrzyj do <ulink url="../../codecs-status.html">tabeli stanu kodeków</ulink>, żeby zobaczyć kompletną, codziennie generowaną listę. Niektóre kodeki są dostępne do pobrania z naszej strony domowej. Ściągniesz je ze <ulink url="http://www.mplayerhq.hu/MPlayer/releases/codecs/">strony z kodekami</ulink>. </para> <para> Najważniejsze ze wszystkich: </para> <itemizedlist> <listitem><simpara> <emphasis role="bold">MPEG-1</emphasis> (<emphasis role="bold">VCD</emphasis>) i <emphasis role="bold">MPEG-2</emphasis> (<emphasis role="bold">DVD</emphasis>) video </simpara></listitem> <listitem><simpara> natywne dekodery dla <emphasis role="bold">DivX ;-), OpenDivX (DivX4), DivX 5.01 (Pro), 3ivX, M$ MPEG-4</emphasis> v1, v2 i dla innych rodzajów MPEG4 </simpara></listitem> <listitem><simpara> natywne dekodery dla <emphasis role="bold">Windows Media Video 7/8</emphasis> (<emphasis role="bold">WMV1/WMV2</emphasis>) i dekodery Win32 DLL dla <emphasis role="bold">Windows Media Video 9</emphasis> (<emphasis role="bold">WMV3</emphasis>). Oba używane w plikach <filename>.wmv</filename> </simpara></listitem> <listitem><simpara> natywny dekoder <emphasis role="bold">Sorenson 1 (SVQ1)</emphasis> </simpara></listitem> <listitem><simpara> natywny dekoder <emphasis role="bold">Sorenson 3 (SVQ3)</emphasis> </simpara></listitem> <listitem><simpara> dekoder <emphasis role="bold">3ivX</emphasis> w wersji 1 i 2 </simpara></listitem> <listitem><simpara> Kodeki Cinepak i <emphasis role="bold">Intel Indeo</emphasis> (3.1,3.2,4.1,5.0) </simpara></listitem> <listitem><simpara> <emphasis role="bold">MJPEG</emphasis>, AVID, VCR2, ASV2 i inne formaty sprzętowe </simpara></listitem> <listitem><simpara> VIVO 1.0, 2.0, I263 i inne warianty <emphasis role="bold">H.263(+)</emphasis> </simpara></listitem> <listitem><simpara> FLI/FLC </simpara></listitem> <listitem><simpara> <emphasis role="bold">RealVideo 1.0 & 2.0</emphasis> z użyciem <systemitem class="library">libavcodec</systemitem> i kodeki <emphasis role="bold">RealVideo 3.0 & 4.0</emphasis> używające bibliotek RealPlayer </simpara></listitem> <listitem><simpara> natywny dekoder HuffYUV </simpara></listitem> <listitem><simpara> Różne stare proste formaty podobne do RLE </simpara></listitem> </itemizedlist> <para> Jeżeli posiadasz niewymienione tutaj kodeki Win32, które nie są jeszcze obsługiwane, zajrzyj do działu <link linkend="codec-importing">importowanie kodeków Win32-HOWTO</link> i pomóż nam dodać ich obsługę. </para> <sect3 id="divx4-5"> <title>DivX4/DivX5</title> <para> Ta sekcja zawiera informacje o kodekach DivX4 i DivX5 z <ulink url="http://www.projectmayo.com">Project Mayo</ulink>. Ich pierwszą dostępną wersją był OpenDivX 4.0 alpha 47 i 48. Wsparcie dla nich zostało włączone do <application>MPlayera</application> w przeszłości i było domyślnie budowane podczas kompilacji. Używaliśmy także ich kodu postprocessingu do opcjonalnego polepszenia jakości filmów zakodowanych w MPEG-1/2. Teraz używamy już naszego własnego kodu dla wszystkich typów plików. </para> <para> Nowa generacja tych kodeków nazywana jest DivX4 i może nawet dekodować filmy zakodowane przy pomocy niesławnych kodeków DivX! Na dodatek są one znacznie szybsze od natywnych kodeków Win32 DivX DLLs, ale wolniejsze od <systemitem class="library">libavcodec</systemitem>. W związku z tym ich używanie do dekodowania jest <emphasis role="bold">odradzane</emphasis>. Jednakże przydają się one do kodowania. Ich wadą jest fakt, iż nie są udostępnione na wolnej licencji. </para> <para> DivX4 pracuje w dwóch trybach: <variablelist> <varlistentry><term><option>-vc odivx</option></term> <listitem><simpara> Używa kodeka w stylu OpenDivX. W tym przypadku tworzy on obraz YV12 we własnym buforze, a <application>MPlayer</application> dokonuje konwersji przestrzeni kolorów poprzez libvo. (<emphasis role="bold">Szybkie, zalecane!</emphasis>) </simpara></listitem> </varlistentry> <varlistentry><term><option>-vc divx4</option></term> <listitem><simpara> Używa konwersji przestrzeni kolorów kodeka. W tym trybie można używać także YUY2/UYVY. (<emphasis role="bold">POWOLNE</emphasis>) </simpara></listitem> </varlistentry> </variablelist> </para> <para> Metoda <option>-vc odivx</option> jest zazwyczaj szybsza, ponieważ dokonuje ona transferu danych obrazu w formacie YV12 (planar YUV 4:2:0), który wymaga znacznie mniejszej przepustowości szyny. Dla pakowanych trybów YUV (YUY2, UYVY) użyj opcji <option>-vc divx4</option>. Dla trybów RGB prędkość jest właściwie taka sama, różniąca się od najlepszej tylko przy zmianie głębi kolorów. <note> <para> Jeżeli twój sterownik <option>-vo</option> obsługuje direct rendering, wydajniejszym albo nawet najbardziej wydajnym rozwiązaniem może być użycie <option>-vc divx4</option>. </para> <para> Binarną bibliotekę kodeków DivX4/5 można ściągnąć z <ulink url="http://avifile.sf.net">avifile</ulink> albo z <ulink url="http://www.divx.com">divx.com</ulink> Należy ją rozpakować, uruchomić jako root <filename>./install.sh</filename> i pamiętać o dodaniu <filename class="directory">/usr/local/lib</filename> do twojego <filename>/etc/ld.so.conf</filename> i uruchomieniu <command>ldconfig</command>. </para> <para> Możesz zdobyć CVSową wersję STAREJ biblioteki OpenDivX (core library) w następujący sposób: </para> <procedure> <step><para> <screen>cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login</screen> </para></step> <step><para> <screen>cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore</screen> </para></step> <step><para> Biblioteka ta jest podzielona na biblioteki dekodujące i kodujące, które muszą być kompilowane osobno. Dla biblioteki dekodującej wpisz po prostu <screen> cd divxcore/decore/build/linux make cp libdivxdecore.so /usr/local/lib ln -s libdivxdecore.so /usr/local/lib/libdivxdecore.so.0 cp ../../src/decore.h /usr/local/include </screen> </para></step> <step><para> Niestety dla biblioteki kodującej, Makefile dla Linuksa nie jest dostępny i optymalizacja dla MMX działa tylko pod Windows. Pomimo tych niedogodności, możesz ją ciągle skompilować używając tego <ulink url="ftp://ftp.mplayerhq.hu/MPlayer/contrib/divx-mf/Makefile">Makefile</ulink>. <screen> cd ../../../encore/build mkdir linux cd linux cp path/Makefile . make cp libdivxencore.so /usr/local/lib ln -s libdivxencore.so /usr/local/lib/libdivxencore.so.0 cp ../../src/encore.h /usr/local/include </screen> </para></step> </procedure> <para> <application>MPlayer</application> automatycznie wykrywa DivX4/DivX5, jeżeli jest on prawidłowo zainstalowany. Po prostu kompiluj tak, jak robisz to zwykle. Jeżeli nie zostanie wykryty, znaczy to, że nie zainstalowałeś/skonfigurowałeś go w prawidłowy sposób. </para> </note> </para> </sect3> <sect3 id="ffmpeg" xreflabel="FFmpeg/libavcodec"> <title>FFmpeg/libavcodec</title> <para> <ulink url="http://ffmpeg.org">FFmpeg</ulink> zawiera pakiet kodeków <emphasis role="bold">o otwartych źródłach</emphasis>, które potrafią dekodować strumienie różnymi kodekami audio i video. Oferują one także imponujące funkcję kodowania i szybszą bibliotekę DivX4/5 niż w przypadku kodeków Win32, albo tych z DivX.com! </para> <para> W skład pakietu wchodzi wiele dobrych kodeków, szczególnie tych związanych z MPEG-4: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Zawiera również warty uwagi dekoder WMA. </para> <para> Jednym z najnowszych kodeków, który warto wymienić jest kodek <emphasis role="bold">Sorenson 3</emphasis> (SVQ3). Jest to pierwsza, całkowicie otwarta implementacja tego kodeka. Jest on nawet szybszy od oryginału. Zaleca się wybór tej wersji zamiast kodeków binarnych! </para> <para> Pełną listę obsługiwanych kodeków (<ulink url="http://www.ffmpeg.org/ffmpeg-doc.html#SEC19">video</ulink> i <ulink url="http://www.ffmpeg.org/ffmpeg-doc.html#SEC20">audio</ulink>) znajdziesz na stronie FFmpeg. </para> <para> Jeżeli używasz któregoś z wydań <application>MPlayera</application> <systemitem class="library">libavcodec</systemitem> znajduje się już w paczce. Po prostu kompiluj tak, jak zazwyczaj. Jeżeli używasz <application>MPlayera</application> z CVSu, musisz wyciągnąć <systemitem class="library">libavcodec</systemitem> z drzewa CVS FFmpega, ponieważ jego wydania ukazują się bardzo rzadko. Wersja z CVSa jest w większości przypadków stabilna i oferuje większość funkcji. W celu zdobycia libavcodec wykonaj następujące czynności: </para> <procedure> <step><para> <screen>cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login</screen> </para></step> <step><para> <screen>cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg/libavcodec ffmpeg/libavutil</screen> </para></step> <step><para> Przenieś katalogi <filename>libavcodec</filename> i <filename>libavutil</filename> ze źródeł FFmpega do katalogu głównego drzewa CVS <application>MPlayera</application>. Powinno to wyglądać w ten sposób: <filename class="directory">main/libavcodec</filename> <filename class="directory">main/libavutil</filename> </para><para> Utworzenie dowiązań symbolicznych (symlinków) <emphasis role="bold">nie</emphasis> wystarcza. Konieczne jest skopiowowanie/przeniesienie! </para></step> <step><para> Jeżeli chcesz uaktualniać <systemitem class="library">libavcodec</systemitem> razem z aktualizacją CVSowej wersji <application>MPlayera</application>, dodaj następujące linie do pliku <filename>main/CVS/Entries</filename>: <screen>D/libavcodec////</screen> <screen>D/libavutil////</screen> </para></step> <step><para> Przejdź do kompilowania. <filename>configure</filename> powinien wykryć problemy przed kompilacją. </para></step> </procedure> <note> <para> <application>MPlayer</application> z CVSu zawiera podkatalog <filename>libavcodec</filename>, ale <emphasis role="bold">nie</emphasis> zawiera źródeł <systemitem class="library">libavcodec</systemitem>! Żeby uzyskać źródła tej biblioteki musisz wykonać powyższe czynności. </para> </note> <para> Wykorzystując FFmpega i mojego Matroksa G400, mogę oglądać na moim K6-2 500 filmy DivX najwyższej rozdzielczości bez gubienia klatek. </para> </sect3> <sect3 id="xanim"> <title>kodeki XAnim</title> <note> <para> Wiedz, że binarne kodeki Xanim wydane są na licencji, która, oprócz innych ograniczeń, zabrania użytkownikowi korzystać z nich w zestawieniu z innym programem niż <application>XAnim</application>. Jednakże do tej pory autor nie podejmował jeszcze żadnych kroków prawnych w sprawie związanej z kodekami. </para> </note> <formalpara> <title>INSTALACJA I UŻYTKOWANIE</title> <para> <application>MPlayer</application> potrafi zaprzęgnąć do dekodowania kodeki Xanim. Aby je uaktywnić, postępuj zgodnie z instrukcją: </para> </formalpara> <procedure> <step><para> Ściągnij kodeki, których chcesz użyć ze <ulink url="http://xanim.va.pubnix.com">strony XAnim</ulink>. Nie ma tam kodeka <emphasis role="bold">3ivX</emphasis>, ale można go znaleźć na <ulink url="http://www.3ivx.com">stronie 3ivX</ulink>. </para></step> <step><para> <emphasis role="bold">ALBO</emphasis> ściągnij zestaw kodeków z naszej <ulink url="http://www.mplayerhq.hu/MPlayer/releases/codecs/">strony z kodekami</ulink> </para></step> <step><para> Użyj opcji <option>--with-xanimlibdir</option> żeby wskazać skryptowi <filename>configure</filename> gdzie ma szukać kodeków Xanim. Domyślnie szuka ich w katalogach <filename class="directory">/usr/local/lib/codecs</filename>, <filename class="directory">/usr/local/lib/xanim/mods</filename>, <filename class="directory">/usr/lib/xanim/mods</filename> i <filename class="directory">/usr/lib/xanim</filename>. Drugą możliwością jest ustawienie zmiennej środowiskowej <envar>XANIM_MOD_DIR</envar> na katalog z kodekami XAnim. </para></step> <step><para> Zmień nazwę/utwórz dowiązanie symboliczne (symlink) plików, usuwając z nazwy rzeczy związane z architekturą komputera, tak żeby miały nazwy tego typu: <filename>vid_cvid.xa</filename>, <filename>vid_h263.xa</filename>, <filename>vid_iv50.xa</filename> </para></step> </procedure> <para> XAnim to cała rodzina kodeków <systemitem>xanim</systemitem>, możesz więc użyć opcji <option>-vfm xanim</option> żeby kazać <application>MPlayerowi</application> używać ich, gdy jest to możliwe. </para> <para> Przetestowane kodeki to: <emphasis role="bold">Indeo 3.2, 4.1, 5.0, CVID, 3ivX, H.263.</emphasis> </para> </sect3> <sect3 id="vivo-video"> <title>VIVO video</title> <para> <application>MPlayer</application> potrafi odtwarzać pliki video zakodowane przy pomocy Vivo (1.0 i 2.0). Najodpowiedniejszym kodekiem dla plików w wersji 1.0 jest dekoder H.263 FFmpega, którego możesz użyć za pomocą opcji <option>-vc ffh263</option>. Dla plików w wersji 2.0, użyj Win32 DLL korzystając z opcji <option>-vc vivo</option>. Jeżeli nie wybierzesz żadnej opcji, <application>MPlayer</application> automatycznie wybierze najlepszy kodek. </para> </sect3> <sect3 id="mpeg12"> <title>MPEG-1/2 video</title> <para> MPEG-1 i MPEG-2 są dekodowane przez natywną, wieloplatformową bibliotekę <systemitem class="library">libmpeg2</systemitem>, której kod źródłowy wchodzi w skład <application>MPlayera</application>. Z uszkodzonymi plikami MPEG-1/2 radzimy sobie przechwytując <systemitem>Signal 11</systemitem> (<systemitem>segmentation fault -błąd segmentacji -przyp tłumacz</systemitem>) i szybko reinicjując kodek, kontynuując odtwarzanie dokładnie w miejscu gdzie wystąpił błąd. Ta technika nie ma widocznego wpływu na szybkość działania. </para> </sect3> <sect3 id="avicodecs"> <title>MS Video1, Cinepak CVID i inne stare kodeki</title> <para> <application>MPlayer</application> potrafi odtwarzać większość plików AVI i MOV w których użyto starszych kodeków. W przeszłości były one dekodowane przy pomocy binarnych kodeków Win32, ale dzisiaj dysponujemy już <emphasis role="bold">natywnymi kodekami</emphasis>. W przypadku większości z nich używany jest <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>. </para> </sect3> <sect3 id="realvideo"> <title>RealVideo</title> <para> <application>MPlayer</application> obsługuje dekodowanie wszystkich wersji RealVideo: <itemizedlist> <listitem><simpara> RealVideo 1.0, 2.0 (fourcc RV10, RV20) - kodowanie/dekodowanie realizowane przez <systemitem class="library">libavcodec</systemitem> </simpara></listitem> <listitem><simpara> RealVideo 3.0, 4.0 (fourcc RV30, RV40) - dekodowanie za pomocą <emphasis role="bold">bibliotek RealPlayer</emphasis> </simpara></listitem> </itemizedlist> </para> <para> Ściągnij kodeki Real z <ulink url="http://www.mplayerhq.hu/MPlayer/releases/codecs/">http://www.mplayerhq.hu/MPlayer/releases/codecs/</ulink> i rozpakuj je do katalogu <filename class="directory">/usr/local/lib/codecs</filename>. Jeżeli wolisz je trzymać w innym miejscu, użyj opcji <option>--with-reallibdir</option> dla <command>configure</command>. </para> <note><para> Aktualnie biblioteki <application>RealPlayer</application> <emphasis role="bold">działają tylko pod Linuksem, FreeBSD, NetBSD, Cygwinem na platformach x86, Alpha i PowerPC (Sprawdzone zostały Linux/Alpha i Linux/PowerPC) i pod Mac OS X</emphasis>. </para></note> </sect3> <sect3 id="xvid"> <title>XviD</title> <para> <ulink url="http://www.xvid.org">XviD</ulink> jest wolnym, kompatybilnym z MPEG-4 ASP kodekiem video z możliwościami kodowania dwuprzebiegowego i pełną obsługą MPEG-4 ASP, dlatego jest dużo bardziej efektywny niż dobrze znany kodek DivX. Łączy bardzo dobrą jakość video i dobre osiągi dzięki optymalizacjami kodu dla większości nowoczesnych procesorów. </para> <para> Zaczął się jako odłam kodeka OpenDivX. Stało się to gdy ProjectMajo zmienił OpenDivX na zamknięte DivX4 (a teraz DivX5). W rezultacie tej decyzji, rozeźleni ludzie spoza ProjectMayo, którzy pracowali nad OpenDivX, rozpoczęli projekt XviD. Tak więc oba projekty mają to samo pochodzenie. </para> <procedure> <title>Instalacja <systemitem class="library">XviD</systemitem></title> <para> Jak większość otwartego oporgramowania dostępny jest w dwóch wersjach: <ulink url="http://www.xvid.org/downloads.html">oficjalnych wydań</ulink> i wersji CVS. Wersja CVS jest zazwyczaj wystarczająco stablina by jej używać, jako że zazwyczaj ma poprawki do błędów występujących w wydaniach. Tak należy nakłonić <systemitem class="library">XviD</systemitem> CVS do pracy z <application>MEncoderem</application> (będziesz potrzebował przenajmniej <application>autoconf</application> 2.50, <application>automake</application> i <application>libtool</application>): </para> <step><para> <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login</screen> </para></step> <step><para> <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore</screen> </para></step> <step><para> <screen>cd xvidcore/build/generic</screen> </para></step> <step><para> <screen>./bootstrap.sh</screen> </para></step> <step><para> <screen>./configure</screen> Możesz potrzebować dodać jakieś opcje (przejrzyj wyjście poniższej komendy). <command>./configure --help</command> </para></step> <step><para> <screen>make && make install</screen> </para></step> <step><para> Jeżeli użyłeś opcji <option>--enable-divxcompat</option>, skopiuj <filename>../../src/divx4.h</filename> do <filename class="directory">/usr/local/include/</filename>. </para></step> <step><para> Przekompiluj <application>MPlayera</application> z opcjami <option>--with-xvidcore=<replaceable>/ścieżka/do/</replaceable>libxvidcore.a</option> <option>--with-xvidincdir=<replaceable>/ścieżka/do/</replaceable>xvid.h</option>. </para></step> </procedure> </sect3> <sect3 id="sorenson"> <title>Sorenson</title> <para> Sorenson jest kodekiem video rozwijanym przez Sorenson Media i licencjonowanym dla Apple, która rozprowadza go wraz ze swoim <application>Odtwarzaczem QuickTime</application>. Aktualnie <application>MPlayer</application> jest w stanie odtwarzać wszystkie wersje plików video Sorensona z użyciem następujących dekoderów: </para> <itemizedlist> <listitem><simpara> Sorenson Video v1 (fourcc <emphasis>SVQ1</emphasis>) - dekodowanie za pomocą <emphasis role="bold">natywnego kodeka video</emphasis> (<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>) </simpara></listitem> <listitem><simpara> Sorenson Video v3 (fourcc <emphasis>SVQ3</emphasis>) - dekodowanie za pomocą <emphasis role="bold">natywnego kodeka video</emphasis> (<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>) </simpara></listitem> </itemizedlist> <procedure> <title>KOMPILOWANIE MPLAYERA ZE WSPARCIEM DLA BIBLIOTEK QUICKTIME</title> <note><para>Aktualnie obsługiwane są tylko 32-bitowe platformy Intela.</para></note> <step><para>ściągnij <application>MPlayera</application> z CVSu</para></step> <step><para>pobierz pakiet QuickTime DLL z <ulink url="http://www.mplayerhq.hu/MPlayer/releases/codecs/"/> </para></step> <step><para>rozpakuj pakiet QuickTime DLL do twojego katalogu z kodekami Win32 (domyślnie: <filename class="directory">/usr/local/lib/codecs/</filename>) </para></step> <step><para>skompiluj <application>MPlayera</application></para></step> </procedure> </sect3> <sect3 id="codec-x264"> <title>x264</title> <sect4 id="codec-x264-whatis"> <title>Co to jest x264</title> <para> <systemitem class="library">x264</systemitem> jest biblioteką słurzącą do tworzenia strumieni video H.264. Nie jest w 100% ukończona, ale ma przynajmniej pewną obsługę większości mających wpływ na jakość możliwości H.264. Jest też wiele zaawansowanych możliwości w specyfikacji H.264, które nie mają nic wspólnego z jakością jako taką; wiele z nich jeszcze nie ma implementacji w <systemitem class="library">x264</systemitem>. </para> <itemizedlist> <title>Możliwości kodera</title> <listitem><para>CAVLC/CABAC</para></listitem> <listitem><para>Wielokrotne referencje</para></listitem> <listitem><para>Intra: wszystkie typy makrobloków (16x16 i 4x4 z wszystkimi predykcjami)</para></listitem> <listitem><para>Inter P: wszystkie podziały (od 16x16 aż do 4x4)</para></listitem> <listitem><para>Inter B: podziały od 16x16 do 8x8 (włączając SKIP/DIRECT)</para></listitem> <listitem><para>Kontrola tempa: stały kwantyzator, stałe bitrate, albo wieloprzebiegowe ABR</para></listitem> <listitem><para>Wykrywanie zmian scen</para></listitem> <listitem><para>Adaptatywne umieszczanie klatek B</para></listitem> <listitem><para>Referencyjne ramki / dowolna kolejność ramek</para></listitem> </itemizedlist> <itemizedlist> <title>Ograniczenia kodera</title> <listitem><para>Brak prawdziwego RD</para></listitem> </itemizedlist> </sect4> <sect4 id="codec-h264-whatis"> <title>Co to jest H.264</title> <para> H.264 jedną z nazw nowego kodeka video opracowanego wspólnie przez ITU i MPEG. Może też być prawidłowo nazywany okropnymi nazwami "ISO/IEC 14496-10" lub "MPEG-4 Part 10". Częściej jest nazywany "MPEG-4 AVC" albo po prostu "AVC". </para> <para> Jakkolwiek go nie nazywać, H.264 może być wart wypróbowania ponieważ zazwyczaj może dorównać jakością MPEG-4 ASP z mniejszą o 5%-30% objętością. Dokładne wyniki zależą od materiału źródłowego i kodera. Zyski z używania H.264 nie są za darmo: Dekodowanie strumieni H.264 mają duże wymagania obliczeniowe i pamięciowe. Na przykład, na Athlonie 1733 MHz, film H.264 w rozdzielczości DVD 1500kbps wymaga do zdekodowania około 35% CPU. Dla porównania, dekodowanie strumienia MPEG-4 ASP w rozdzielczości DVD 1500kbps wymaga około 10% CPU. Oznacza to że dekodowanie wysokiej jakości strumieni jest prawie nie do pomyślenia dla zwykłych użytkowników. Oznacza to również że dobry DVD rip może się czasami zacinać na procesorach wolniejszych niż około 2.0 GHz. </para> <para> Przynajmniej przy używaniu <systemitem class="library">x264</systemitem> wymagania kodowania nie są o wiele większe niż te, do których przywykliśmy przy MPEG-4 ASP. Na przykład, na Athlonie 1733 MHz typowe kodowanie DVD będzie działać z 5-15fps. </para> <para> Ten dokument nie ma wyjaśniać szczegółów H.264, ale jeśli jesteś zainteresowany niewielkim wstępem możesz chcieć przeczytać <ulink url="http://www.cdt.luth.se/~peppar/kurs/smd151/spie04-h264OverviewPaper.pdf">The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions</ulink>. </para> </sect4> <sect4 id="codec-x264-playback"> <title>Jak mogę odtwarzać filmy H.264 używając <application>MPlayera</application></title> <para> <application>MPlayer</application> używa dekodera H.264 z <systemitem class="library">libavcodec</systemitem>. <systemitem class="library">libavcodec</systemitem> miało choć trochę zdatny do użytku dekoder H.264 od około czerwca 2004, ale od tego czasu wprowadzono wiele zmian i poprawek, zarówno pod względem obsługiwanej funkcjonalności jak i zużycia CPU. Na wszelki wypadek lepiej jest używać świeżej wersji CVS. </para> <para> Jeśli chcesz szybki i łatwy sposób na sprawdzenie czy były ostatnio zmiany w obsłudze H.264 w <systemitem class="library">libavcodec</systemitem>, możesz patrzeć na <ulink url="http://mplayerhq.hu/cgi-bin/cvsweb.cgi/ffmpeg/libavcodec/h264.c?cvsroot=FFMpeg">interface sieciowy repozytorium CVS FFmpeg</ulink> </para> </sect4> <sect4 id="codec-x264-encode"> <title>Jak mogę kodować filmy używając <application>MEncodera</application> i <systemitem class="library">x264</systemitem>?</title> <para> Jeśli masz zainstalowanego klienta subversion, możesz uzyskać najnowsze źródła x264 tym poleceniem: <screen> svn co svn://svn.videolan.org/x264/trunk x264<!-- --></screen> Źródła <application>MPlayera</application> są aktualizowane gdy tylko zmieni się API <systemitem class="library">x264</systemitem>, więc zalecamy też używanie <application>MPlayera</application> z CVS. Być może sytuacja się zmieni jeśli i gdy nastąpi "wydanie" <systemitem class="library">x264</systemitem>. W międzyczasie <systemitem class="library">x264</systemitem> powinna być uważana za niestabilną, w tym sensie że jej interface programistyczny może się zmienić. </para> <para> <systemitem class="library">x264</systemitem> buduje się i instaluje w sposób standardowy: <screen> ./configure && make && sudo make install<!-- --></screen> To zainstaluje libx264.a w /usr/local/lib oraz x264.h w /usr/local/include. Gdy biblioteka i nagłówki <systemitem class="library">x264</systemitem> są już w standardowych miejscach, budowanie <application>MPlayera</application> z obsługą <systemitem class="library">x264</systemitem> jest proste. Uruchom standardowe: <screen>./configure && make && sudo make install</screen> Skrypt konfiguracyjny wykryje że spełniłeś wymagania do obsługi <systemitem class="library">x264</systemitem>. </para> </sect4> </sect3> </sect2> <!-- ********** --> <sect2 id="audio-codecs"> <title>Kodeki audio</title> <itemizedlist> <title>Najważniejsze ze wszystkich kodeków audio:</title> <listitem><simpara> MPEG layer 1/2/3 (MP1/2/3) audio (<emphasis role="bold">natywny</emphasis> kod, z optymalizacją dla MMX/SSE/3DNow!) </simpara></listitem> <listitem><simpara> Windows Media Audio 7 i 8 (AKA WMAv1 i WMAv2) (<emphasis role="bold">natywny</emphasis> kod, z <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>) </simpara></listitem> <listitem><simpara> Windows Media Audio 9 (WMAv3) (poprzez DLL DMO) </simpara></listitem> <listitem><simpara> AC3 Dolby audio (<emphasis role="bold">natywny</emphasis> kod, z optymalizacją MMX/SSE/3DNow!) </simpara></listitem> <listitem><simpara> przetwarzanie AC3 przez kartę dźwiękową </simpara></listitem> <listitem><simpara> AAC </simpara></listitem> <listitem><simpara> kodek Ogg Vorbis audio (<emphasis role="bold">natywna</emphasis> biblioteka) </simpara></listitem> <listitem><simpara> RealAudio: DNET (AC3 z niskim bitratem), Cook, Sipro i ATRAC3 </simpara></listitem> <listitem><simpara> QuickTime: kodeki Qualcomm i QDesign </simpara></listitem> <listitem><simpara> VIVO audio (g723, Vivo Siren) </simpara></listitem> <listitem><simpara> Voxware audio (poprzez DirectShow DLL) </simpara></listitem> <listitem><simpara> formaty alaw i ulaw, różne gsm, adpcm i pcm i inne stare, proste kodeki audio </simpara></listitem> </itemizedlist> <sect3 id="swac3"> <title>Programowe dekodowanie AC3</title> <para> To jest domyślny dekoder używany przez pliki z dźwiękiem AC3. </para> <para> Dekoder AC3 może wytworzyć wyjście audio zmiksowane dla 2, 4 lub 6 głośników. Kiedy skonfigurowany jest dla 6 głośników, dekoder dostarcza do sterownika karty dźwiękowej osobne wyjście dla każdego kanału AC3, pozwalając doświadczyć pełnego "dźwięku przestrzennego" bez potrzeby użycia zewnętrznego dekodera AC3 wymaganego przez kodek hwac3. </para> <para> Użyj opcji <option>-channels</option> aby wybrać liczbę wyjściowych kanałów. Użyj <option>-channels 2</option> do uzyskania dźwięku stereo. Dla czterokanałowego dźwięku (wyjścia Lewe Przednie, Prawe Przednie, Lewe Surround i Prawe Surround), użyj <option>-channels 4</option>. W tym przypadku, wszystkie centralne kanały zostaną zmiksowane do odpowiadających im przednich kanałów. Natomiast <option>-channels 6</option> wyprodukuje wszystkie kanały AC3 tak jak zostały zakodowane - w kolejności Lewy, Prawy, Lewy Surround, Prawy Surround, Centralny i LFE. </para> <para> Domyślną liczbą kanałów wyjściowych jest 2. </para> <para> Aby użyć więcej niż dwóch wyjściowych kanałów, będziesz potrzebował OSS i kartę dźwiękową ze wsparciem dla odpowiedniej liczby wyjściowych kanałów poprzez SNDCTL_DSP_CHANNELS ioctl. Przykładem odpowiedniego sterownika jest emu10k1 (używany przez karty Soundblaster Live!) z sierpnia 2001 roku, albo nowszy (przypuszczalnie działa także ALSA CVS). </para> </sect3> <sect3 id="hwac3"> <title>Sprzętowe dekodowanie AC3</title> <para> Potrzebna jest karta obsługująca AC3, z cyfrowym wyjściem (S/PDIF). Sterownik musi prawidłowo obsługiwać format AFMT_AC3 (robi to C-Media). Podłącz swój dekoder AC3 do wyjścia S/PDIF i użyj opcji <option>-ac hwac3</option>. Rozwiązanie to jest ciągle w fazie testów, ale wiadomo, że działa z kartami C-Media i Soundblaster Live! + sterowniki ALSA (ale nie z OSS) i kartami dekodującymi DXR3/Hollywood+ MPEG. </para> </sect3> <sect3 id="libmad"> <title>obsługa libmad</title> <para> <ulink url="http://www.underbit.com/products/mad/">libmad</ulink> jest wieloplatformową, stałoprzecinkową (wewnętrznie 24-bitowe PCM) biblioteką dekodującą dźwięk MPEG. Nie odtwarza zbyt dobrze uszkodzonych plików i czasami ma problemy z przewijaniem, ale może mieć lepszą wydajność niż mp3lib na platformach ze słabszymi FPU (jednostka do wykonywania obliczeń zmiennoprzecinkowych-przyp. tłumacza) (jak np. <link linkend="arm">ARM</link>). </para> <para> Aby włączyć wsparcie dla biblioteki, podczas kompilacji użyj opcji <option>--enable-mad</option> przy wywoływaniu configure. </para> </sect3> <sect3 id="vivo-audio"> <title>VIVO audio</title> <para> Rodzaj kodeka audio używanego w plikach VIVO zależy od tego, czy jest to plik VIVO/1.0, czy VIVO/2.0. Pliki VIVO/1.0 mają dźwięk w formacie <emphasis role="bold">g.723</emphasis>, a pliki VIVO/2.0 w formacie <emphasis role="bold">Vivo Siren</emphasis>. Obsługiwane są oba typy. </para> </sect3> <sect3 id="realaudio"> <title>RealAudio</title> <para> <application>MPlayer</application> potrafi dekodować prawie wszystkie wersje RealAudio: </para> <itemizedlist> <listitem><simpara> RealAudio DNET - dekodowanie poprzez <systemitem class="library">liba52</systemitem> </simpara></listitem> <listitem><simpara> RealAudio Cook/Sipro/ATRAC3 - dekodowanie z użyciem <emphasis role="bold">bibliotek RealPlayer</emphasis> </simpara></listitem> </itemizedlist> <para> Instrukcje dotyczące sposobu instalacji bibliotek RealPlayer znajdują się w dziale <link linkend="realvideo">RealVideo</link>. </para> </sect3> <sect3 id="qdesign"> <title>kodeki QDesign</title> <para> Format dźwięku QDesign (fourcc:<emphasis>QDMC, QDM2</emphasis>) wykorzystywany jest w plikach MOV/QT. Obie wersje tych kodeków mogą być odtwarzane za pomocą bibliotek QuickTime. Instrukcje instalacji znajdują się w dziale <link linkend="sorenson">kodek Sorenson video</link>. </para> </sect3> <sect3 id="qualcomm"> <title>kodeki Qualcomm</title> <para> Dźwięk w formacie Qualcomm (fourcc:<emphasis>Qclp</emphasis>) używany jest w plikach MOV/QT. Może być dekodowany z użyciem bibliotek QuickTime. Instrukcje instalacji znajdują się w dziale <link linkend="sorenson">kodeka video Sorenson</link>. </para> </sect3> <sect3 id="aac"> <title>AAC codec</title> <para> AAC (Advanced Audio Coding) jest kodekiem audio spotykanym czasami w plikach MOV i MP4. Otwarty dekoder nazywany FAAD dostępny jest na stronie <ulink url="http://www.audiocoding.com"/>. <application>MPlayer</application> zawiera migawkę CVSu z libfaad 2.1beta, więc nie musisz ściągać go oddzielnie. </para> <para> Jeżeli używasz gcc 3.2, który ma kłopoty z kompilacją wbudowanej wersji FAAD lub chcesz z jakichś powodów użyć zewnętrznej biblioteki, ściągnij ją z <ulink url="http://www.audiocoding.com/modules/mydownloads/">tej strony</ulink> i dodaj opcję <option>--enable-external-faad</option> do <filename>configure</filename>. Nie potrzebujesz całego faad2 do dekodowanie plików AAC. Wystarczy użyć samej biblioteki libfaad. Zbudujesz ją w następujący sposób <screen> cd faad2/ sh bootstrap ./configure cd libfaad make make install </screen> Wersje binarne nie są dostępne na stronie audiocoding.com, ale możesz ściągnąć (apt-getem) Debianowe paczki z <ulink url="http://hpisi.nerim.net">domowej strony Christiana Marillata</ulink>, RPMy dla Mandrake/Mandriva ze strony <ulink url="http://plf.zarb.org">P.L.F</ulink> a RedHatowe RPMy z <ulink url="http://greysector.rangers.eu.org/">Grey Sector</ulink>. </para> </sect3> </sect2> <!-- ********** --> <sect2 id="codec-importing"> <title>importowanie kodeków Win32-HOWTO</title> <!-- TODO: a short paragraph of text would be nice here... --> <!-- Taa, a ja to potem pewnie bede mial tlumaczyc:-) --> <sect3 id="vfw-codecs"> <title>kodeki VFW</title> <para> VFW (Video for Windows) jest starym API Video pod Windows. Jego kodeki mają rozszerzenie <filename>.DLL</filename> albo (rzadziej) <filename>.DRV</filename>. Jeżeli <application>MPlayer</application> odmawia odtwarzania plików AVI z komunikatem tego typu: <screen>UNKNOWN video codec: HFYU (0x55594648)</screen> </para> <para> oznacza to, że twój plik AVI jest zakodowany z użyciem kodeka, który korzysta z fourcc HFYU (HFYU = kodek HuffYUV, DIV3 = DivX Low Motion, itd.; fourcc-unikalny, czteroliterowy identyfikator kodeka znajdujący się najczęściej w nagłówkach plików AVI-przyp. tłumacz). Kiedy już to wiesz, musisz odzukać DLL'a, który jest ładowany przez Windows w celu odtworzenia tego pliku. W naszym przypadku plik <filename>system.ini</filename> zawiera tę informację w następującej linii: <programlisting>VIDC.HFYU=huffyuv.dll</programlisting> </para> <para> Zatem potrzebujesz pliku <filename>huffyuv.dll</filename>. Zauważ, że kodeki audio są oznaczane za pomocą prefiksu MSACM: <programlisting>msacm.l3acm=L3codeca.acm</programlisting> </para> <para> Jest to kodek MP3. Teraz powinieneś mieć wszystkie niezbędne informacje (fourcc, plik z kodekiem, przykładowy plik AVI). Umieść swoją prośbę o wsparcie dla kodeka za pomocą poczty elektronicznej i wyślij ww. pliki na poniższy serwer FTP: <systemitem role="url"> ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/ </systemitem> </para> <note><para> W systemach Windows NT/2000/XP szukaj powyższych informacji w rejestrze, np. szukaj wyrażenia "VIDC.HFYU". Aby dowiedzieć się jak to zrobić, spójrz niżej na starą metodę DirectShow. </para></note> </sect3> <sect3 id="dshow-codecs"> <title>Kodeki DirectShow</title> <para> DirectShow jest nowszym API Video, które jest nawet gorsze od swojego poprzednika. Sprawa ma się gorzej z DirectShow, ponieważ: <itemizedlist> <listitem><simpara> <filename>system.ini</filename> nie zawiera wymaganych informacji, zamiast tego są one przechowywane w rejestrze. </simpara></listitem> <listitem><simpara> Z tego powodu wymagane jest GUID kodeka. </simpara></listitem> </itemizedlist> </para> <procedure> <title>Nowa metoda:</title> <para> Używając <application>Microsoft GraphEdit</application> (szybki sposób) </para> <step><para> Pobierz <application>GraphEdit</application> z dowolnego DirectX SDK, albo z <ulink url="http://doom9.net">doom9</ulink> </para></step> <step><para> Uruchom <command>graphedit.exe</command>. </para></step> <step><para> Z menu wybierz Graph -> Insert Filters. </para></step> <step><para> Rozwiń listę <systemitem>DirectShow Filters</systemitem> </para></step> <step><para> Wybierz właściwy kodek i rozwiń go. </para></step> <step><para> We wpisie <systemitem>DisplayName</systemitem> spójrz na tekst w nawiasach klamrowych po znaku "backslash" i zapisz go (pięć bloków oddzielonych kreskami, GUID). </para></step> <step><para> Binariami kodeka jest plik określony w polu <systemitem>Filename</systemitem>. </para></step> </procedure> <note> <para> Jeżeli nie ma pola <systemitem>Filename</systemitem>, a <systemitem>DisplayName</systemitem> zawiera coś w stylu <systemitem>device:dmo</systemitem>, to jest to DMO-kodek. </para> </note> <procedure> <title>Stara Metoda:</title> <para> Weź głęboki oddech i zacznij przeszukiwanie rejestru... </para> <step><para> Uruchom <command>regedit</command>. </para></step> <step><para> Naciśnij <keycap>Ctrl</keycap>+<keycap>F</keycap>, odznacz dwa pierwsze pola (checkboxes) i zaznacz trzecie. Wpisz fourcc kodeka (np. <userinput>TM20</userinput>). </para></step> <step><para> Powinieneś zobaczyć pole zwierające ścieżkę i nazwę pliku (np. <filename>C:\WINDOWS\SYSTEM\TM20DEC.AX</filename>). </para></step> <step><para> Gdy odnalazłeś już plik, potrzebny będzie GUID. Spróbuj ponownego wyszukiwania, ale tym razem wpisz nazwę kodeka, a nie jego fourcc. Jego nazwę można sprawdzić, kiedy Media Player odtwarza plik, odszukując ją w <guimenu>Plik</guimenu> -> <guisubmenu>Opcje</guisubmenu> -> <guimenuitem>Zaawansowane</guimenuitem>. Jeżeli jej tam nie będzie, to masz pecha. Spróbuj odgadnąć nazwę (np. spróbuj wyszukać "TrueMotion"). </para></step> <step><para> Jeżeli GUID został odnaleziony, powinieneś ujrzeć pola <guilabel>FriendlyName</guilabel> i <guilabel>CLSID</guilabel>. Zapisz szesnastobajtowy CLSID będący GUIDem, którego potrzebujemy. </para></step> </procedure> <note> <para> Jeżeli wyszukiwanie się nie powiedzie, spróbuj zaznaczyć wszystkie pola (checkboxes). Prawdopodobnie dostaniesz niepasujące wyniki, ale być może będziesz miał szczęście... </para> </note> <para> Teraz, kiedy masz już wszystkie niezbędne informacje (fourcc, GUID, plik z kodekiem, przykładowy plik AVI), umieść swoją prośbę o wsparcie dla kodeka za pomocą poczty elektronicznej i wyślij ww. pliki na poniższy serwer FTP: <systemitem role="url">ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/ </systemitem> </para> <para> Jeżeli chcesz samodzielnie dodać obsługę kodeka, przeczytaj <ulink url="http://www.mplayerhq.hu/MPlayer/DOCS/tech/codecs.conf.txt"> DOCS/tech/codecs.conf.txt</ulink> (tylko po angielsku - przyp. tłum.). </para> </sect3> </sect2> </sect1>