MEncoder (Koder Filmów Mplayera) to prosty koder filmów zaprojektowany do kodowania filmów odtwarzanych MPlayerem. (AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET) do innych formatów odtwarzanych przez MPlayera (patrz niżej). Może kodowac z rozmaitymi kodekami, takimi jak DivX4 (1 lub 2 krokowo), libavcodec, PCM/MP3/VBRMP3 audio. Może także kopiować strumieniowo i zmianiać wymiary filmu.
lame
nie jest wystarczający. BTW: mnijeszą optaymalizację użyjesz dla lame,
jakość będzie lepsza. Możesz testować jakość przez uruchamianie make test
po procesie kompilacji
lame. Wtedy liczba powinna być mnijesza niż 30. Nie wpadaj w panikę, jeżeli będzie
wynosiła 400, nie powinieneś słyszeć spadku jakość dźwięku.
A jeśli twój kompilator nie uruchomił bezproblemowomake test
...
usuń te GCC 2.96.libjpeg
i libpng
-
są opisane w sekcji instalacji Jesteś gotowy? Zapewne wiesz, że inne narzędzia kodowania potrzebują zainstalowanej biblioteki avifile. MEncoder nie potrzebuje ich wszystkich.
-ofps
(użyteczne, kiedy kodujesz VOB
29.97fps do 24fps AVI)Planowane cechy :
2.4.3.1. Kodowanie DivX4 2 lub 3-krokowo
2-krokowe kodowanie: nazwa sama mówi, że ta metoda koduje plik dwa razy. Pierwsze kodowanie (krok zdubingujący) 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 pierwszy raz o tym słyszysz powinieneś zasięgnąc rady w dostępnch w Internecie przewodnikach.
Ten przykład pokazuje jak kodować DVD do dwukrokowego AVI DiviX4. Tylko dwóch poleceń
potrzebujesz:
rm frameno.avi
- usuń plik, który może pochodzić z poprzedniego
3 krokowego kodowania (może kolidować z obecnym)
mencoder -dvd 2 -divx4opts br=1100
-o movie.avi -pass 1
mencoder -dvd 2 -divx4opts br=1100 -o movie.avi -pass 2
3-krokowe kodowanie: 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:
rm frameno.avi |
usuń konfliktowe pliki podręczne |
mencoder <file/DVD> -ovc frameno -o
frameno.avi |
Pierwszy krok: tylko-audio plik avi zostanie utworzony, zawierający
TYLKO pożądany strumień audio. Nie zapomnij o -lameopts , jeśli
potrzebujesz to 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. |
mencoder <file/DVD> -oac copy -pass 1
-divx4opts br=<bitrate> |
Drugi krok: inaczej zwany pierwszym krokiem kodowania wideo DivX4. Opcjonalnie określony bitreate wideo MEncoder wyświetlł na końcu poprzedniego kroku. |
mencoder <file/DVD> -oac copy -pass 2
-divx4opts br=<bitrate> |
Trzeci krok: inaczej zwany drugim krokiem kodowania wideo DiviX4.
Opcjonalnie określony bitreate wideo MEncoder wyświetlł na końcu poprzedniego kroku.
W tym kroku audio z frameno.avi zostanie wsunięte do docelowego pliku...
i wszytko jest gotowe! |
Przykład kodowanie 3-krokowego :
rm frameno.avi
- usuń plik pochodzący z
poprzedniego kodowania 3-krokowego (będzie kolidował z obecnym)
mencoder -dvd 2 -ovc frameno
-o frameno.avi
mencoder -dvd 2
-divx4opts br=1100 -oac copy -o movie.avi -pass 1
mencoder -dvd 2
-divx4opts br=1100 -oac copy -o movie.avi -pass 2
2 lub 3-krokowe kodowanie używając wewnętrznego kontrolera libavcodec :
Opcjonalnie możesz użyć trybu 2 lub 3-krokowego wewnętrznego libavcodec'a,
możde dać ci to lepszą końcową ścisłość tempa, niż używanie zewnątrznego, 2-krokowego DivX4-inspired
kontrolera tempa z libavcodec.
rm -f lavc_stats.txt
mencoder -dvd 2 -ovc lavc -lavcopts vpass=1 (opcje-audio) -o movie.avi
mencoder -dvd 2 -ovc lavc -lavcopts vpass=2 (opcje-audio) -o movie.avi
rm -f frameno.avi lavc_stats.txt
mencoder -dvd 2 -ovc frameno (opcje-audio) -o frameno.avi
mencoder -dvd 2 -ovc lavc -lavcopts vpass=1 -oac copy -o movie.avi
mencoder -dvd 2 -ovc lavc -lavcopts vpass=2 -oac copy -o movie.avi
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, kodując SVCD do DivX. Zripowanie DVD są często źle skalowane, na przyklad DVD 4:3 powinno być 640x480, szczególnie kiedy chcesz zmieścić go na 1 CD i mieć dobrą jakość w tym samym czasie. SVCD mają rozmiar 480x480 i ich nagłówki zawierają stosunek, który odtwarzacze powinny użyć (np.: 480x480 + 4:3 = 640x480). Jednak, gdy kodujesz do plików AVI (DivX), musisz być świadom tego, że nagłówki AVI na zapamiętują tej wartośći W taki sposób jedynym rozwiąznaniem jest skalowanie.
Proces skalowania jest prowadzony przez filter wideo 'scale':
-vf scale=X:Y
. Jakość może być ustawiona przez opcję
-sws
. Jeśli nie jest określona, MEncoder użyje 0:
szybki bilinear.
Sposób użycia :
mencoder sample-svcd.mpg -divx4opts br=1300 -vf scale=640:480 -sws 2 -o output.avi
2.4.3.3. Kopiowanie strumieniowe
MEncoder może przechwytywać strumienie wejściowe na dwa sposoby: kodując lub kopiując je. Ta sekcja dotyczy kopiowania.
-ovc copy
): niezłą robotę można wykonać :)-oac copy
): bezpośredni.
Możliwe jest przejęcie zewnętrznego pliku audio (MP3, AC3, Vorbis) i jego zapis
do strumienia zewnętrznego. Użyj do tego opcji -audiofile <filename>
.2.4.3.4. Naprawianie AVI z uszkodzonymi indeksami lub interleavingiem
Prosto kopiujemy strumienie audio i wideo, a
MEncoder generuje indeks. Oczywiście nie naprawi to błądów strumieni
wideo i/lub audio. Naprawia to także fliki z uszkodzonym interleavingiem,
tak więc opcja -ni
będzię potrzebna tak, czy inaczej.
Polecenie: mencoder -idx input.avi -ovc copy -oac copy -o output.avi
2.4.3.5. Kodowanie z rodziną kodeków libavcodec
libavcodec 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:
Pierwsza kolumna zawiera nazwy kodeków, które powinny być podane po konfiguracji
vcodec
, w stylu: -lavcopts vcodec=msmpeg4
Przykład z kompresją MJPEG :
mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg
2.4.3.6. Kodowanie z wielokrotnego wejścia obrazu pliku (JPEGi lub PNGsy)
MEncoder potrafi utworzyć film z jednego lub kilku plików JPEG lub PNG. Za pomocą prostego kopiowania klatki może stworzyć plik MJPEG (Motion JPEG) lub MPNG (Motion PNG).
Wyjaśnienie procesu
MEncoder dekoduje obraz(y) wejściowy z libjpeg
(kiedy dekoduje PNGsy, używa libpng).
MEncoder wtedy przekazuje dekodowany obraz do kompresora wideo (DivX4, Xvid, ffmpeg msmpeg4, itp...). Obecnie dekoder PNG może tylko zapisywać do formatów RGB, tak więc nie może być użyty z kodekami króre wymagają YUV jako wejścia, tak jak DivX4 lub msmpeg4 ffmpeg'a.
Przykłady
Objaśnienia opcji -mf
możesz znaleść pod spodem globalnej sekcji
Opcje i w manualu systemowym.
Tworzenie pliku DivX4 ze wszystkich plików JPEG w bieżącym katalogu:
mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o
output.avi
Tworzenie pliku DivX4 z któregoś pliku JPEG w bieżącym katalogu :
mencoder frame001.jpg,frame002.jpg -mf on:w=800:h=600:fps=25 -ovc divx4 -o
output.avi
Tworzenie pliku Motion JPEG (MJPEG) file ze wszystkich plików JPEG w bieżącym katalogu :
mencoder \*.jpg -mf on:w=800:h=600:fps=25 -ovc copy
-o output.avi
Tworzenie nieskompresowanych plików ze wszystkich plików PNG w bieżącym katalogu :
mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc raw -o
output.avi
Tworzenie pliku Motion PNG (MPNG) ze wszystkich plików PNG w bieżącym katalogu :
mencoder \*.png -mf on:w=800:h=600:fps=25:type=png -ovc copy
-o output.avi
mencoder [opcja] [plik wejściowy] [opcja] ...
INFORMACJA: dla wszystkich dostępnyc opcji czytaj, czytaj manual !
Z racji, że MEncoder jest zbudowany na tym samym kodzie co MPlayer, istnieje
wiele opcji MPlayera, które działają w MEncoderze także!
Jak widzisz, możesz użyć -sid
do zripowania DVD z napisami lub
-noidx
aby pominąć pełny błędów indeks pliku AVI. Bądź inspirujący!
-ss czas | zacznij kodować od podanego czasu (może tylko zacząć od klatki !) |
-endpos czas | zatrzymaj kodowanie w podanym czasie. Zobacz maual po przykłady ! |
-o plik | określ plik wyjściowy |
-sws 0-2 |
typ metody skalowania 0 - szybki bilinear 1 - bilinear 2 - bicubic (lepsza jakość) |
-ovc nazwa_kodeka |
Koduj z podanym kodekiem (nazwa z codecs.conf). Przykłady: help - wyświtl listę dostępnych kodeków rawrgb - ? copy - nie koduje, tylko kopiuje strumień (teraz tylko z AVI/ASF) divx4 - koduje do DivX4 lavc - koduje z kodemiem z ibavcodec vfw - koduje z Windows DLL |
-oac nazwa_kodeka |
Koduje z podanym kodekiem (nazwa z codecs.conf). Przykłady: help - wyświetl listę dostępnych kodeków copy - nie koduje, tylko kopiuje strumień (teraz tylko z AVI/ASF) pcm - koduje do niespompresowanego PCM mp3lame - koduje do MP3 (używając Lame) |
-mf opcje wielokrotne |
Używa kiedy koduje z wielokrotnych plików JPEG. Jego pod-opcje to: on - włącza obsługę plików wielokrotnych w=<wartość> - szerkość pliku wyjściowego h=<wartość> - wyskość pliku wyjścowego fps=<wartość> - ilość fps'ów pliku wyjściowego type=<wartość> - rodzaj pliku wejściowego (dostępne typy : jpeg , png ) |
-divx4opts |
Jeśli kodujesz do DivX4, możesz określić jego opcje tutaj, np:-divx4opts br=1800:deinterlace:key=250 Ogólne opcje: (po pełną listę sprawdź manual!) help - wyświetl pomoc br=<warość> - określ bitreate w kbitach <4-16000> lub bitach <16001-24000000> q=<wartość> - jakość (1-najszybsza, 5-najlepsza - domyślnie 5) key=<wartość> - przerwa klatek |
-lavcopts |
Jeśli kodujesz do libavcodec, możesz określić jego opcje tutaj, np:-lavcopts vcodec=msmpeg4:vbitrate=1800:vhq:keyint=250 Ogólne opcje: (po pełną listę sprawdź manual!) help - wyświetl pomoc vcodec=<wartość> - wybierz kodek wideo (po pełną listę zobacz sekcję libavcodec) vbitrate=<wartość> - określ bitrate w kbitach <4-16000> lub bitach <16001-24000000> vhq - wysoka jakość keyint=<wartość> - przerwa klatki |
-lameopts |
Jeśli kodujesz do MP2 z libmp3lame, możesz określić jego parametry tutaj, np:-lameopts q=3 -lameopts br=192:cbr Opcje ogólne: (po pełną listę sprawdź manual) help - wyświetl pomoc cbr - wybierz CBR MP3 (domyślnie jest VBR) br=<wartość> - określ bitrate w kbitach <0-1024> (to tylko dla CBR!) q=<wartość> - jakość (0-największa, 9-najszybsza - domyślnie 0) (to tylko dla VBR!) vbr=<wartość> - pod-tryb VBR (3-ABR, lepsza jakość/prędkość) (to tylko dla VBR!) |
Używanie MEncodera jest najprostszą rzeczą na świecie. Zobacz następujące:
Kodowania z DVD, tutuł 2 :
mencoder -dvd 2 -o title2.avi
To samo, ale z rodziną libavcodec, kompresja MJPEG :
mencoder -dvd 2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -ffourcc mjpg
Kodowanie z DVD, tytuł 2, ze skalowaniem :
mencoder -dvd 2 -vf scale=640:480 -sws 2 -o title2.avi
Kodowanie z HTTP :
mencoder http://mplayer.hq/example.avi -o example.avi
Kodowanie z pipe :
rar p test-SVCD.rar | mencoder -divx4opts br=800 -ofps 24 -pass 1 -- -
Kodowanie z wielokrotnego pliku *.vob :
cat *.vob | mencoder <options> -
Kodowanie z tunera (dla opcji tunera zobacz sekcję wejścia TV !) :
mencoder -tv on:driver=v4l:width=640:height=480 <options>
Po wszytskie dostępne opcje, sprawdź manual MEncodera!