1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-24 07:42:17 +00:00
mpv/DOCS/xml/pl/mencoder.xml
diego b231d345a2 Change obsolete references to design6 to design7.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17708 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-03-01 10:07:43 +00:00

1423 lines
57 KiB
XML

<?xml version="1.0" encoding="iso-8859-2"?>
<!-- Synced with 1.36 -->
<chapter id="mencoder">
<title>Kodowanie z <application>MEncoderem</application></title>
<para>
Pełna lista dostępnych opcji <application>MEncodera</application> oraz
przykłady znajdują się na stronie man. W pliku <ulink url="../../tech/encoding-tips.txt">encoding-tips</ulink>
znajduje się dużo przykładów i przewodników skompletowanych z wielu wątków listy dyskusyjnej mplayer-users. W
<ulink url="http://mplayerhq.hu/pipermail/mplayer-users/">archiwum</ulink>
znajdziesz mnóstwo dyskusji o aspektach i problemach związanych z kodowaniem
przy pomocy <application>MEncodera</application>.
</para>
<sect1 id="menc-feat-mpeg4">
<title>Kodowanie dwu-przebiegowe MPEG-4 ("DivX")</title>
<para>
Nazwa związana jest z faktem, iż przy użyciu tej metody plik kodowany jest <emphasis>dwa razy</emphasis>.
Pierwsze kodowanie (dubbed pass) tworzy pliki tymczasowe
(<filename>*.log</filename>) o rozmiarze kilku megabajtów, nie kasuj ich od razu
(możesz natomiast skasować plik AVI). W drugim przebiegu
przy pomocy danych o bitrate'cie z plików tymczasowych tworzony jest plik wyjściowy
drugiego przebiegu. Plik końcowy będzie miał o wiele lepszą jakość w porównaniu ze standardowym 1-przebiegowym kodowaniem.
Jeżeli pierwszy raz o tym słyszysz, powinieneś zajrzeć do któregoś z wielu
przewodników dostępnych w sieci.
</para>
<example>
<title>kopiowanie ścieżki dźwiękowej</title>
<para>
Dwu-przebiegowe kodowanie DVD do MPEG-4 ("DivX") AVI z kopiowaniem ścieżki dźwiękowej.
<screen>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o <replaceable>film.avi</replaceable>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o <replaceable>film.avi</replaceable>
</screen>
</para>
</example>
<example>
<title>kodowanie ścieżki dzwiękowej</title>
<para>
Dwu-przebiegowe kodowanie DVD do MPEG-4 ("DivX") AVI z kodowaniem ścieżki dźwiękowej do MP3.
<screen>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o <replaceable>film.avi</replaceable>
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o <replaceable>film.avi</replaceable>
</screen>
</para>
</example>
</sect1>
<sect1 id="menc-feat-mpeg">
<title>Kodowanie do formatu MPEG</title>
<para>
<application>MEncoder</application> może tworzyć pliki formatu MPEG (MPEG-PS).
Jest to prawdopodobnie użyteczne tylko z kodekiem <emphasis>mpeg1video</emphasis>
pochodzącym z <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>, ponieważ odtwarzacze - za wyjątkiem
<application>MPlayera</application> - oczekują obrazu zakodowanego w MPEG-1 i
strumienia dźwiękowego w MPEG-1 warstwa (layer) 2 (MP2) w pliku MPEG.
</para>
<para>
Możliwość ta nie jest zbytnio przydatna w tej chwili, poza tym
zawiera prawdopodobnie wiele błędów, ale najważniejsze jest to,
że <application>MEncoder</application> w tej chwili nie może kodować
2 warstwy MPEG-1 (MP2) audio której oczekują wszystkie odtwarzacze w plikach MPEG.
</para>
<para>
Aby zmienić wyjściowy format plików <application>MEncodera</application>, użyj opcji <option>-of mpeg</option>.
</para>
<para>
Przykład:
<screen>
mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy <replaceable>inne opcje</replaceable> <replaceable>media.avi </replaceable> -o <replaceable>wyjscie.mpg</replaceable>
</screen>
</para>
</sect1>
<sect1 id="menc-feat-rescale">
<title>Przeskalowywanie filmów</title>
<para>
Często zachodzi potrzeba zmiany wielkości obrazu. Powodów tego może być wiele:
zmniejszenie rozmiaru pliku, przepustowość sieci, itd. Większość ludzi stosuje
ponowne skalowanie przy konwertowaniu płyt DVD, SVCD do DivX AVI. Jeżeli
chcesz przeskalowywać, przeczytaj sekcję o <link linkend="aspect">zachowywaniu proporcji obrazu</link>.
</para>
<para>
Proces skalowania obsługiwany jest przez filtr video <literal>scale</literal>
<option>-vf scale=<replaceable>szerokość</replaceable>:<replaceable>wysokość</replaceable></option>.
Jego jakość może być ustawiona parametrem <option>-sws</option>.
Jeśli nie jest on podany <application>MEncoder</application> użyje wartości 2: bicubic.
</para>
<para>
Przykład:
<screen>
mencoder <replaceable>wejscie.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4
-vf scale=640:480 -o <replaceable>wyjscie.avi</replaceable>
</screen>
</para>
</sect1>
<sect1 id="menc-feat-streamcopy">
<title>Kopiowanie strumienia</title>
<para>
<application>MEncoder</application> obsługuje strumienie wejściowe na dwa sposoby:
<emphasis role="bold">koduje</emphasis> lub <emphasis role="bold">kopiuje</emphasis>
je. Ta sekcja jest o <emphasis role="bold">kopiowaniu</emphasis>.
</para>
<itemizedlist>
<listitem><para>
<emphasis role="bold">Strumień video</emphasis> (opcja <option>-ovc copy</option>):
można ładne rzeczy wyczyniać:) Jak wstawianie (nie konwertowanie) FLI, VIDO lub MPEG-1 video w plik AVI!
Oczywiście tylko <application>MPlayer</application> potrafi odtwarzać takie pliki :) I prawdopodobnie nie ma
dla tego żadnego sensownego zastosowania. Poważniej: kopiowanie strumieni video może być przydatne
wtedy, gdy np. tylko strumień audio ma być zakodowany (np. PCM do MP3).
</para></listitem>
<listitem><para>
<emphasis role="bold">Strumień audio</emphasis> (opcja <option>-oac copy</option>):
prosto i przystępnie. Możliwe jest wmiksowanie zewnętrznego źródła (MP3, WAV) do strumienia wyjściowego.
Użyj opcji <option>-audiofile <replaceable>nazwa_pliku</replaceable></option> do tego celu.
</para></listitem>
</itemizedlist>
</sect1>
<sect1 id="menc-feat-fix-avi">
<title>Naprawianie plików AVI ze zniszczonym indeksem lub przeplotem</title>
<para>
Najprostsza sprawa. Po prostu kopiujemy strumień audio i video, a
<application>MEncoder</application> generuje indeks. Oczywiście nie
naprawi to możliwych błędów w strumieniu video i/lub audio, ale za to, naprawi pliki z zepsutym przeplotem,
tak więc opcja <option>-ni</option> nie będzie tu już potrzebna.
</para>
<para>
Komenda:
<screen>
mencoder -idx <replaceable>wejscie.avi</replaceable> -ovc copy -oac copy -o <replaceable>wyjscie.avi</replaceable><!--
--></screen>
</para>
<sect2 id="menc-feat-appending">
<title>Łącznie wielu plików AVI</title>
<para>
Efektem ubocznym funkcji naprawiania zepsutych plików AVI jest możliwości łączenia
2 (lub więcej) plików AVI:
</para>
<para>
Komenda:
<screen>cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o <replaceable>wyjscie.avi</replaceable> -</screen>
</para>
<note><para>
Komenda ta oczekuje tego, żeby <filename>1.avi</filename> i <filename>2.avi</filename> używały tego
samego kodeka, rozdzielczości, szybkości strumienia (stream rate), i przynajmniej
<filename>1.avi</filename> nie może być zepsute. Możliwe, że będziesz musiał naprawić pliki wejściowe,
jak było opisane
<link linkend="menc-feat-fix-avi">powyżej</link>.
</para></note>
</sect2>
</sect1>
<sect1 id="menc-feat-enc-libavcodec">
<title>Kodowanie przy pomocy rodziny kodeków <systemitem class="library">libavcodec</systemitem></title>
<para>
<link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> umożliwia proste kodowanie do wielu
interesujących formatów video i audio.
Możesz kodować do następujących kodeków (mniej lub bardziej aktualne)
<informaltable frame="all">
<tgroup cols="2">
<thead>
<row><entry>Nazwa kodeka</entry><entry>Opis</entry></row>
</thead>
<tbody>
<row><entry>mjpeg</entry><entry>
Ruchomy JPEG
</entry></row>
<row><entry>ljpeg</entry><entry>
Bezstratny JPEG
</entry></row>
<row><entry>h263</entry><entry>
H.263
</entry></row>
<row><entry>h263p</entry><entry>
H263+
</entry></row>
<row><entry>mpeg4</entry><entry>
Standard ISO MPEG-4 (DivX 5, XVID kompatybilne)
</entry></row>
<row><entry>msmpeg4</entry><entry>
pierwotny wariant MPEG-4 od MS, v3 (DivX3)
</entry></row>
<row><entry>msmpeg4v2</entry><entry>
pierwotny wariant MPEG-4 od MS, v2 (używany w starych plikach asf)
</entry></row>
<row><entry>wmv1</entry><entry>
Windows Media Video, wersja 1 (WMV7)
</entry></row>
<row><entry>wmv2</entry><entry>
Windows Media Video, wersja 2 (WMV8)
</entry></row>
<row><entry>rv10</entry><entry>
Stary kodek RealVideo
</entry></row>
<row><entry>mpeg1video</entry><entry>
MPEG-1 video
</entry></row>
<row><entry>mpeg2video</entry><entry>
MPEG-2 video
</entry></row>
<row><entry>huffyuv</entry><entry>
bezstratna kompresja
</entry></row>
<row><entry>asv1</entry><entry>
ASUS Video v1
</entry></row>
<row><entry>asv2</entry><entry>
ASUS Video v2
</entry></row>
<row><entry>ffv1</entry><entry>
bezstratny kodek video FFmpeg
</entry></row>
</tbody>
</tgroup>
</informaltable>
Pierwsza kolumna zawiera nazwę kodeka, która powinna być podana za opcją
<literal>vcodec</literal>, np: <option>-lavcopts vcodec=msmpeg4</option>
</para>
<informalexample>
<para>
Przykład z kompresją MJPEG:
<screen>mencoder dvd://2 -o <replaceable>title2.avi</replaceable> -ovc lavc -lavcopts vcodec=mjpeg -oac copy</screen>
</para>
</informalexample>
</sect1>
<sect1 id="menc-feat-enc-images">
<title>Kodowanie z wielu wejściowych plików obrazkowych (JPEG,PNG lub TGA)</title>
<para>
<application>MEncoder</application> jest w stanie stworzyć film z jednego
lub wielu plików JPEG, PNG lub TGA. Poprzez proste kopiowanie ramek może stworzyć pliki MJPEG
(Motion (ruchomy - przypis tłumacza) JPEG), MPNG (Motion PNG) lub MTGA (Motion TGA).
</para>
<orderedlist>
<title>Jak to działa:</title>
<listitem><para>
<application>MEncoder</application> <emphasis>dekoduje</emphasis> wejściowy obrazek/obrazki z pomocą biblioteki
<systemitem class="library">libjpeg</systemitem> (w przypadku dekodowania PNG, skorzysta z
<systemitem class="library">libpng</systemitem>).
</para></listitem>
<listitem><para>
Potem <application>MEncoder</application> kompresuje zdekodowane pliki podanym kompresorem
(DivX4, XviD, FFmpeg msmpeg4, itd.).
</para></listitem>
</orderedlist>
<formalpara>
<title>Przykłady</title>
<para>
Opis i sposób działania funkcji <option>-mf</option> znajdują się na stronie man.
<informalexample>
<para>
Tworzenie pliku MPEG-4 ze wszystkich plików JPEG w aktualnym katalogu:
<screen>
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o <replaceable>wyjscie.avi</replaceable>
</screen>
</para>
</informalexample>
<informalexample>
<para>
Tworzenie pliku MPEG-4 z wybranych plików JPEG w aktualnym katalogu:
<screen>
mencoder mf://*.jpg -mf type=jpg:w=800:h=600:fps=25 -ovc copy -oac copy -o <replaceable>wyjscie.avi</replaceable>
</screen>
</para>
</informalexample>
<informalexample>
<para>
Tworzenie pliku Motion JPEG (MJPEG) ze wszystkich plików JPEG w aktualnym katalogu:
<screen>
mencoder -mf on:w=800:h=600:fps=25 -ovc copy -o <replaceable>wyjscie.avi</replaceable> \*.jpg<!--
--></screen>
</para>
</informalexample>
<informalexample>
<para>
Tworzenie nieskompresowanego pliku ze wszystkich plików PNG w aktualnym katalogu:
<screen>
mencoder -mf on:w=800:h=600:fps=25:type=png -ovc raw -o <replaceable>wyjscie.avi</replaceable> \*.png<!--
--></screen>
</para>
</informalexample>
<note><para>
Szerokości musi być liczbą podzielną przez 4, takie są ograniczenia formatu RAW RGB AVI.
</para></note>
<informalexample>
<para>
Tworzenie pliku Motion PNG (MPNG) ze wszystkich plików PNG w aktualnym katalogu:
<screen>mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o <replaceable>wyjscie.avi</replaceable> <!--
--></screen>
</para>
</informalexample>
<informalexample>
<para>
Tworzenie pliku Motion TGA (MTGA) ze wszystkich plików TGA w aktualnym katalogu:
<screen>
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o <replaceable>wyjscie.avi</replaceable><!--
--></screen>
</para>
</informalexample>
</para>
</formalpara>
</sect1>
<sect1 id="menc-feat-extractsub">
<title>Ekstraktowanie napisów z DVD do pliku VOBsub</title>
<para>
<application>MEncoder</application> jest w stanie wyciągnąć napisy z DVD do pliku
w formacie VOBsub. Tworzy je para plików z rozszerzeniem
<filename>.idx</filename> i <filename>.sub</filename>, które są zazwyczaj spakowane do
pojedyńczego archiwum <filename>.rar</filename>.
<application>MPlayer</application> może je odtwarzać z opcjami
<option>-vobsub</option> i <option>-vobsubid</option>.
</para>
<para>
Podajesz nazwę bazową (tzn. bez rozszerzenia <filename>.idx</filename> lub
<filename>.sub</filename>) pliku wyjściowego z
<option>-vobsubout</option> oraz indeks dla tego pliku przez <option>-vobsuboutindex</option>.
</para>
<para>
Jeżeli źródłem nie jest DVD powinieneś użyć opcji <option>-ifo</option>, aby
wskazać plik <filename>.ifo</filename> potrzebny do stworzenia pliku wynikowego
<filename>.idx</filename>.
</para>
<para>
Jeżeli źródłem nie jest DVD i nie masz pliku <filename>.ifo</filename>, będziesz musiał użyć opcji
<option>-vobsubid</option>, aby podać id języka, które będzie umieszczone w pliku
<filename>.idx</filename>.
</para>
<para>
Każde uruchomienie dołączy do istniejących napisów, jeżeli pliki <filename>.idx</filename>
i <filename>.sub</filename> istnieją. Więc powinieneś je usunąć przed uruchomieniem.
</para>
<example>
<title>Kopiowanie dwóch napisów z DVD podczas dwu-przebiegowego kodowania</title>
<screen>
rm subtitles.idx subtitles.sub
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5<!--
--></screen>
</example>
<example>
<title>Kopiowanie francuskich napisów z pliku MPEG</title>
<screen>
rm napisy.idx napisy.sub
mencoder <replaceable>film.mpg</replaceable> -ifo <replaceable>film.ifo</replaceable> -vobsubout napisy -vobsuboutindex 0 -vobsuboutid fr -sid 1<!--
--></screen>
</example>
</sect1>
<sect1 id="aspect">
<title>Utrzymywanie proporcji obrazu (aspect ratio)</title>
<para>
Pliki DVD i SVCD (tzn. MPEG-1/2) zawierają wartość proporcji obrazu, która
opisuje, jak odtwarzacz ma skalować strumień video, więc ludzie nie będą się męczyć (np.: 480x480 + 4:3 = 640x480).
Jednak przy kodowaniu plików AVI (DivX) musisz być świadom, że nagłówek AVI nie przechowuje
tej wartości. Przeskalowywanie jest obrzydliwe i czasochłonne, musi być jakiś lepszy sposób!
</para>
<para>Jest</para>
<para>
MPEG-4 posiada unikalną cechę: strumień video może posiadać swoją wartość proporcji obrazu.
Tak, dokładnie jak pliki MPEG-1/2 (DVD, SVCD) i H.263. Niestety, nie ma
<emphasis role="bold">żadnych</emphasis> odtwarzaczy video które by to wykorzystywały, oprócz <application>MPlayera</application>.
</para>
<para>
Możliwość ta może być jedynie używana z kodekiem <systemitem>mpeg4</systemitem>
z biblioteki <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>.
Pamiętaj: chociaż <application>MPlayer</application>
poprawnie odtworzy stworzone pliki, inne odtwarzacze
użyją złych proporcji obrazu (aspect ratio).
</para>
<para>
Z pewnością powinieneś wyciąć czarne pasy nad i pod obrazem.
Zobacz jak używać filtrów <systemitem>cropdetect</systemitem> i <systemitem>crop</systemitem> na stronie man.
</para>
<para>
Sposób użycia:
<screen>
mencoder <replaceable>przykład-svcd.mpg</replaceable> -ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o <replaceable>wyjscie.avi</replaceable>
</screen>
</para>
</sect1>
<sect1 id="custommatrices"><title>Dowolne inter/intra matryce</title>
<para>
Ta cecha <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link> pozwala ustawić dowolne
inter (I-ramki/ramki kluczowe) i intra (P-ramki/predicted
frames) matryce. Funkcja ta jest obsługiwana przez wiele kodeków:
<systemitem>mpeg1video</systemitem> i <systemitem>mpeg2video</systemitem>
zgłaszane są jako działające.
</para>
<para>
Typowy sposób użycia tej opcji to ustawienie matrycy na specyfikacje preferowane przez
<ulink url="http://www.kvcd.net/">KVCD</ulink>.
</para>
<para>
<emphasis role="bold">Matryca Kwantyzacji KVCD "Notch":</emphasis>
</para>
<para>
Intra:
<screen>
8 9 12 22 26 27 29 34
9 10 14 26 27 29 34 37
12 14 18 27 29 34 37 38
22 26 27 31 36 37 38 40
26 27 29 36 39 38 40 48
27 29 34 37 38 40 48 58
29 34 37 38 40 48 58 69
34 37 38 40 48 58 69 79
</screen>
Inter:
<screen>
16 18 20 22 24 26 28 30
18 20 22 24 26 28 30 32
20 22 24 26 28 30 32 34
22 24 26 30 32 32 34 36
24 26 28 32 34 34 36 38
26 28 30 32 34 36 38 40
28 30 32 34 36 38 42 42
30 32 34 36 38 40 42 44
</screen>
</para>
<para>
Sposób użycia:
<screen>
$ mencoder <replaceable>wejscie.avi</replaceable> -o <replaceable>wyjscie.avi</replaceable> -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=...
</screen>
</para>
<para>
<screen>
$ mencoder <replaceable>wejscie.avi</replaceable> -ovc lavc -lavcopts
vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,
12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,
29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79
:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,
28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
</screen>
</para>
</sect1>
<sect1 id="menc-feat-dvd-mpeg4">
<title>Rippowanie DVD do wysokiej jakości pliku MPEG-4 ("DivX")</title>
<para>
Jednym z najczęsciej zadawanych pytań jest "Jak zripować DVD do najwyższej osiągalnej
jakości? Nie interesuje mnie rozmiar pliku, chcę tylko najwyższą jakość".
</para>
<para>
To jest co najmniej źle sformułowane. W końcu jeżeli nie obchodzi Cię rozmiar
pliku, to czemu nie skopiować po prostu całego strumienia video MPEG-2 z DVD?
Pewnie, plik będzie miał 5GB, jak chcesz to nie pakuj się w to, ale jeżeli chcesz
najwyższej jakości i nie martwi Cię rozmiar pliku, to jest na pewno najlepsze
rozwiązanie.
</para>
<para>
Tak na prawdę, powodem dla którego chcesz przekodować DVD do pliku MPEG-4
jest właśnie to, że <emphasis role="bold">zależy</emphasis> Ci na rozmiarze pliku.
</para>
<para>
Trudno jest podać przepis krok-po-kroku jak stworzyć wysokiej jakości
ripa DVD. Trzeba uwzględnić kilka czynników, musisz je zrozumieć żeby
być zadowolonym z rezultatów jakie osiągniesz. Poniżej zbadamy kilka
z tych czynników i spojrzymy na przykłady. Zakładamy, że korzystasz z
<systemitem class="library">libavcodec</systemitem> do kodowania
video, teorii jednak można używać przy innych kodekach.
</para>
<para>
Głównym założeniem tego przewodnika jest to, iż nie masz konkretnego
docelowego rozmiaru pliku i nie masz problemu w oddaniu kilku bitów
w zamian za poprawę jakości. Wiele informacji tutaj zawartych jest przydatnych
w każdej sytuacji, ale niektóre mogą działać na Twoją niekorzyść jeżeli
masz obrany cel w postaci wielkości pliku wynikowego, na przykład zmieszczeniu
video na CD.
</para>
<sect2 id="menc-feat-dvd-mpeg4-2pass">
<title>Stały Kwantyzator vs. dwu-przebiegowe</title>
<para>
Istnieją trzy podejścia do kodowania video: stały bitrate (CBR),
stały kwantyzator i kodowanie dwu-przebiegowe (ABR, uśredniony bitrate).
</para>
<para>
W każdym z tych trybów, <systemitem class="library">libavcodec</systemitem>
rozbija ramke na makroblok 16x16 pikseli i aplikuje kwantyzator do każdego makrobloku
Im niższy kwantyzator, tym lepsza jakość i wyższy bitrate.
Metoda jaką używa <systemitem class="library">libavcodec</systemitem>
do zdeterminowania jaki kwantyzator użyć do danego makrobloku zależy od wielu
czynników i jest łatwo zmienialna. (Jest to bardzo ogólny opis prawdziwego procesu,
ale warto rozumieć podstawowy koncept.)
</para>
<para>
Kiedy ustawisz stały bitrate, <systemitem class="library">libavcodec</systemitem>
zakoduje video, niszcząc najmniejszą ilość detali jaka jest potrzebna żeby pozostać
poniżej wyznaczonej wartości bitrate. Jeżeli naprawdę nie zależy Ci na rozmiarze pliku
mógłbyś użyć CBR i ustawić bitrate na nieskończoność. (W praktyce oznacza to liczbę
tak wysoką aby nie stawiała żadnego limitu, np. 10000Kbit.). Bez prawdziwych ograniczeń
<systemitem class="library">libavcodec</systemitem> użyje dla każdego makrobloku
możliwie najniższego kwantyzatora (zapisanego w zmiennej <option>vqmin</option>,
która domyślnie jest ustawiona na 2). Gdy tylko ustawisz niższy bitrate
<systemitem class="library">libavcodec</systemitem> będzie zmuszony do użycia
wyższego kwantyzatora, a więc i pogorszenia jakości video. Ogólnie, jeżeli zależy Ci na jakości
wogóle nie powinieneś używać CBR.
</para>
<para>
Ze stałym kwantyzatorem, <systemitem class="library">libavcodec</systemitem>
używa kwantyzatora ustawionego przez opcję <option>vqscale</option>
na każdym makrobloku. Jeżeli chcesz najwyższej możliwej jakości, igonrując
bitrate, możesz użyć <option>vqscale=2</option>. Będzie to miało taki sam efekt
jak ustawienie <option>vbitrate</option>=nieskończoność i domyślnie
<option>vqmin</option> na 2 przy CBR.
</para>
<para>
Problemem przy stałym kwantyzowaniu jest to, iż używa on danego
kwantyzatora czy makroblok potrzebuje go czy nie. To znaczy
że można byłoby użyć wyższego kwantyzatora bez starty jakości obrazu.
Po co tracić miejsce na niepotrzebnie niski kwantyzator? Twój procesor
ma tyle cykli ile jest czasu, ale na twardym dysku jest ograniczona ilosć miejsca.
</para>
<para>
W dwu-przebiegowym kodowaniu, pierwszy przebieg zripuje film ze stałym
bitratem (CBR), ale stworzy plik logujący właściwości każdej ramki. Te
informacje są używane podczas drugiego przebiegu i na ich podstawie
dobierany jest odpowiedni kwantyzator. Podczas szybkiej akcji lub
scen z małą ilością detali, będzie użyty wysoki kwantyzator, a podczas
wolnego ruchu lub scen z wieloma detalami niższy.
</para>
<para>
Jeżeli używasz <option>vqscale=2</option>, to tracisz miejsce. Jeżeli
używasz <option>vqscale=3</option>, to nie dostaniesz najwyższej jakości.
Przypuśćmy, że ripujesz DVD z opcją <option>vqscale=3</option>, a rezultatem
jest 1800Kbit. Jeżeli zastosujesz dwu-przebiegowe kodowanie z
<option>vbitrate=1800</option>, wyjściowe video będzie miało
<emphasis role="bold">wyższą jakość</emphasis> dla
<emphasis role="bold">tej samej wartości bitrate</emphasis>.
</para>
<para>
Ponieważ jesteś już przekonany, że dwu-przbiegowe kodowanie jest
najlepszym rozwiązaniem, prawdziwym pytaniem jest jakiej użyć
wartości bitrate? Nie ma jednoznacznej odpowiedzi. Idealna wartość
jest najlepszym balansem między jakością a rozmiarem pliku.
Zmienia się ona zależnie od źródłowego video.
</para>
<para>
Dobrym punktem startowym dla wysokiej jakości ripów jest 2000Kbit
plus minus 200Kbit. Przy szybkiej akcji, wielu detalach lub poprostu
gdy masz wysokie wymagania, możesz zdecydować się na 2400
lub 2600. Przy niektórych DVD, możesz nie zauważyć różnicy przy
1400KBit. Najlepiej jest troszkę poeksperymentować przy różnych
wartościach bitrate.
</para>
</sect2>
<sect2 id="menc-feat-dvd-mpeg4-crop">
<title>Kadrowanie i Skalowanie</title>
<para>
Normalne DVD ma rozdzielczość 720x480 dla NTSC i 720x576 dla PAL,
ale jest jeszcze flaga mówiąca czy jest to obraz pełno ekranowy (4:3), czy
panoramiczny (16:9). Wiele (jeżeli nie wszystkie) panoramiczne DVD nie są
dokładnie 16:9, tylko 1.85:1 lub 2.35:1 (kineskop). Oznacza to iż pojawią
się czarne pasy którę będą musiały być wykadrowane.
</para>
<para>
W tym miejscu pojawia się <application>MPlayer</application> posiadający
opcję ustalającą prostokąt kadrowania (<option>-vf cropdetect</option>).
Ponieważ MPEG-4 używa makrobloków 16x16, będziesz chciał aby każdy wymiar
obrazu był wielokrotnością 16, w innym wypadku pogorszy się jakość szczególnie
przy niskich wartościach bitrate. Możesz osiągnąć to zaokrąglając prostokąt kadrowania
do najbliższej wielokrotności 16. Przy kadrowaniu będziesz chciał zwiększyć przesunięcie
w osi y o połowę różnicy między starą a nową wartością tak aby obraz brany był
z środka ramki. Z powodu sposobu w jaki obraz jest próbkowany na DVD musi to być
przysta liczba. (Tak naprawdę nigdy nie używaj nieparzystych wartości przy kadrowaniu
ani skalowaniu.) Jeżeli nie chcesz wyrzucać kilku pikseli, może wolisz zeskalować
obraz. Przyjrzyjmy sie skalowaniu w naszym następnym przykładzie.
</para>
<para>
Uważaj też na "miękkie" czarne piksele na brzegach. Wykadruj je
też, bo inaczej będziesz tracił bity którę zostaną wykorzystane lepiej
gdzie indziej.
</para>
<para>
Po wszytskim, dostaniesz najprawdopodobniej video którego piksele
nie są raczej ani 1.85:1 czy 2.35:1, tylko coś w pobliżu. Mógłbyś policzyć
nowe proporcje obrazu ręcznie, ale <application>MEncoder</application>
oferuje opcję biblioteki <systemitem class="library">libavcodec</systemitem>
o nazwie <option>autoaspect</option> która zrobi to za Ciebie. W żadnym
wypadku nie skaluj pikseli w celu zrobienia z nich kwadratów, chyba że lubisz
tracić miejsce na twardym dysku. Skalowanie powinno odbywać się przy
odtwarzaniu, a odtwarzacz użyje proporcji zapisanych w nagłówku AVI, aby
zdeterminować prawidłową rozdzielczość.
</para>
</sect2>
<sect2 id="menc-feat-dvd-mpeg4-quality">
<title>Audio</title>
<para>
Dźwięk jest o wiele prostszym problemem do rozwiązania.: zostaw go
poprostu takim jakim jest. Nawet strumienie AC3 5.1 są najwyżej
448Kbit/s i są one warte każdego bitu. Kuszące może wydawać się
zakodowanie dźwięku do wysokiej jakości Ogg Vorbis, ale to że nie
posiadasz dzisiaj odbiornika A/V do AC3 nie oznacza że nie będziesz go miał
jutro. Zabezpiecz swoje ripy DVD zostawiając im strumień AC3.
</para>
</sect2>
<sect2 id="menc-feat-dvd-mpeg4-interlacing">
<title>Przeplot i Telecine</title>
<para>
Prawie wszytskie filmy kręcone są z prędkością 24 fps. Ponieważ NTSC jest
29.97 fps, obraz 24 fps trzeba poddać działaniu kilku procesów aby mógł
być on odtwarzany na szybkości NTSC. Proces ten nazywa się 3:2 pulldown,
często wiązany z telecine (ponieważ pulldown jest często stosowany podczas
procesu telecine), i naiwnie opisywany jako iż działa on przez zwalnianie filmu do
23.976 fps, i powtarzaniu co czwartej ramki.
</para>
<para>
Video w formacie PAL z DVD, o prędkość 25 fps nie jest poddawane
żadnym specjalnym procesom. (Praktcznie, PAL może zostać poddany
procesowi telcine, nazywanemu 2:2 pulldown, ale w praktyce to nie jest
problemem.) Film 24 fps jest poprostu odtwarzany z prędkością 25 fps.
W efekcie film leci trochę szybciej ale jeżeli nie jesteś kosmitą pewnie nie
zauważysz różnicy. Większość DVD w PALu posiada poprawiony dźwięk,
więc nawet przy odtwarzaniu z prędkością 25 fps będzie on brzmiał poprawnie,
pomimo tego, iż ścieżka dźwiękowa (a wiec i cały film) jest odtwarzana
4% czasu krócej niż NTSC DVD.
</para>
<para>
Ponieważ video w PAL DVD nie zostało zmienione, nie musisz martwić
się o tempo odtwarzania. Źródło jest 25 fps i Twoj rip będzie 25 fps.
Jednakże, jeżeli ripujesz NTSC DVD, możliwe że będziesz musiał zastosować
odwrócone telecine.
</para>
<para>
W filmach nakręconych w prędkości 24 fps, video na NTSC DVD jest albo
ztelecinowane do 29.97 fps lub progresywne 24 fps i przeznaczone to
telecine które ma zostać wykonane w locie przez odtwarzacz DVD. Z drugiej
strony, seriale telewizyjne są zazwyczaj tylko przeplecione, nie ztelecionowane.
Jednakże nie jest to regułą: niektóre seriale TV są przeplecione (jak Buffy
Postrach Wampirów), a niektóre są miksturą progresywnego i przeplecionego
video (jak Angel, lub 24 godziny).
</para>
<para>
Szczególnie polecamy do przeczytania sekcje o tym
<link linkend="menc-feat-telecine">Jak sobie radzić z telecine
i przeplotem w DVD w formacie NTSC</link>.
</para>
<para>
Jeżeli, ripujesz tylko filmy, najprawdopodobniej musisz radzić sobie tylko
z obrazem 24 fps progresywnym lub telecine. W takiej sytuacji możesz
użyć fitru <option>pullup</option> (<option>-vf pullup,softskip</option>).
</para>
</sect2>
<sect2 id="menc-feat-dvd-mpeg4-filtering">
<title>Filtrowanie</title>
<para>
Ogólnie, chcesz filtrować jak najmniej aby pozostać najbliżej jak się da
do źródłowego DVD. Kadrowanie jest zazwyczaj niezbędne (opisane powyżej),
ale nie skaluj obrazu. Skalowanie w dół jest czasami preferowane zamiast
wysokich kwantyzatorów, chcemy uniknąć obu tych rzeczy: pamiętaj co
ustaliliśmy na początkum, że chcemy wymienać bity na jakość.
</para>
<para>
Również nie zmieniaj wartośći gamma, kontrastu, jasności, itd. To co wygląda
dobrze na Twoim monitorze, może nie wyglądać dobrze na innych. Te ustawienia
powinny być realizowane tylko przy odtwarzaniu.
</para>
<para>
Jedną rzeczą którą mógłbyś chcieć zrobić jest przepuszczenie obrazu
przez lekki odszumiający filtr, tak jak np. <option>-vf hqdn3d=2:1:2</option>.
Znów, jest to sprawa lepszego spożytkowania miejsca: po co tracić je
na kodowanie szumów jeżeli możesz dodać je podczas odtwarzania?
Zwiększenie parametrów <option>hqdn3d</option> zwiększy
możliwości kompresji, ale jeżeli zwiększysz parametry za bardzo
ryzykujesz utratę klarowności obrazu. Sugerowane powyżej wartości
(<option>2:1:2</option>) są dość zachowawcze;
spróbuj poeksperymentować z wyższmi wartościami i samemu porównać efekty.
</para>
</sect2>
<sect2 id="menc-feat-dvd-mpeg4-example">
<title>Przykład</title>
<para>
Kupiłeś wieć nowiutką kopię Harrego Pottera i Komnaty Tajemnic (oczywiście wersję
panoramiczną) i chcesz zripować to DVD aby dodać ją do swojego komputerowego
kina domowego. Jest to DVD z regionu 1, a więc NTSC. Poniższy przykład będzie
działał z fomratem PAL jeżeli pomiesz opcję <option>-ofps 23.976</option>
(ponieważ wejściowa szybkość jest taka sama jak wyjściowa), oczywiście
paramtery kadrowania będą inne.
</para>
<para>
Po uruchomieniu <option>mplayer dvd://1</option>, podążamy opisem
zawartym w sekcji <link linkend="menc-feat-telecine">Jak sobie radzić z telecine
i przeplotem w DVD w formacie NTSC</link> i odkrywamy, że jest to progresywne
video 24 fps, co oznacza że nie musimy używać filtrów odwróconego telecine,
jak <option>pullup</option> czy <option>filmdint</option>.
</para>
<para>
Następnie, chcemy zdeterminować odpowiedni prostokąt kadrowania,
używamy fitru cropdetect:
<screen>mplayer dvd://1 -vf cropdetect</screen>
Przewniń do w pełni wypełnionej ramki (jasna scena), i zobaczysz
wyjście <application>MPlayer</application>a na konsoli:
<screen>crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)</screen>
Teraz odtwarzamy film z tym fitrem aby sprawdzić jego poprawność:
<screen>mplayer dvd://1 -vf crop=720:362:0:58</screen>
I widzimy że wygląda świetnie. Teraz, upewniamy sie że wymiary śa wielokrotnością
16 . Szerokość jest w porządku, niestety wysokość nie. Ponieważ nie
oblaliśmy matematyki w liceum, wiemy że najbliższą wielokrotnościa
16 mniejszą niż 362 jest 352.
</para>
<para>
Moglibyśmy poprostu użyć <option>crop=720:352:0:58</option>, ale
ładniej byłoby wziąć trochę z góry i z dołu aby utrzymać się na środku.
Zmneijszylismy wysokość o 10 pikseli, ale nie chcemy zwiększyć
przesunięcia y o 5 pikseli ponieważ jest to liczba nieparzysta i
pogorszyłaby jakość. Zwiększymy zatem przesunięcie na osi y o 4 piksele:
<screen>mplayer dvd://1 -vf crop=720:352:0:62</screen>
Innym powodem dla którego powinniśmy obcinać piksele równomiernie z góry
i dołu są "połowy czarnych pikseli" które bezwzględnie powinniśmy obciąć jeżeli istnieją.
Pamiętaj, jeżeli Twoje video jest ztelecinowane, upewnij się że filtr <option>pullup</option>
(lub inny filtr odwróconego telecine który zdecydujesz się użyć) pojawia się
w łańcuchu fitrów przed fitrem kadrowania. Jeżeli video posiada przeplot,
usuń go przed kadrowaniem. (Jeżeli zdecydujesz się pozostawić przeplot, upewnij
się że wertykalne przesunięcie kadrowania jest wielokrotnością 4.)
</para>
<para>
Jeżeli naprawdę jesteś przejęty utratą tych 10 pikseli, może wolisz
przeskalować wymiary obrazu do najbliższej wielkortoności 16.
Łańcuch fitrów powinen wyglądać tak:
<screen>-vf crop=720:362:0:58,scale=720:352</screen>
Skalowanie video w dół oznacza utratę małej ilości detali, która będzie
najprawdopodobnie niezauważalna. Skalowanie w góre oznacza utratę
jakości (chyba że zwiększysz bitrate). Kadrowanie wyrzuca te piksele. Jest
to wymiana jaką trzeba rozważyć w każdym wypadku. Na przykłąd,
jeżeli DVD było zrobione dla telewizji, możesz chcieć uniknąć wertykalnego
skalowania, ponieważ zestawienie linii odpowiada temu jak obraz był
oryginalnie nagrywany.
</para>
<para>
Przy insepkcji widzimy że nasz film ma dużo akcji i szczegółów, wybieramy
więc 2400Kbit na nasze bitrate.
</para>
<para>
Jesteśmy gotowi do dwu-przebiegowego kodowania. Przebieg 1:
<screen>mencoder dvd://1 -ofps 23.976 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \
-o Harry_Potter_2.avi</screen>
Drugi przebieg jest taki sam, podajemy tylko opcję <option>vpass=2</option>:
<screen>mencoder dvd://1 -ofps 23.976 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \
-o Harry_Potter_2.avi</screen>
</para>
<para>
Opcje <option>v4mv:mbd=2:trell</option> ogromnie poprawią jakość
za cenę czasu kodowania. Opcje <option>cmp=3:subcmp=3:mbcmp=3</option>
wybierają funkcje porównywania które wybierają lepsza jakość niż te domyśłne.
Możesz poeksperymentować z tymi wartościami (skonsultuj stronę man co do
prawidłowych wartości) ponieważ różne funkcję mogą mieć duży wpływ na jakość
zależnie od matriału źródłowego. Na przykład, jeżeli <systemitem class="library">libavcodec</systemitem>
produkuje za dużo artefaktów możesz spróbować wybrać eksperymentalną funkcję NSSE
jako funkcję porównującą przez <option>*cmp=10</option>.
</para>
<para>
Dla tego filmu, końcowe AVI będzie miało 138 minut i prawie 3GB.
A ponieważ powiedziałeś że rozmiar nie ma znaczenia, to jest
akceptowalna wielkość. Jednakże, jeżelli chciałbyś mniejszy plik, mógłbyś
spróbować niższy bitrate. Zwiększanie wartości bitrate daje malejące rezultaty,
więc jeżeli widać wyraźną róźnicę między 1800Kbit, a 2000Kbit, to nie znaczy
że będzie lepiej powyżej 2000Kbit. Ekperymentuj aż będziesz zadowolony.
</para>
<para>
Ponieważ przepuściliśmy źródłowy obraz przez filtr odszumiający, możesz chcieć
dodać go trochę podczas odtwarzania. To razem z fitrem postprocessingu
<option>spp</option>, drastycznie poprawia odbiór obrazu i pomaga wyeliminować
artefakty. W <application>MPlayer</application>ze dostępna jest opcja
<option>autoq</option>. W tym momencie możesz również poprawić
gammę lub/i korekcję kolorów. Na przykład:
<screen>mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3</screen>
</para>
</sect2>
</sect1>
<sect1 id="menc-feat-telecine">
<title>Jak radzić sobie telecine i przeplotem w NTSC DVD</title>
<formalpara>
<title>Wprowadzenie</title>
<para>
Radzę abyś odwiedził poniższą stronę jeżeli nie za bardzo rozumiesz co
jest napisane w tym dokumencie:
<ulink url="http://www.divx.com/support/guides/guide.php?gid=10">http://www.divx.com/support/guides/guide.php?gid=10</ulink>
Ten URL prowadzi do zrozumiałego i rozsądnej wielkości przewodnika traktującego o tym
czym jest telecine.
</para></formalpara>
<para>
Z przyczyn technicznych odnoszących się do wczesnych
urządzeń telwizyjnych, każde video które miało być odtwarzane
na telewizorze NTSC musiało być ustawione na 59,94 pola na sekundę.
Filmy i programy nagrane dla telewizji są najczęściej ograniczone
bezpośrednio do 59,94 pól na sekundę, ale większość filmów kinowych
jest nagrywanych w 24 lub 23,976 klatkach na sekundę. Kiedy DVD z kinowym
filmem jest odtwarzane, video jest konwertowane dla telewizji przy pomocy procesu
nazywanego telecine.
</para>
<para>
Obraz na DVD, tak naprawdę nigdy nie jest przechowywany jako
59,94 pól na sekundę. Dla obrazu który oryginalnie był 59,94, każda
para pól jest łączona w ramkę, co daje rezultat 29,97 ramek na sekundę.
Sprzętowe odtwarzacze DVD odczytują flagę osadzoną w strumieniu video
aby określić czy parzyste czy nieparzyste linie powinny formować pierwsze pole.
</para>
<para>
Zazwyczaj, informacja o 23,976 ramkach na sekundę mówi
odtwarzaczowi DVD, że musi przeprowadzić telecine w locie.
Czasami, jednak, proces telecine na obrazie przeprowadzony jest
<emphasis>przed</emphasis> umieszczeniem go na DVD; Nawet
jeżeli był on nagrany jako 23,976 ramek na sekundę, staje się on 59,94
pola na sekundę i jest przechowywany na dysku jako 29,97 ramek na sekundę.
</para>
<para>
Patrząc na indywidualne ramki uformowane z ztelecinowanego
obrazu 59,94 pól na sekundę, przeplot jest wyraźnie widoczny przy ruchu,
ponieważ jedno pole (powiedzmy parzyste linie) reprezentują moment
w czasie o 1/59,94 sekundy później niż pozostałe. Odtwarzanie video z przeplotem
na komputerze wygląda ohydnie, z dwóch przyczyn, ponieważ monitor jest większej
rozdzielczości i obraz jest wyświetlany ramka-po-ramce zamiast pole-po-polu.
</para>
<para>
Notki:
</para>
<itemizedlist>
<listitem><para>
Ta sekcja odnosi się tylko do NTSC DVD, nie do PAL.
</para></listitem>
<listitem><para>
Przykładowe komendy <application>MEncodera</application> w tym dokumencie
<emphasis role="bold">nie</emphasis> są przeznaczone do prawdziwego użycia.
Są one po prostu minimum do kodowania danej kategorii video. Jak zrobić dobre ripy DVD
lub precyzyjnie-ustawić <systemitem class="library">libavcodec</systemitem> dla
najlepszej jakości nie są zagadnieniami dla tego tego dokumentu.
</para></listitem>
<listitem><para>
Jest kilka przypisów do tego dokumentu, zaznaczonych tak:
<link linkend="menc-feat-telecine-footnotes">[1]</link>
</para></listitem>
</itemizedlist>
<sect2 id="menc-feat-telecine-ident">
<title>Jak ustalić jaki typ video masz</title>
<sect3 id="menc-feat-telecine-ident-progressive">
<title>Progresywny</title>
<para>
Progresywne video było oryginalnie filmowane przy 23.976 fps (ramek na sekundę - przyp. tłum.), i
przechowywane na DVD bez zmian.
</para>
<para>
Kiedy odtwarzasz progresywne DVD w <application>MPlayerze</application>,
<application>MPlayer</application> wyświetli nastepujący wiersz zaraz gdy film zacznie być odtwarzany:
<screen> demux_mpg: 24fps progressive NTSC content detected, switching framerate.</screen>
Od tego momentu, demux_mpg niepowinien nigdy powiedzieć iż znalazł
"30fps NTSC content."
</para>
<para>
Kiedy oglądasz progresywne video, nie powinieneś zauważyć żadnego
przeplotu. Bądź jednak czujny ponieważ jest tam czasami wmiksowany mały
kawałek telecine, tam gdzie się go nie spodziewasz. Napotkałem DVD z programami
telewizyjnymi w których przy każdej zmianie sceny i w losowych miejscach była jedna
sekunda telecine. Raz oglądałem DVD który miał jedną połowę
progresywną, a drugą ztelecinowaną. Jeżeli chcesz być <emphasis>naprawdę</emphasis>
pewny, możesz przeskanować cały film:
<screen>mplayer dvd://1 -nosound -vo null -benchmark</screen>
Użycie opcji <option>-benchmark</option> przekazuje
<application>MPlayerowi</application> aby odtwarzał film
tak szybko jak tylko może; ciągle jednak, jako że jest zależny od Twojego sprzętu
może to zając trochę czasu. Za każdym razem demux_mpg zgłasza zmianę liczby
ramek na sekundę, pierwsza linia nad pokaże czas w którym nastąpiła ta zmiana.
</para>
<para>
Progresywne video jest czasami nazywane "miękkie-telecine"
ponieważ jest ono stworzone aby odtwarzac DVD wykonał na nim proces telecine.
</para>
</sect3>
<sect3 id="menc-feat-telecine-ident-telecined">
<title>Ztelecinowany</title>
<para>
Obraz "ztelecinowany" był oryginalnie sfilmowany jako 23,976, ale
został poddany procesowi telecine <emphasis>przed</emphasis>
zapisaniem go na płycie DVD.
</para>
<para>
<application>MPlayer</application> (nigdy) nie zwraca
żadnych zmian ilości ramek na sekundę kiedy
odtwarza ztelecinowane video.
</para>
<para>
Podczas oglądania video poddanego procesowi telecine, zobaczysz
artefakty przeplotu które wydają się "migać": szybko
pojawiają się i znikają. Możesz się im bliżej przyjrzeć wpisując
<orderedlist>
<listitem>
<screen>mplayer dvd://1 -speed 0.1</screen>
</listitem>
<listitem><para>
Przewiń na dynamiczne sceny.
</para></listitem>
<listitem><para>
Popatrz na wzór przeploto-wyglądających i progresywnie-wyglądających
ramek. Jeżeli wzór który widzisz wygąda jak PPPII,PPPII,PPPII,... wtedy video
ztelecinowane. Jeżeli widzisz inny wzór, wtedy możliwe jest że video zostało
niestandartowo poddane procesowi telecine i <application>MEncoder</application>
nie może bezstratnie przekonwertować go do progresywnego video. Jeżeli
nie widzisz żadnego wzoru, wtedy najprawdopodobniej video zawiera tylko przeplot.
</para></listitem>
</orderedlist>
</para>
<para>
Czasami video poddane procesowi telecine nazywane jest "twarde-telecine".
</para>
</sect3>
<sect3 id="menc-feat-telecine-ident-interlaced">
<title>Przepleciony</title>
<para>
Przeplecione video było oryginalnie sfilmowane jako 59,94 pól na sekundę
i przechowywane na DVD jako 29,97 fps. Przeplot to rezultat połączenia
par pól w ramkę, ponieważ w każdej ramce, każde pole jest oddzielone o
1/59,94 sekundy.
</para>
<para>
Tak jak przy ztelecinowanym video, podczas odtwarzania filmu z przeplotem
<application>MPlayer</application> nigdy nie
powinien powiadamiać o zmianie ilości ramek na sekundę.
</para>
<para>
Kiedy z bliska oglądasz przeplecione video z <option>-speed 0.1</option>
zobaczysz, iż każda pojedyńcza klatka jest przepleciona.
</para>
</sect3>
<sect3 id="menc-feat-telecine-ident-mixedpt">
<title>Mieszane progresywne i telecine</title>
<para>
Wszystkie "wymieszane progresywne i telecine" video
były oryginalnie nagrane jako 23.976 ramek na sekundę, ale
niektóre części skończyły jako ztelecinowane.
</para>
<para>
Kiedy <application>MPlayer</application> odtwarza tę kategorię, będzie on
(zazwyczaj bardzo szybko) przełączał się tam i z powrotem między "30fps
NTSC" i "24fps progresywne NTSC". Przyjrzyj się wyjściu
<application>MPlayera</application> (na konsoli - przyp. tlum.) aby zobaczyć
te wiadomości.
</para>
<para>
Powinieneś przyjrzeć się sekcji "30fps NTSC" aby upewnić się
czy są one na pewno telecine a nie tylko przeplecione.
</para>
</sect3>
<sect3 id="menc-feat-telecine-ident-mixedpi">
<title>Mieszane progresywne i telecine</title>
<para>
W "mieszanej progresywnej i przeplecionej" zawartości,
progresywne i przeplecione video zostało połączone razem.
</para>
<para>
Ta kategoria wygląda zupełnie jak "mieszane progresywne i telecine",
do momentu kiedy przyjrzysz się fragmentom 30fps i zobaczysz iż nie maja one wzoru telecine.
</para>
</sect3>
</sect2>
<sect2 id="menc-feat-telecine-encode">
<title>Jak zakodować każdą kategorię</title>
<para>
Jak już wspomniałem na początku, przykładowe polecenia <application>MEncodera</application>
poniżej <emphasis role="bold">nie</emphasis> są przewidziane do rzeczywistego
użycia; demonstrują one tylko minimalne parametry potrzebne do prawidłowego zakodowanie danej kategorii.
</para>
<sect3 id="menc-feat-telecine-encode-progressive">
<title>Progresywne</title>
<para>
Progresywne video nie wymaga żadnego specjalnego filtrowania do kodowania.
Jedynym koniecznym paramterem jaki musisz użyć jest <option>-ofps 23.976</option>.
Inaczej, <application>MEncoder</application> będzie próbował kodować przy prędkości 29,97
i duplikować ramki.
</para>
<para>
<screen>mencoder dvd://1 -nosound -ovc lavc -ofps 23.976</screen>
</para>
</sect3>
<sect3 id="menc-feat-telecine-encode-telecined">
<title>Ztelecinowane</title>
<para>
Proces telecine może zostać odwrócony, aby odzyskać oryginalną zawartość
23,976, przy użyciu metody o nazwie odwrócone-telecine.
<application>MPlayer</application> zawiera dwa filtry które są w stanie dokonać tego:
<option>detc</option> i <option>ivtc</option>. Możesz przeczytać stronę man
aby dowiedzieć się co je różni, ale jeżeli chodzi o DVD to nigdy nie miałem
problemu z <option>ivtc</option>. Pamiętaj, że
przed przeskalowywaniem powinieneś <emphasis role="bold">zawsze</emphasis>
odwrócić telecine; odwróć telecine także przed
cropowaniem, chyba że naprawdę wiesz co robisz <link linkend="menc-feat-telecine-footnotes">[1]</link>.
</para>
<para>
<screen>mencoder dvd://1 -nosound -vf ivtc=1 -ovc lavc -ofps 23.976</screen>
</para>
</sect3>
<sect3 id="menc-feat-telecine-encode-interlaced">
<title>Przeplecione</title>
<para>
Dla większości praktycznych przypadków nie jest możliwe całkowite
odzyskanie progresywnego video z przeplecionej zawartości.
Jedynym sposobem bez gubienia połowy pionowej rozdzielczości
jest podwojenie ilości ramek na sekundę i "zgadnięcie" co powinno
zastąpić odpowiadające linie każdego pola (ma to pewne wady - zobacz trzecią metodę).
</para>
<orderedlist>
<listitem><para>
Kodowanie video z przeplotem. Normalnie, przeplot niszczy szanse enkodera
na dobre zakodowanie, lecz <systemitem class="library">libavcodec</systemitem>
posiada dwie opcje pozwalające przechowywać video z przeplotem ciut lepiej:
<option> ildct</option> i <option>ilme</option>.
Użycie <option>mbd=2</option> jest także zalecane <link linkend="menc-feat-telecine-footnotes">[2] </link>
ponieważ zakoduje on makrobloki bez przeplotu w miejscach gdzie nie ma ruchu
Zauważ iż opcja <option>-ofps</option> NIE jest tu potrzebna.
<screen>mencoder dvd://1 -nosound -ovc lavc -lavcopts ildct:ilme:mbd=2</screen>
</para></listitem>
<listitem><para>
Użycie filtru likwidującego przeplot przed kodowaniem. Jest kilka takich
filtrów, każdy ma swoje wady i zalety. Skonsultuj <option>mplayer -pphelp</option>
aby zobaczyć co jest dostępne (grepuj "deint") i przeszukaj
<ulink url="http://www.mplayerhq.hu/design7/info.html#mailing_lists">
listy dyskusyjne MPlayera</ulink> aby znaleźć wiele dyskusji na temat różnych filtrów.
Ilość ramek na sekundę znów się nie zmienia, więc nie używamy <option>-ofps</option>.
Likwidowanie przeplotu powinno zostać zrobione po kadrowaniu
<link linkend="menc-feat-telecine-footnotes">[1]</link> i przed skalowaniem.
<screen>mencoder dvd://1 -nosound -vf pp=lb -ovc lavc</screen>
</para></listitem>
<listitem><para>
Niestety ta opcja zawiera błędy w <application>MEncoderze</application>;
Będzie działać w <application>MEncoder G2</application>, którego jeszcze nie ma.
Na razie możesz doświadczyć nieoczekiwanych wywaleń.
<!-- Qba: myslalem ze ktos zaproponuje bardziej formalna wersje :) -->
Celem opcji <option>-vf tfields</option> jest stworzenie pełnej klatki z każdego pola,
co w efekcie daje framerate 59,94. Zaletą tego podejścia jest zerowa utrata danych;
jednak ze względu na to, iż każda ramka pochodzi od jednego pola pozostałe linie muszą
być jakoś zinterpolowane. Są niezbyt dobre metody generowania brakujących
danych, a rezultaty będą podobne do tych jakie otrzymamy przy filtrach
likwidujących przeplot. Generowanie brakujących linii tworzy kolejne problemy,
po prostu ilość danych się podwaja. Więc, aby zachować jakość potrzebny jest
większy kodujący bitrate i większa cześć mocy procesora jest używana do kodowania jak
i dekodowania. tfields posiada kilka różnych opcji do generowania brakujących linii. Jeżeli
używasz tej metody, odwołaj się do manuala <!-- podręcznika ?--> i wybierz opcję która
najbardziej odpowiada Twojemu materiałowi. Zauważ, że gdy używasz <option>tfields</option>
<emphasis role="bold">musisz</emphasis> podać i <option>-fps</option>
i <option>-ofps</option> aby podwoić ilość ramek na sekundę Twojego źródła.
<screen>mencoder dvd://1 -nosound -vf tfields=2 -ovc lavc -fps 59.94 -ofps 59.94</screen>
</para></listitem>
<listitem><para>
Jeżeli planujesz drastyczne zmniejszenie rozdzielczości możesz odciąć i zakodować
tylko jedno z dwóch pól. Oczywiście stracisz połowę pionowej rozdzielczości,
ale jeśli chcesz zeskalować do mniej niż połowy pionowej rozdzielczości, strata
nie będzie miała dużego znaczenia. Rezultatem będzie progresywny plik o prędkości
29,97 ramek na sekundę. Procedura wymaga użycia <option>-vf field</option>,
potem wykadrowania <link linkend="menc-feat-telecine-footnotes">[1]</link>
i wyskalowania. Pamiętaj, iż będziesz musiał skompensować połowę pionowej
rozdzielczości odpowiednią skalą.
<screen>mencoder dvd://1 -nosound -vf field=0 -ovc lavc</screen>
</para></listitem>
</orderedlist>
</sect3>
<sect3 id="menc-feat-telecine-encode-mixedpt">
<title>Mieszane progresywne i telecine</title>
<para>
W celu zmienienia zmieszanego video w całkowicie progresywne, części
ztelecinowane będą musiały być poddane procesowi odwróconego telecine.
Są dwa filtry które tego dokonają natywnie, ale najlepszym sposobem
jest użycie ich obu połączonych (czytaj dalej aby dowiedzieć się więcej).
</para>
<itemizedlist>
<listitem><para>
Obecnie najbardziej niezawodną metodą na poradzenie sobie z tym
typem video, jest nie odwracanie telecine ztelecinowanych części, ale
ztelecinować nie-ztelecinowane części i odwrócić telecine całego video.
Brzmi skomplikowanie? softpulldown jest filtrem który zamienia całe video
na telecine. Jeżeli po softpulldown nastąpi <option>detc</option> lub
<option>ivtc</option>, końcowym rezultatem będzie w całości progresywne video.
Kadrowanie i skalowanie powinno być zrobione po operacjach odwracających telecine
z opcją <option> -ofps 23.976</option>.
<screen>mencoder dvd://1 -nosound -vf softpulldown,ivtc=1 -ovc lavc -ofps 23.976</screen>
</para>
</listitem>
<listitem><para>
<option>-vf pullup</option> jest zaprojektowane aby odwracać telecine
ztelecinowanego materiału, a progresywne dane zostawiać w spokoju.
Pullup nie działa za dobrze
z obecnym <application>MEncoderem</application>, ale będzie działał z
<application>MEncoder G2</application> (kiedy ten będzie tylko gotowy).
Działa dobrze bez opcji <option>-ofps</option>, ale <option>-ofps</option>
jest potrzebne aby zapobiec poszatkowanemu wyjściu <!-- hmmmmm-->. Z
<option>-ofps</option> pullup czasami zawodzi. Problem wywodzi się z zachowania
<application>MEncodera</application> który zrzuca ramki aby zachować
synchronizację między dźwiękiem i obrazem: zrzuca ramki raczej przed wysłaniem ich przez
łańcuch filtrów, niż po. W rezultacie <option>pullup</option> jest czasami pozbawiony danych
których potrzebuje.
</para>
<para>
Jeżeli <application>MEncoder</application> zrzuca za dużo ramek pod rząd,
zagładza bufor <option>pullupa</option> i powoduje jego nieoczekiwane zamknięcie.
</para>
<para>
Jeżeli nawet <application>MEncoder</application> zrzuca jedną ramkę,
<option>pullup</option> wciąż nie widzi jej i operuje na złej sekwencji ramek.
Nawet jeśli to nie powoduje nieoczekiwanego zakończenia,
<option>pullup</option> nie będzie w stanie podjąć właściwych decyzji jak
połączyć progresywne ramki i albo będzie niewłaściwie dopasowywał do siebie
pola albo zrzucał parę pól aby skompensować.
</para>
</listitem>
<listitem><para>
Nie używałem <option>-vf filmdint</option> osobiście, ale zobacz co
ma do powiedzenia na ten temat D Richard Felker III:
<blockquote><para>To jest w porządku, ale IMO (MZ - Moim zdaniem - przyp. tłum.)
to raczej próbuje usunąć przeplot niż odwrócić telecine (podobnie
jak odtwarzacze DVD settop <!-- co ? co to jestr settop-->&amp; progresywne TV)
czego skutkiem jest ohydne miganie i inne artefakty.
Jeżeli zamierzasz używać tego, musisz chociaż spędzi trochę czasu
na dopasowaniu opcji i oglądaniu rezultatów aby upewnić się, że się nie
kaszani.</para></blockquote>
</para></listitem>
</itemizedlist>
</sect3>
<sect3 id="menc-feat-telecine-encode-mixedpi">
<title>Mieszane progresywne i z przeplotem</title>
<para>
Są dwie metody na poradzenie sobie z tą kategorią, każda jest pewnym
kompromisem. Powinieneś zdecydować na podstawie czasu trwania/miejsca każdego
typu.
</para>
<itemizedlist>
<listitem><para>
Traktuj video jak progresywne. Części z przeplotem będą wyglądały jak
z przeplotem i niektóre przeplecione pola będą musiały być zrzucone, czego
rezultatem będzie niemiarowe skakanie. Jeśli chcesz możesz użyć filtrów
postprocessingu, ale może to nieznacznie zdegradować progresywne części.
</para>
<para>
Ta opcja na pewno nie powinna być używana jeśli docelowo masz zamiar
wyświetlać video na urządzeniu wykorzystującym przeplot (np. z kartą TV)
Jeżeli masz ramki z przeplotem 23,937 fps, będą one ztelecinowane razem
z progresywnymi ramkami. Połowa "ramek" z przeplotem będzie wyświetlona
w czasie wyświetlania trzech pól (3/59.94 sekund), co w rezultacie da migający
"skok wstecz w czasie" efekt który kiepsko wygląda. Jeżeli próbowałeś
tego <emphasis role="bold">musisz</emphasis> użyć filtru
likwidującego przeplot jak <option>lb</option> lub <option>l5</option>.
</para>
<para>
To może być również zły pomysł dla progresywnego obrazu.
Zrzuci to pary nieprzerwanych przeplecionych pól, dając w rezultacie nieciągłość
która może być bardziej widoczna niż w drugim przypadku który pokazuje
niektóre ramki dwa razy. Video z przeplotem 29,97 fps jest już trochę
poszatkowane ponieważ powinno być wyświetlanie z prędkością
59,94 pól na sekundę, więc zduplikowane pola nie są aż tak widoczne.
</para>
<para>
W każdym przypadku najlepiej jest rozpatrywać materiał i to gdzie masz zamiar
go wyświetlać. Jeśli video jest w 90% progresywne i nie masz zamiaru nigdy go wyświetlać
na TV, powinieneś faworyzować progresywne podejście. Jeżeli jest tylko w połowie
progresywne, będziesz pewnie chciał je kodować tak jakby było
w całości z przeplotem.
</para>
</listitem>
<listitem><para>
Traktuj video jakby było z przeplotem. Niektóre klatki z progresywnych
części będą musiały być zduplikowane, dając w rezultacie niemiarowe skoki.
Znów filtry likwidujące przeplot mogą nieznacznie zdegradować progresywne części.
</para></listitem>
</itemizedlist>
</sect3>
</sect2>
<sect2 id="menc-feat-telecine-footnotes">
<title>Notatki</title>
<orderedlist>
<listitem><formalpara>
<title>O kadrowaniu:</title>
<para>
Video na DVD jest przechowywane w formacie nazywanym YUV 4:2:0.
W video YUV luma ("jasność") i chroma ("kolor")
są przechowywane osobno. Ponieważ ludzkie oczy są mniej wrażliwe na
kolor niż na jasność, w obrazie YUV 4:2:0 na cztery piksele luma przypada jeden
piksel chroma. W progresywnym obrazie, każdy kwadrat czterech pikseli luma
(dwa na każdym boku) ma jeden wspólny piksel chroma. Musisz wykadrować progresywne
video YUV 4:2:0 do parzystych rozdzielczości, i używać parzystych przesunięć. Na przykład
<option>crop=716:380:2:26</option> jest OK ale
<option>crop=716:380:3:26 </option> nie jest.
</para>
</formalpara>
<para>
Kiedy masz do czynienia z YUV 4:2:0 z przeplotem, sytuacja jest
trochę bardziej skomplikowana. Zamiast każdych czterech pikseli
luma w <emphasis>ramce</emphasis> dzielących jeden piksel
chroma, każde cztery piksele w <emphasis>polu</emphasis>
dzielą jeden piksel chroma. Kiedy pola są przeplatane aby stworzyć
ramkę, każda linia skanująca jest wysokości jednego piksela.
Teraz, zamiast czterech pikseli luma w kwadracie, są dwa bok-przy-boku
i dwa następne bok-przy-boku dwie linie skanujące niżej. Całe to zamieszanie
powoduje, że pionowe rozmiary kadru i przesunięcia muszą być
wielokrotnościami czterech. Wymiary poziome mogą pozostać parzyste.
</para>
<para>
Dla telecinowanego video, zalecam kadrować po procesie odwracania
telecine. Kiedy video jest już progresywne wymagane jest tylko kadrowanie do
parzystych wymiarów. Jeśli naprawdę potrzebujesz lekkiego przyspieszenia
jakie da kadrowanie najpierw musisz kadrować pionowo do wielokrotności
czterech, inaczej filtr odwracający telecine nie będzie otrzymywał prawidłowych danych.
</para>
<para>
Przy video z przeplotem (nie telecine), musisz zawsze kadrować
pionowo do wielokrotności czwórki, chyba że używasz opcji
<option>-vf field</option> przed kadrowaniem.
</para>
</listitem>
<listitem><formalpara>
<title>O parametrach i jakości kodowania:</title>
<para>
Tylko to, że poleciłem <option>mbd=2</option> tutaj nie znaczy że
nie może być on używany gdzie indziej. Razem z <option>trell</option>,
<option>mbd=2</option> jest jedną z dwóch najbardziej podnoszących jakość opcji
biblioteki <systemitem class="library">libavcodec</systemitem>, których zawsze
powinieneś używać, chyba że spadek szybkości kodowania jest niedopuszczalny
(np. kodowanie w czasie rzeczywistym). Biblioteka <systemitem class="library">libavcodec</systemitem>
ma wiele opcji umożliwiających zwiększenie jakości wyjściowej kodowania (i zmniejszyenie
prędkości) ale ten temat jest poza zakresem tego dokumentu.
</para>
</formalpara>
</listitem>
</orderedlist>
</sect2>
</sect1>
</chapter>