summaryrefslogtreecommitdiffstats
path: root/DOCS/pl/encoding.html
blob: 2ce227bf951993c13f656a74fd89a8358bd996f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>

<HEAD>
  <TITLE>Kodowanie - MEncoder - Koder filmów dla Linuksa</TITLE>
  <LINK REL="stylesheet" TYPE="text/css" HREF="../default.css">
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
</HEAD>

<BODY>


<H1><A NAME="encoding">7. Kodowanie z MEncoderem</A></H1>

<P>Po kompletną listę dostępnych opcji i przykładów MEncoder, proszę zobaczyć
  stronę manuala. Po serie ręcznych przykładów i detali używania różnych 
  parametrów kodowania, czytaj
  <A HREF="../tech/encoding-tips.txt">sztuczki-kodowania</A> gdzie zgromadzone są
  rożne wątki mailowe
  <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-users">mplayer-users</A>.
  Szukaj w <A HREF="http://mplayerhq.hu/pipermail/mplayer-users/">archiwach</A>
  zbiorach dyskusyjnych o wszystkich aspektach problemów dotyczących kodowania
  MEncoderem.</P>


<H2><A NAME="2pass">7.1 Kodowanie 2 lub 3-krokowe MPEG-4 ("DivX")</A></H2>

<P><U><B>Kodowanie 2-krokowe:</B></U> jak sama nazwa wskazuje, metoda ta koduje
  plik <I>dwukrotnie</I>. Krok pierwszy (<I>krok zdybingujący</I>)
  tworzy pliki podręczne (*.log) z rozmiarem kilku megabajtów, nie kasuje ich
  jeszcze (możesz usunąć AVI). W drugim kroku, plik 2-kroku (sic!) jest tworzony
  używając bitreatu danych z pliku podręcznego. Plik wynikowy będzie miał lepszą
  jakość obrazu. Jeśli spotkałeś się z tym po raz pierwszy powinieneś zasięgnąć 
  rad dostępnych w Internecie.

<P>Przykłady te pokazują jak kodować DVD do 2-krokowego MPEG-4 ("DIVX") AVI. Tylko
  dwie komendy są potrzebne:<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - usuń plik, który może
    pochodzić z poprzedniego 3-krokowego kodowania (może kolidować z obecnym)<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc lavc -lavcopts
    vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc lavc -lavcopts
    vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P>

<P><U><B>Kodowanie 3-krokowe:</B></U> to przedłużenie 2-krokowego kodowania,
  gdzie kodowanie audio zajmuje miejsce w osobnym kroku. Tam metoda włącza
  ocenę sugerowania bitreatu wideo dla dopasowania do CD. Także audio kodowane
  jest tylko tak, nie tak jak w trybie 2-krokowym. Schematy:</P>

<OL>
  <LI>Usuń konfliktowy plik podręczny:
    <P><CODE>rm frameno.avi</CODE></P></LI>
  <LI>Pierwszy krok:
    <P><CODE>mencoder &lt;file/DVD&gt; -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi</CODE></P>
    <P>Zostanie utworzony plik avi zawierający tylko audio, <B>tylko</B> z pożądanym strumieniem audio.
      Nie zapomnij o <CODE>-lameopts</CODE>, jeśli chcesz je ustawić.
      jeśli kodowałeś długi film, MEncoder wyświetla sugerowane wartości bitrate dla 650Mb,
      700Mb, i 800Mb rozmiarów docelowych po ukończeniu kroku pierwszego.</P></LI>
  <LI>Drugi krok:
    <P><CODE>mencoder &lt;file/DVD&gt; -oac copy
      -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=&lt;bitrate&gt;</CODE></P>
    <P>To pierwszy krok kodowania wideo.
      Opcjonalnie określony bitreate wideo MEncoder wyświetlił na końcu poprzedniego 
      kroku.</P></LI>
  <LI>Trzeci krok:
    <P><CODE>mencoder &lt;file/DVD&gt; -oac copy
      -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=&lt;bitrate&gt;</CODE></P>
    <P>Jest to drugi krok kodwania wideo.
      Określ ten sam bitreat, co w poprzednim kroku, chyba, że naprawdę wiesz, co
      robisz. W tym kroku audio z <CODE>frameno.avi</CODE> zostanie
      wsunięte do docelowego pliku... i wszytko jest gotowe!</P></LI>
</OL>

