mirror of
https://github.com/mpv-player/mpv
synced 2024-12-14 19:05:33 +00:00
0d0461d7a5
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9647 b3059339-0415-0410-9bf9-f77b7e298cf2
310 lines
14 KiB
HTML
310 lines
14 KiB
HTML
<!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> rm frameno.avi</CODE> - usuń plik, który może
|
|
pochodzić z poprzedniego 3-krokowego kodowania (może kolidować z obecnym)<BR>
|
|
<CODE> mencoder -dvd 2 -ovc lavc -lavcopts
|
|
vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
|
|
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 <file/DVD> -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 <file/DVD> -oac copy
|
|
-ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=<bitrate></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 <file/DVD> -oac copy
|
|
-ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=<bitrate></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> rm frameno.avi</CODE> - usuń plik, który może
|
|
pochodzić z poprzedniego 3-krokowego kodowania (może kolidować z obecnym)<BR>
|
|
<CODE> mencoder -dvd 2 -ovc frameno
|
|
-o frameno.avi -oac mp3lame -lameopts vbr=3<BR>
|
|
mencoder -dvd 2 -ovc lavc
|
|
-lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi<BR>
|
|
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>
|
|
<CODE>mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video
|
|
-oac copy <other options> 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>-vop 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> mencoder input.mpg -ovc lavc -lavcopts
|
|
vcodec=mpeg4 -vop 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 <filename></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> 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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
|
|
<CODE>mencoder -dvd 1 -vobsubout subtitles -vobsuboutindex 0
|
|
-sid 2 -o frameno.avi -ovc frameno -oac mp3lame -lameopts vbr=3</CODE><BR>
|
|
<CODE>mencoder -dvd 1 -oac copy -ovc divx4 -divx4opts pass=1</CODE><BR>
|
|
<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>
|
|
<CODE>rm subtitles.idx subtitles.sub</CODE><BR>
|
|
<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>Tu jest.</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 -vop crop=714:548:0:14 -oac copy -o output.avi</CODE></P>
|
|
|
|
</BODY>
|
|
</HTML>
|