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 -lacvopts vpass=1 (opcje-audio) -o
movie.avi
mencoder -dvd 2 -ovc lavc -lacvopts 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 -lacvopts vpass=1 -oac copy -o
movie.avi
mencoder -dvd 2 -ovc lavc -lacvopts 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': -vop 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 -vop
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 -vop 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!