<?xml version="1.0" encoding="utf-8"?>
<!-- synced with r21741 -->
<!-- Opiekun: Cobra -->
<chapter id="formats">
<title>Kontenery</title>

<para>
Na początek ważne jest wyjaśnienie pewnego często popełnianego błędu.
Kiedy ludzie widzą plik o rozszerzeniu <filename>.AVI</filename>,
automatycznie stwierdzają, że to nie jest plik MPEG. Nie jest to prawda.
Przynajmniej niezupełnie. W przeciwieństwie do popularnego stwierdzenia,
plik taki <emphasis>może</emphasis> zawierać video MPEG-1.
</para>

<para>
Widzisz, <emphasis role="bold">kodek</emphasis> to nie to samo, co
<emphasis role="bold">format kontenerów</emphasis>.
Przykłady <emphasis role="bold">kodeków</emphasis> video: MPEG-1, MPEG-2,
MPEG-4 (DivX), Indeo5, 3vix.
Przykłady <emphasis role="bold">kontenerów</emphasis> plików: MPG, AVI, ASF.
</para>

<para>
W teorii, możesz umieścić video OpenDivX i dźwięk MP3 w
<emphasis role="bold">kontenerze MPG</emphasis>. Większość odtwarzaczy
nie będzie jednak w stanie go odtworzyć, gdyż spodziewają się obrazu MPEG-1 i
dźwięku MP2 (w przeciwieństwie do <emphasis role="bold">AVI</emphasis>,
<emphasis role="bold">MPG</emphasis> nie ma odpowiednich pól do opisu jego
strumieni audio i video). Możesz również umieścić video MPEG-1 w pliku
AVI. <ulink url="http://ffmpeg.org/">FFmpeg</ulink> i
<link linkend="mencoder"><application>MEncoder</application></link> potrafią
tworzyć takie pliki.
</para>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="video-formats">
<title>Formaty video</title>

<sect2 id="mpg-vob-dat">
<title>Pliki MPEG</title>

<para>
Pliki MPEG spotykamy w różnych odmianach:
</para>

<itemizedlist>
<listitem><para>
  MPG: To jest najbardziej <emphasis role="bold">podstawowa</emphasis> forma
  plików MPEG. Zawiera video MPEG-1 i audio MP2 (MPEG-1 warstwa 2) lub rzadziej
  MP1.
</para></listitem>
<listitem><para>
  DAT: To dokładnie ten sam format, co MPG, tylko z innym rozszerzeniem. Jest
  on używany na płytach <emphasis role="bold">Video CD</emphasis>. W związku
  ze sposobem tworzenia płyt VCD i struktury Linuksa, pliki DAT nie mogą być
  odtwarzane ani kopiowane z VCD jak zwykłe pliki. Musisz użyć opcji
  <option>vcd://</option> by odtworzyć Video CD.
</para></listitem>
<listitem><para>
  VOB: To format pliku MPEG na płytach <emphasis role="bold">DVD</emphasis>.
  Jest to to samo, co MPG, plus możliwość umieszczenia w nim napisów lub
  dźwięku nie-MPEG (AC3). Zawiera zakodowany strumień obrazu MPEG-2 i przeważnie
  dźwięk AC3, lecz dozwolone są także DTS, MP2 i nieskompresowane LPCM.
  <emphasis role="bold">Przejrzyj sekcję <link linkend="dvd">DVD</link></emphasis>!
</para></listitem>
<listitem><para>
  TY: To jest strumień TiVo MPEG. Zawiera on dane MPEG PES strumieni audio
  i video, oraz dodatkowe informacje jak napisy Closed Caption. Ten format nie
  jest strumieniem programu MPEG, ale zamkniętym formatem stworzonym przez
  TiVo. Więcej informacji o formacie strumienia TiVo można uzyskać na
  <ulink url="http://dvd-create.sourceforge.net/tystudio/tystream.shtml">
  stronie TyStudio</ulink>.
</para></listitem>
</itemizedlist>

<para>
Serie klatek tworzą niezależne grupy w plikach MPEG. To oznacza, że możesz
ciąć/łączyć plik MPEG za pomocą zwykłych narzędzi plikowych (typu
<command>dd</command>, <command>cut</command>) i pozostaje on całkowicie
funkcjonalny.
</para>

<para>
Jedną ważną cechą plików MPG jest to, że zawierają pole opisujące stosunek
szerokości do wysokości obrazu. Na przykład pliki SVCD zawierają obraz
o rozdzielczości 480x480, a w nagłówku pole to jest ustawione na 4:3, więc
odtwarzane są w 640x480. W plikach AVI często brakuje tego pola, więc muszą być
skalowane w trakcie kodowania lub odtwarzane z opcją <option>-aspect</option>
</para>
</sect2>