<H4>Przykłady kodowania 3-krokowego:</H4>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;rm frameno.avi</CODE> - usuń plik, który może
    pochodzić z poprzedniego 3-krokowego kodowania (może kolidować z obecnym)<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc frameno
    -o frameno.avi -oac mp3lame -lameopts vbr=3<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc lavc
    -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
  &nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -ovc lavc
    -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi</CODE></P>


<H2><A NAME="mpeg">7.2 Kodowanie do formatu MPEG</A></H2>

<P>MEncoder może stworzyć wyjściowy plik z formatem MPEG (MPEG-PS). Jes to prawdopodobnie
  użyteczne tylko z kodekiem libavcodeca <I>mpeg1video</I>, ponieważ odtwarzacze
  - poza MPlayer - poza wideo MPEG1, i MPEG1 warstwa 2 (MP2) strumieniują audio
  w plikach MPEG.</P>
  
<P>Cecha ta jest niezbyt użyteczna w tej chwili, na marginesie prawdopodobnie 
  zawiera pełno błędów, ale ważna ponieważ MEncoder obecnie nie potrafi kodować audio
  MPEG1 warstwy 2 (MP2), którego wszytskie inne odtwarzacze oczekują w plikach MPEG.</P>
  
<P>Aby zmienić format plików wynikowych MEncodera, użyj opcji <CODE>-of mpeg</CODE>.</P>

<P>Przykład:<BR>
  &nbsp;&nbsp;<CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video
  -oac copy &lt;other options&gt; media.avi -o output.mpg</CODE></P>


<H2><A NAME="rescaling">7.3 Skalowanie filmów</A></H2>

<P>Często potrzebna jest zmiana rozmiarów obrazów filmu. Powodów może być wiele,
  na przykład dopasowywanie rozmiarów pliku wyjściowego, szerokośc pasma sieci, itp.
  Wiele ludzi często skaluje filmy kiedy konwertują DVD lub SVCD do DivX AVI. <B>Jes to błądne.</B>
  Zamiast tego czytaj sekcję <A HREF="#aspect">Zachowując aspekt stosunku</A>.</P>

<P>Proces skalowanie nadzorowany jest przez filter wideo <I>'scale'</I>:
  <CODE>-vf scale=szerokość:wysokość</CODE>. Jego jakość może zostać ustawiona
  przez opcję <CODE>-sws</CODE>. Jeśli nie zostanie określona, MEncoder użyje 0:
  fast bilinear.</P>

<H4>Użycje:</H4>

<P><CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder input.mpg -ovc lavc -lavcopts
  vcodec=mpeg4 -vf scale=640:480 -oac copy -o
  output.avi</CODE></P>


<H2><A NAME="copying">7.4 Kopiowanie strumieniowe</A></H2>

<P>MEncoder potrafi przechwycić strumień wejściowy na dwa sposoby: <B>kodując</B> lub
  <B>kopiując</B> go. Ta sekcja jest o <B>kopiowaniu</B>.</P>

<UL>
  <LI><B>Strumieniowanie wideo</B> (opcja <CODE>-ovc copy</CODE>): niezła robota 
    może zostać wykonana :)<BR>
    Coś jak wkładanie (nie konwertowanie) wideo FLI, VIVO lub MPEG1 do
    plików AVI. Oczywiście tylko MPlayer może odtwarzać takie pliki :)
    I prwadopodobnie nie posiada prawdziwych wartości dla wszytkich. 
    Z rozsądkiem: kopiowanie strumieni wideo może być użyteczne na przykład, 
    kiedy tylko strumień audio był do kodowania (coś w stylu odkopmresowanego 
    pliku PCM do MP3).</LI>

  <LI><B>Strumieniowaqnie audio</B> (opcja <CODE>-oac copy</CODE>): chyba jasne.
    Możliwe jest przejęcie zewnętrznego pliku audio (MP3, Vorbis) i jego zapis
    do strumienia zewnętrznego. Użyj do tego opcji 
    <CODE>-audiofile &lt;filename&gt;</CODE>.</LI>
</UL>


<H2><A NAME="fixing">7.5 Naprawianie AVI z uszkodzonymi indeksami lub przeplataniem</A></H2>

<P><P>Prosto kopiujemy strumienie audio i wideo, a <B>MEncoder</B> generuje indeks.
  Oczywiście nie naprawi to błądów strumieni wideo i/lub audio. Naprawia 
  to także pliki z uszkodzonym przeplataniem, tak więc opcja <CODE>-ni</CODE>
  będzię potrzebna tak, czy inaczej.</P>

<P>Polecenie: <CODE>mencoder -idx input.avi -ovc copy -oac copy -o output.avi</CODE></P>