<!-- ********** -->

<sect2 id="avi">
<title>Pliki AVI</title>

<para>
Zaprojektowane przez Microsoft <emphasis role="bold">pliki AVI
(Audio Video Interleaved)</emphasis> to szeroko stosowany wielofunkcyjny format
aktualnie używany głównie dla video MPEG-4 (DivX i DivX4). Ma on wiele wad i
niedociągnięć (np. przy strumieniowaniu). Obsługuje jeden strumień video i od 0
do 99 strumieni audio i może mieć co najwyżej 2 GB, lecz istnieje rozszerzenie,
zwane <emphasis role="bold">OpenDML</emphasis>, które pozwala na osiągnięcie
większych plików.
Aktualnie Microsoft usilnie zniechęca do stosowania AVI i zaleca ASF/WMV.
Nie żeby to kogoś obchodziło...
</para>

<para>
Istnieje hack, który pozwala plikom AVI zawierać strumień audio Ogg Vorbis,
ale powoduje to ich niekompatybilność ze zwykłymi AVI.
<application>MPlayer</application> obsługuje odtwarzanie takich plików.
Skoki są również zaimplementowane, lecz poważnie ograniczone poprzez
źle zakodowane pliki z pomieszanymi nagłówkami.
Niestety jedyny program, który potrafi tworzyć takie pliki -
<application>NanDub</application> - ma z tym problem.
</para>

<note><para>
Kamery DV tworzą surowe strumienie DV, które są konwertowane przez narzędzia
do zgrywania DV do dwóch różnych typów plików AVI. Pliki te zawierają wtedy
albo osobne strumienie audio i video, które <application>MPlayer</application>
potrafi odtwarzać lub surowy strumień DV, którego obsługa jest w trakcie
rozwoju.
</para></note>

<para>
Istnieją dwa typy plików AVI:
<itemizedlist>
<listitem><para>
  <emphasis role="bold">Z przeplotem:</emphasis> Zawartość audio i video jest
  przepleciona. Jest to standardowy typ - zalecany i przeważnie używany.
  Niektóre narzędzia tworzą przeplatane pliki AVI ze złą synchronizacją.
  <application>MPlayer</application> wykrywa je jako przeplatane, ale powoduje
  to utratę synchronizacji A/V (najczęściej przy skokach). Pliki te powinny
  być odtwarzane jako bez przeplotu (opcja <option>-ni</option>).
</para></listitem>
<listitem><para>
  <emphasis role="bold">Bez przeplotu:</emphasis> Najpierw umieszczony jest
  cały strumień video, a potem cały strumień audio. Wymaga to więc dużo
  "chodzenia" po pliku, co powoduje, że trudno jest je odtwarzać z sieci lub z
  CD-ROMów.
</para></listitem>
</itemizedlist>
</para>

<para>
<application>MPlayer</application> obsługuje dwie metody synchronizacji
dla plików AVI:
<itemizedlist>
<listitem><para>
  <emphasis role="bold">oparte na bps (bitach na sekundę):</emphasis> Oparta
  jest na liczbie bitów/próbek na sekundę strumieni audio/video. Metoda ta jest
  stosowana przez większość odtwarzaczy, włączając w to
  <ulink url="http://avifile.sf.net">avifile</ulink> oraz
  <application>Windows Media Player</application>. Pliki z uszkodzonymi
  nagłówkami i pliki z dźwiękiem VBR (Variable Bitrate - zmienne
  tempo bitowe) utworzone za pomocą niekompatybilnego z VBR programu kodującego
  spowodują desynchronizację A/V przy tej metodzie (głównie przy skokach).
</para></listitem>
<listitem><para>
  <emphasis role="bold">oparte na przeplocie:</emphasis> Nie korzysta z
  informacji o tempie bitowym z nagłówka, lecz zamiast tego używa względnej
  pozycji przeplecionych fragmentów audio i video, dzięki czemu źle zakodowane
  pliki z dźwiękiem VBR można normalnie odtwarzać.
</para></listitem>
</itemizedlist>
</para>

<para>
Każdy kodek video i audio jest dozwolony, lecz należy zauważyć, że dźwięk
VBR nie jest zbyt dobrze obsługiwany przez większość odtwarzaczy. Format pliku
co prawda pozwala na użycie dźwięku VBR, lecz większość odtwarzaczy spodziewa
się dźwięku CBR (Constant Bitrate - stałe tempo bitowe), przez co
zawiodą przy VBR. VBR nie jest powszechny i specyfikacja AVI Microsoftu opisuje
jedynie CBR. Zauważyłem również, że większość enkoderów/multiplekserów AVI
tworzy złe pliki z dźwiękiem VBR. Istnieją jedynie dwa wyjątki potwierdzające
tę regułę:
<application><application>NanDub</application></application> oraz
<link linkend="mencoder"><application>MEncoder</application></link>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="asf-wmv">
<title>Pliki ASF/WMV</title>

<para>
ASF (Active Streaming Format - Aktywny Format Strumieniowania) pochodzi z
Microsoftu. Stworzyli oni dwa warianty ASF: v1.0 i v2.0. v1.0 jest używana
przez ich narzędzia medialne (<application>Windows Media Player</application>
oraz <application>Windows Media Encoder</application>) i jest bardzo tajna.
v2.0 jest opublikowana i opatentowana :). Oczywiście różnią się one znacząco i
nie ma pomiędzy nimi żadnej kompatybilności (kolejna zagrywka legalistyczna).
<application>MPlayer</application> obsługuje jedynie v1.0, gdyż nikt jeszcze nie
widział żadnego pliku v2.0 :). Zauważ, że dzisiejsze pliki ASF mają rozszerzenia
<filename>.WMA</filename> lub <filename>.WMV</filename>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="mov">
<title>Pliki QuickTime/MOV</title>

<para>
Formaty te zostały zaprojektowane przez Apple i mogą zawierać dowolny kodek,
CBR lub VBR. Mają przeważnie rozszerzenie <filename>.QT</filename> lub
<filename>.MOV</filename>. Warto zauważyć, że grupa MPEG-4 wybrała QuickTime
jako zalecany format pliku dla MPEG-4, a ich pliki MOV mają rozszerzenie
<filename>.MPG</filename> lub <filename>.MP4</filename> (interesujące jest to, że
strumienie w tych plikach to w rzeczywistości pliki MPG i AAC. Możesz nawet je
wyciągnąć za pomocą opcji <option>-dumpvideo</option> oraz
<option>-dumpaudio</option>).
</para>
</sect2>

<!-- ********** -->

<sect2 id="vivo">
<title>Pliki VIVO</title>

<para>
<application>MPlayer</application> szczęśliwie demultipleksuje pliki VIVO.
Największą niedogodnością formatu jest to, że nie ma on bloku indeksu
ani stałego rozmiaru pakietu czy bajtów synchronizacji, a większość plików
nie ma nawet klatek kluczowych, więc zapomnij o skakaniu po filmie!
</para>

<para>
Kodek video plików VIVO/1.0 to standardowy <emphasis role="bold">h.263</emphasis>.
Kodek video plików VIVO/2.0 to zmodyfikowany, niestandardowy
<emphasis role="bold">h.263v2</emphasis>. Dźwięk jest ten sam i może to być
<emphasis role="bold">g.723 (standardowy)</emphasis> lub
<emphasis role="bold">Vivo Siren</emphasis>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="fli">
<title>Pliki FLI</title>

<para>
<emphasis role="bold">FLI</emphasis> jest bardzo starym formatem używanym przez
Autodesk Animator,
lecz jest to powszechnie stosowany w sieci format do krótkich animacji.
<application>MPlayer</application> demultipleksuje i dekoduje pliki FLI i
potrafi nawet po nich skakać (użyteczne przy zapętlaniu za pomocą opcji
<option>-loop</option>). Pliki FLI nie zawierają klatek kluczowych, więc obraz
będzie trochę zaśmiecony przez krótką chwilę po skoku.
</para>
</sect2>

<!-- ********** -->

<sect2 id="realmedia">
<title>Pliki RealMedia (RM)</title>

<para>
Tak, <application>MPlayer</application> potrafi czytać (demultipleksować)
pliki RealMedia (<filename>.rm</filename>).
</para>
</sect2>

<!-- ********** -->

<sect2 id="nuppelvideo">
<title>Pliki NuppelVideo</title>

<para>
<ulink url="http://frost.htu.tuwien.ac.at/~roman/nuppelvideo/">NuppelVideo</ulink>
jest narzędziem do zgrywania TV (AFAIK :). <application>MPlayer</application>
potrafi czytać jego pliki <filename>.NUV</filename> (tylko NuppelVideo 5.0).
Pliki te mogą zawierać klatki: nieskompresowane YV12, skompresowane YV12+RTJpeg,
skompresowane YV12 RTJpeg+lzo i skompresowane YV12+lzo.
<application>MPlayer</application> dekoduje je (a nawet
<emphasis role="bold">koduje</emphasis> za pomocą
<application>MEncodera</application> do MPEG-4 (DivX) itp!) wszystkie.
Działają również skoki.
</para>
</sect2>