<H3><A NAME="appending">7.5.1 Łączenie wielkorotnych plików AVI</A></H3>

<P>Taki efekt uboczny, finkcja naprawiająca uszkodzone AVI włącza MPlayera do łączenia
  2 (lub więcej) plików AVI:</P>

<P>Polecenie: <CODE>cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi -</CODE></P>

<P><B>Inforamcja:</B> Oczekuje to <CODE>1.avi</CODE> i <CODE>2.avi</CODE> aby użyc tego samego kodeka, 
  rozdzielczości, stosunku strumieniowania itp, i co najmniej 1.avi nie mże być uszkodzony.
  Może musisz najpierw naprawić twój wchodzący AVI, jak opisano <A HREF="#fixing">wyżej</A>.</P>

<H2><A NAME="libavcodec">7.6 Kodowanie z rodziną kodeków libavcodec</A></H2>

<P><A HREF="codecs.html#libavcodec">libavcodec</A> zapewnia proste kodowanie do różnych interesujących
formatów wideo i audio (obecnie kodeki audio są niedostępne). Możesz kodować do następującch kodeków:</P>

<UL>
  <LI>mjpeg - Ruchome JPEG</LI>
  <LI>h263 - H263</LI>
  <LI>h263p - H263 Plus</LI>
  <LI>mpeg4 - ISO standard MPEG-4 (kompatybilne DivX 5, XVID)</LI>
  <LI>msmpeg4 - pre-standard MPEG-4 wariant MS, v3 (aka DivX3)</LI>
  <LI>msmpeg4v2 - pre-standard MPEG-4  MSu, v2 (używany w starych plikach asf)</LI>
  <LI>wmv1 - Windows Media Video, wersja 1 (aka WMV7)</LI>
  <LI>rv10 - stary kodek RealVideo</LI>
  <LI>mpeg1video - wideo MPEG1 :)</LI>
  <LI>huffyuv - bezstratna kompresja</LI>
</UL>

<P>Pierwsza kolumna zawiera nazwy kodeków, które powinny być podane po konfiguracji
  <CODE>vcodec</CODE>, czyli: <CODE>-lavcopts vcodec=msmpeg4</CODE></P>

<P>Przykład z kompresją MJPEG:<BR>
  <CODE>&nbsp;&nbsp;&nbsp;&nbsp;mencoder -dvd 2 -o title2.avi -ovc lavc
    -lavcopts vcodec=mjpeg -oac copy</CODE></P>


<H2><A NAME="image_files">7.7 Kodowanie z wielokrotnych plików obrazów (JPEGi, PNGsy lub TGAsy)</A></H2>

<P>MEncoder jest w stanie utworzyć filmy z jednego lub więcej plików JPEG, PNG lub TGA.
  Z prostym kopiowaniem klatek potrafi utworzyć MJPEG (Ruchome JPEG), MPNG
  (Ruchome PNG) lub MTGA (Ruchome TGA) files.</P>

Objeśnienie procesu:

<OL>
  <LI>MEncoder <I>dekoduje</I> wejściowy(e) obraz(y) z <CODE>libjpeg</CODE> 
  (kieedy dekoduje PNGsy, użyje <B>libpng</B>).</LI>

  <LI>MEncoder następnie przekazuje dekodowane obrazy do wybranego kompresora wideo
    (DivX4, Xvid, ffmpeg msmpeg4, itp...).</LI>
</OL>

<H4>Przykłady</H4>

<P>Wyjaśnienie opcji <CODE>-mf</CODE>, które możesz znaleść niżej opisane 
są w manualu.</P>

<P><I>Tworzenie pliku DivX4 ze wszytskich plików JPEG w obecnym katalogu:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc divx4
  -o output.avi \*.jpg</CODE></P>

<P><I>Tworzenie pliku DivX4 z niektórych plików JPEG w obecnym katalogu:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25
  -ovc divx4 -o output.avi frame001.jpg,frame002.jpg</CODE></P>

<P><I>Tworzenie pliku Rychomego JPEG (MJPEG) ze wszystkich plików JPEG w obecnym katalogu:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25 -ovc copy
  -o output.avi \*.jpg</CODE></P>

<P><I>Tworzenie pliku nieskompresowanego ze wszytskich plików PNG w obecnym katalogu:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc rawrgb
  -o output.avi \*.png</CODE></P>

<P><B>Informacja:</B> Szerokość musi być całkowitą wielokrotnością 4, to limity formatu 
RAW RGB AVI.</P>

<P><I>Tworzenie Ruchomego PNG (MPNG) ze wszytskich plików w obecnym katalogu:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=png -ovc copy
  -o output.avi \*.png</CODE></P>