<!-- ********** -->

<sect2 id="yuv4mpeg">
<title>Pliki yuv4mpeg</title>

<para>
<ulink url="http://mjpeg.sf.net">yuv4mpeg / yuv4mpeg2</ulink>
to format plików stosowany przez
<ulink url="http://mjpeg.sf.net">programy mjpegtools</ulink>.
Możesz zgrywać, produkować, filtrować lub kodować video w tym formacie za pomocą
tych narzędzi. Format ten jest w rzeczywistości sekwencją nieskompresowanych
obrazów YUV 4:2:0.
</para>
</sect2>

<!-- ********** -->

<sect2 id="film">
<title>Pliki FILM</title>

<para>
Format ten jest używany przez stare gry CD-ROM na Sega Saturn.
</para>
</sect2>

<!-- ********** -->

<sect2 id="roq">
<title>Pliki RoQ</title>

<para>
Pliki RoQ to pliki multimedialne używane w niektórych grach ID, np.
Quake III czy Return to Castle Wolfenstein.
</para>
</sect2>

<!-- ********** -->

<sect2 id="ogg">
<title>Pliki OGG/OGM</title>

<para>
Jest to nowy format plików z <ulink url="http://www.xiph.org">Xiphophorus</ulink>.
Może zawierać dowolne kodeki audio i video, CBR lub VBR. Będziesz potrzebował
zainstalowanych bibliotek <systemitem class="library">libogg</systemitem>
oraz <systemitem class="library">libvorbis</systemitem> zanim skompilujesz
<application>MPlayera</application> by móc go odtwarzać.
</para>
</sect2>

<!-- ********** -->

<sect2 id="sdp">
<title>Pliki SDP</title>

<para>
<ulink url="ftp://ftp.rfc-editor.org/in-notes/rfc2327.txt">SDP</ulink>
to format opisu strumieni RTP audio lub video będący standardem IETF.
(Wymagane jest "<ulink url="http://www.live555.com/mplayer/">LIVE555 Streaming Media</ulink>".)
</para>
</sect2>

<!-- ********** -->

<sect2 id="pva">
<title>Pliki PVA</title>

<para>
PVA to format MPEGo-podobny używany przez oprogramowanie kart DVB (np.:
<application>MultiDec</application> lub <application>WinTV</application> pod
Windows).
</para>
</sect2>

<!-- ********** -->

<sect2 id="nsv">
<title>Pliki NSV</title>

<para>
NSV (NullSoft Video) jest formatem plików używanym przez odtwarzacz
<application>Winamp</application> do strumieniowania audio i video.
Video to VP3, VP5 lub VP6, audio to MP3, AAC lub VLB.
Wersja tylko-audio NSV ma rozszerzenie <filename>.nsa</filename>.
<application>MPlayer</application> potrafi odtwarzać zarówno strumienie, jak i pliki NSV.
Proszę zauważyć, że większość plików ze
<ulink url="http://www.winamp.com">strony Winamp'a</ulink> korzysta z audio VLB, które
jeszcze nie jest dekodowane przez <application>MPlayera</application>. Oprócz tego
strumienie z tej strony potrzebują dodatkowej warstwy depakietowania, która nie jest
jeszcze zaimplementowana (plików tych i tak nie da się odtworzyć ze względu na 
audio VLB).
</para>
</sect2>

<!-- ********** -->

<sect2 id="matroska">
<title>Pliki matroska</title>

<para>
Matroska jest otwartym formatem przechowywania.
Więcej informacji na
<ulink url="http://www.matroska.org/">oficjalnej stronie</ulink>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="nut">
<title>Pliki NUT</title>

<para>
NUT jest formatem przechowywania opracowanym przez ludzi
z <application>MPlayera</application> i <application>FFmpeg</application>.
Oba projekty go obsługują.
Więcej informacji na
<ulink url="http://www.nut.hu/">oficjalnej stronie</ulink>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="gif">
<title>Pliki GIF</title>

<para>
Format <emphasis role="bold">GIF</emphasis> jest powszechnym formatem zapisu
grafiki sieciowej. Istnieją dwie wersje specyfikacji GIF: GIF87a oraz GIF89a.
Główną różnicą jest to, że GIF89a pozwala na animację.
<application>MPlayer</application> obsługuje oba formaty plików za pomocą
biblioteki <systemitem class="library">libungif</systemitem>
lub innej, kompatybilnej z libgif biblioteki. Nieanimowane GIFy są wyświetlane
jako filmy o pojedynczej klatce. (Użyj opcji <option>-loop</option> oraz
<option>-fixed-vo</option> by wyświetlić je dłużej.)
</para>

<para>
<application>MPlayer</application> obecnie nie pozwala na skoki w plikach GIF.
Pliki GIF bowiem niekoniecznie muszą mieć stałego rozmiaru klatki, ani stałej
prędkości odtwarzania. Raczej każda klatka jest niezależnego rozmiaru i ma
zostać umiejscowiona w odpowiednim miejscu na polu o ustalonym rozmiarze.
Prędkość odtwarzania jest kontrolowana za pomocą opcjonalnego bloku przed
każdą klatką, która ustala opóźnienie kolejnej klatki w setnych sekundy.
</para>

<para>
Standardowe pliki GIF zawierają 24-bitowe klatki RGB z co najwyżej 8-bitową
indeksowaną paletą. Klatki te są przeważnie kompresowane za pomocą LZW, lecz
niektóre kodery produkują nieskompresowane klatki by uniknąć problemów
patentowych w związku z kompresją LZW.
</para>

<para>
Jeśli Twoja dystrybucja nie zawiera biblioteki
<systemitem class="library">libungif</systemitem>, pobierz ją ze
<ulink url="http://sourceforge.net/projects/libungif">strony domowej libungif</ulink>.
By uzyskać szczegółowe informacje techniczne, zajrzyj do
<ulink url="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">specyfikacji GIF89a</ulink>.
</para>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="audio-formats">
<title>Formaty audio</title>

<para>
<application>MPlayer</application> jest odtwarzaczem
<emphasis role="bold">filmów</emphasis>, a nie
<emphasis role="bold">mediów</emphasis>. Potrafi jednak odtwarzać niektóre pliki
audio (są one wymienione w sekcjach poniżej).
Nie jest to jednak zalecane zastosowanie <application>MPlayera</application>.
Powinieneś raczej użyć <ulink url="http://www.xmms.org">XMMSa</ulink>.
</para>

<!-- ********** -->

<sect2 id="mp3">
<title>Pliki MP3</title>

<para>
Możesz mieć pewne problemy przy odtwarzaniu niektórych plików
MP3, które <application>MPlayer</application> błędnie rozpozna jako
MPEG i odtworzy je nieprawidłowo lub nie odtworzy ich wcale. Nie da się
tego naprawić bez porzucenia odtwarzania uszkodzonych plików
MPEG i tak prawdopodobnie zostanie w najbliższej przyszłości. Opcja
<option>-demuxer</option> opisana na stronie man może pomóc Ci w takich
przypadkach.
</para>
</sect2>

<!-- ********** -->

<sect2 id="ogg-vorbis">
<title>Pliki OGG/OGM (Vorbis)</title>

<para>
Wymaga poprawnie zainstalowanych bibliotek
<systemitem class="library">libogg</systemitem> i
<systemitem class="library">libvorbis</systemitem>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="cdda">
<title>CD audio</title>

<para>
<application>MPlayer</application> potrafi korzystać z programu
<application>cdparanoia</application> do odtwarzania CDDA (Audio CD). Sekcja
ta nie zawiera spisu możliwości programu <application>cdparanoia</application>.
</para>

<para>
Zajrzyj do strony man i przeczytaj opis opcji <option>-cdda</option>, która może
zostać wykorzystana do przekazania opcji do programu
<application>cdparanoia</application>.
</para>
</sect2>

<!-- ********** -->

<sect2 id="xmms">
<title>XMMS</title>

<para>
<application>MPlayer</application> potrafi korzystać z wtyczek wejścia z
programu <application>XMMS</application> do odtwarzania wielu formatów. Istnieją
wtyczki do muzyczek z gier na SNES, muzyczek SID (z Commodore 64), wielu
formatów Amigi, .xm, .it, VQF, musepack, Bonk, shorten i wielu innych. Możesz
znaleźć je na <ulink url="http://www.xmms.org/plugins.php?category=input">Stronie
wtyczek wejściowych do XMMS</ulink>.
</para>

<para>
Do obsługi tej możliwości musisz mieć <application>XMMSa</application> i
skompilować <application>MPlayera</application> za pomocą
<filename>./configure --enable-xmms</filename>. Jeśli to nie zadziała, być może
musisz ustawić ścieżki do wtyczek i bibliotek <application>XMMSa</application>
ręcznie za pomocą opcji konfiguracji <option>--with-xmmsplugindir</option> i
<option>--with-xmmslibdir</option>
</para>
</sect2>
</sect1>

</chapter>