<P><I>Tworzenie Ruchomego TGA (MTGA) ze wszystkich plików TGA w obecnym katalogu:</I><BR>
  &nbsp;&nbsp;<CODE>mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy
  -o output.avi \*.tga</CODE></P>


<H2><A NAME="vobsub">7.8 Wyciąganie napisów DVD do pliku Vobsub</A></H2>

<P>MEncoder potrafi wyciągnąc napisy z DVD do pliku o formacie Vobsub.
  Polegają one na parach kodowanych plików w 
  <CODE>.idx</CODE> i <CODE>.sub</CODE> i zazwyczaj pakowane są w pojedyncze archiwum
  <CODE>.rar</CODE>. MPlayer potrafi je odtwarzać z opcjami
  <CODE>-vobsub</CODE> i <CODE>-vobsubid</CODE>.</P>

<P>Ty określasz nazwę główną (tj. bez rozszerzenia <CODE>.idx</CODE> lub
  <CODE>.sub</CODE>) pliku wyjściowego z <CODE>-vobsubout</CODE>
  i indeks dla tych napisów w pliku wynikowym z <CODE>-vobsuboutindex</CODE>.</P>

<P>Jeśli plik wejścowy nie pochodzi z DVD powinienieś użyć <CODE>-ifo</CODE>, aby
  wskazać plik <CODE>.ifo</CODE> wymagany do konstrukcji pliku wynikowego 
  <CODE>.idx</CODE>.</P>

<P>Jeśli plik wejściowy nie pochodzi z DVD, a ty nie masz pliku <CODE>.ifo</CODE>
  będziesz musiał użyć opcji <CODE>-vobsubid</CODE>aby poinformować, który id języka 
  należy włożyć do pliku <CODE>.idx</CODE>.</P>

<P>Każde uruchomienie będzie dodawać uruchamiane napisy jeśli pliki <CODE>.idx</CODE> i
  <CODE>.sub</CODE> już istnieją. Powinieneś więc usunąć jakieś przed startem.</P>

<H4>Przykłady:</H4>

<P><I>Kopiowanie dwóch napisów z DVD podczas kodowania 3-krokowego</I><BR>
  &nbsp;&nbsp;<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0
    -sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -divx4opts pass=1</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -divx4opts pass=2 -vobsubout
    subtitles -vobsuboutindex 1 -sid 5</CODE></P>

<P><I>Kopiowanie francuskich napisów z pliku MPEG</I><BR>
  &nbsp;&nbsp;<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
  &nbsp;&nbsp;<CODE>mencoder movie.mpg -ifo movie.ifo -vobsubout subtitles
    -vobsuboutindex 0 -vobsuboutid fr -sid 1</CODE></P>


<H2><A NAME="aspect">7.9 Zachowanie stosunku</A></H2>

<P>Pliki DVD i SVCD (tj. MPEG1/2) zawierają wartość stosunku, która opisuje, jak
  odtwarzacze powinny skalować strumień wideo (np.: 480x480 + 4:3 = 640x480). 
  Jednak, kiedy kodujesz do plików AVI (DivX), powinieneś wiedzieć,
  że nagłówki AVI nie zapamiętują takiej wartości.
  W taki sposób jedynym rozwiąznaniem jest skalowanie!</P>

<P>MPEG4 posiada niespotykaną cechę: strumień wideo może zawierać jego wymagany 
  stosunek. Tak, tylko takie pliki jak MPEG1/2 (DVD, SVCD).
  Przesadzając, <U>nie</U> ma odtwarzaczy wideo które obsługują tą cechę.
  Za wyjątkiem MPlayera.</P>

<P>Cecha ta może być użyta tylko z kodekiem <CODE>mpeg4</CODE> <B>libavcodec</B>a.
  Zatrzymaj w świadomości: chociaż MPlayer poprawnie odtwrza stworzone pliki,
  inne odtwarzacze użyją błędnego stosunku.</P>

<P>Powinineś poważnie ściąć czarne obramówki na około i poniżej obrazu filmu.
  Zobacz manual odnośnie użytku filtrów <CODE>cropdetect</CODE> i
  <CODE>crop</CODE>.</P>

<H4>Użycie:</H4>

<P><CODE>$ mencoder sample-svcd.mpg -ovc lavc -lavcopts
  vcodec=mpeg4:aspect=16.0/9.0 -vf crop=714:548:0:14 -oac copy -o output.avi</CODE></P>

</BODY>
</HTML>