Podstawy używania MEncodera
Pełna lista dostępnych opcji MEncodera oraz
przykłady znajdują się na stronie man. W pliku
encoding-tips
znajduje się dużo przykładów i przewodników skompletowanych z wielu wątków
listy dyskusyjnej MPlayer-users.
W archiwum
znajdziesz mnóstwo dyskusji o aspektach i problemach związanych z kodowaniem
przy pomocy MEncodera.
Wybieranie kodeka i formatu
Kodeki audio i video stosowane przy kodowaniu są wybierane odpowiednio
opcjami i .
Napisz na przykład:
mencoder -ovc help
by uzyskać listę wszystkich kodeków video obsługiwanych przez
MEncodera na Twoim komputerze.
Dostępne są następujące:
Kodeki audio:
Nazwa kodeka audioOpismp3lamekodowanie na MP3 VBR, ABR lub przy użyciu LAMElavcużywa jednego z kodeków audio z libavcodecfaackoder audio FAAC AACtoolamekoder MPEG Audio Layer 2twolamekoder MPEG Audio Layer 2 encoder oparty na tooLAMEpcmnieskompresowany dźwięk PCMcopynie przekodowywuj, tylko przekopiuj zakodowane ramki
Kodeki video:
Nazwa kodeka videoOpislavcużywa jednego z kodeków video z libavcodecxvidXvid, kodek MPEG-4 Advanced Simple Profile (ASP)x264x264, MPEG-4 Advanced Video Coding (AVC), zwany kodekiem H.264nuvnuppel video, używany przez niektóre aplikacje czasu rzeczywistegorawnieskompresowane klatki videocopynie przekodowywuj, tylko przekopiuj zakodowane ramkiframenoużywany do kodowania trójprzebiegowego (nie zalecane)
Format wyjściowy wybiera się opcją .
Napisz:
mencoder -of help
by otrzymać listę wszystkich formatów obsługiwanych przez
MEncodera na Twoim komputerze.
Formaty przechowywania:
Nazwa formatuOpislavfjeden z formatów obsługiwanych przez
libavformataviAudio-Video Interleaved (Przeplecione Audio-Video)mpegMPEG-1 i MPEG-2 PSrawvideosurowy strumień video (bez muxowania - tylko jeden strumień video)rawaudiosurowy strumień audio (bez muxowania - tylko jeden strumień audio)
Format AVI jest podstawowym formatem MEncodera,
co oznacza że jest najlepiej obsługiwany i że
MEncoder był projektowany z myślą o nim.
Jak napisano wcześniej, można używać innych formatów, ale możesz napotkać
przy tym problemy.
Formaty z libavformat:
Jeśli chcesz żeby libavformat
dokonywał muksowania zbioru wyjściowego (przy użyciu opcji
), stosowny format zostanie ustalony na podstawie
rozszerzenia pliku wyjściowego.
Możesz wymusić konkretny format opcją biblioteki
libavformat.
nazwa formatu libavformatOpismpgMPEG-1 i MPEG-2 PSasfAdvanced Streaming Format (Zaawansowany format strumieniowy)aviAudio-Video InterleavedwavWaveform AudioswfMacromedia FlashflvMacromedia Flash videormRealMediaauSUN AUnutotwarty format NUT (eksperymentalny i jeszcze bez specyfikacji)movQuickTimemp4MPEG-4 formatdvformat Sony Digital Video
Jak widzisz, libavformat pozwala
MEncoderowi tworzyć sporą ilość różnych formatów.
Niestety, ponieważ MEncoder nie był tworzony
z myślą o innych formatach niż AVI, powinieneś mieć paranoidalne podejście do
wynikowych plików.
Dokładnie sprawdź czy jest prawidłowa synchronizacja audio/video i czy plik
może zostać prawidłowo odtworzony przez odtwarzacze inne niż
MPlayer.
kodowanie do formatu Macromedia Flash
Tworzenie zbioru Macromedia Flash video, nadającego się do odtwarzania
w przeglądarce sieciowej z wtyczką Macromedia Flash:
mencoder wejście.avi -o wyjście.flv -of lavf \
-oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3
Wybieranie źródłowego zbioru lub urządzeniaMEncoder może kodoważ ze zbiorów lub bezpośrednio
z dysku DVD lub VCD.
Po prostu podaj nazwę zbioru w wierszu poleceń żeby kodować ze zbioru, albo
numertytułu lub
numerścieżki by nagrywać
z tytułu DVD albo ścieżki VCD.
Jeśli już skopiowałeś DVD na twardy dysk (możesz na przykład użyć narzędzia
takiego jak dvdbackup, dostępnego na większości
systemów), wciąż powinieneś używać składni , razem
z opcją po której następuje ścieżka do
skopiowanego DVD.
Opcji i możesz
też używać by podać własne ścieżki do węzłów urządzeń, jeśli domyślne
/dev/dvd i /dev/cdrom nie są
właściwe w Twoim systemie.
Przy kodowaniu z DVD, często pożądanym jest wybranie do kodowania rozdziału
lub zasięgu rozdziałów.
Możesz w tym celu użyć opcji , na przykład
1-4 zakoduje z DVD
tylko rozdziały od 1 do 4.
Jest to zwłaszcza użyteczne gdy robisz kodowanie do wielkości 1400 MB,
przeznaczone na 2 CD, ponieważ możesz się upewnić że przerwa nastąpi
dokładnie na granicy rozdziałów a nie w środku sceny.
Jeśli masz obsługiwaną kartę przechwytywania TV, możesz też kodować z jej
urządzenia wejściowego.
Użyj opcji numerkanału jako
nazwy pliku, a opcją skonfiguruj rozmaite ustawienia
przechwytywania.
Podobnie działa wejście z DVB.
Kodowanie dwuprzebiegowe MPEG-4 ("DivX")
Nazwa związana jest z faktem, iż przy użyciu tej metody plik kodowany jest
dwa razy.
Pierwsze kodowanie (dubbed pass) tworzy pliki tymczasowe
(*.log) o rozmiarze kilku megabajtów, nie kasuj ich od
razu (możesz natomiast skasować plik AVI a jeszcze lepiej nie tworzyć go
w ogóle poprzez zapisywanie w /dev/null).
W drugim przebiegu przy pomocy danych o bitrate 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.
kopiowanie ścieżki dźwiękowej
Dwuprzebiegowe kodowanie DVD do MPEG-4 ("DivX") AVI z kopiowaniem ścieżki dźwiękowej.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
-oac copy -o output.avikodowanie ścieżki dźwiękowej
Dwuprzebiegowe kodowanie DVD do MPEG-4 ("DivX") AVI z kodowaniem ścieżki dźwiękowej do MP3.
Uważaj stosując tę metodę, ponieważ w niektórych przypadkach może zaowocować
desynchronizacją audio/video.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
-oac mp3lame -lameopts vbr=3 -o /dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
-oac mp3lame -lameopts vbr=3 -o output.aviKodowanie do formatu video Sony PSPMEncoder obsługuje kodowanie do formatu video Sony
PSP, ale, w zależności od wersji oprogramowania PSP, wymaga różnych
ograniczeń.
Powinieneś byś bezpieczny, jeśli respektujesz poniższe ograniczenia:
Bitrate: nie powinno przekraczać 1500kbps,
jednakże poprzednie wersje obsługiwały praktycznie dowolny bitrate jeśli
tylko nagłówek twierdził że nie jest za wysokie.
Wymiary: wysokość i szerokość filmu PSP
powinny być wielokrotnościami 16, a iloczyn szerokość * wysokość musi być
<= 64000.
W niektórych okolicznościach może być możliwe że PSP odtworzy wyższe
rozdzielczości.
Audio: powinno mieć częstotliwość
próbkowania 24kHz dla MPEG-4 i 48kHz dla H.264.
kodowanie dla PSP
mencoder -ofps 30000/1001 -af lavcresample=24000 -vf harddup -of lavf \
-oac lavc -ovc lavc -lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:acodec=aac \
-lavfopts format=psp:i_certify_that_my_video_stream_does_not_use_b_frames \
wejściowe.video -o wyjście.psp
Możesz też ustawić tytuł filmu dzięki
.
Kodowanie do formatu MPEGMEncoder może tworzyć pliki formatu MPEG (MPEG-PS).
Zazwyczaj, jeśli używasz filmu MPEG-1 albo MPEG-2, to jest tak ponieważ
kodujesz na ograniczony format, taki jak SVCD, VCD albo DVD.
Specyficzne ograniczenia tych formatów są wyjaśnione w
przewodniku tworzenia VCD i DVD.
Aby zmienić wyjściowy format plików MEncodera, użyj opcji .
Przykład:
mencoder wejscie.avi -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video \
-oac copy inne_opcje -o wyjście.mpg
Tworzenie pliku MPEG-1, który można odtworzyć na systemach z minimalną obsługą
multimedialną, taką jak domyślne instalacje Windows:
mencoder wejscie.avi -of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 \
-o wyjście.mpg -oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
-lavcopts vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
To samo, ale używając muxera MPEG z libavformat:
mencoder wejście.avi -o VCD.mpg -ofps 25 -vf scale=352:288,harddup -of lavf \
-lavfopts format=mpg:i_certify_that_my_video_stream_does_not_use_b_frames \
-oac lavc -lavcopts acodec=mp2:abitrate=224 -ovc lavc \
-lavcopts vcodec=mpeg1video:vrc_buf_size=327:keyint=15:vrc_maxrate=1152:vbitrate=1152:vmax_b_frames=0
Wskazówka:
Jeżeli z jakiegoś powodu nie satysfakcjonuje Cię jakość video
z drugiego przebiegu, możesz ponownie uruchomić kodowanie
swojego video z inną docelową szybkością transmisji (bitrate),
zakładając, że zapisałeś statystyki pliku z poprzedniego przebiegu.
Jest to możliwe, ponieważ głównym celem pliku ze statystykami jest
zapamiętanie złożoności każdej z ramek, co nie zależy zbyt mocno
od szybkości transmisji. Weź jednak pod uwagę, że uzyskasz najlepsze
wyniki, jeżeli wszystkie przebiegi będą uruchomione z nieróżniącymi
się za bardzo docelowymi szybkościami transmisji.
Przeskalowywanie filmów
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
przeskalowywanie nawet przy konwertowaniu płyt DVD, SVCD do DivX AVI. Jeżeli
chcesz przeskalowywać, przeczytaj sekcję o zachowywaniu proporcji obrazu.
Proces skalowania obsługiwany jest przez filtr video scale:
.
Jego jakość może być ustawiona parametrem .
Jeśli nie jest on podany MEncoder użyje wartości 2: bicubic.
Sposób użycia:
mencoder wejscie.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell \
-vf scale=640:480 -o wyjście.aviKopiowanie strumieniMEncoder obsługuje strumienie wejściowe na dwa
sposoby: koduje lub
kopiuje je.
Ta sekcja jest o kopiowaniu.
Strumień video (opcja ):
ładne rzeczy można wyczyniać:) Jak wstawianie (nie konwertowanie) FLI, VIDO
lub MPEG-1 video w plik AVI! Oczywiście tylko
MPlayer 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. nieskompresowane PCM do MP3).
Strumień audio (opcja ):
prosto i przystępnie. Możliwe jest wmiksowanie zewnętrznego źródła (MP3, WAV)
do strumienia wyjściowego. Użyj w tym celu opcji
.
Używanie do kopiowania z jednego formatu
przechowywania do innego może wymagać użycia żeby
utrzymać znacznik formatu audio z oryginalnego zbioru.
Na przykład jeśli konwertujesz zbiór NSV z audio zakodowanym AAC do formatu
AVI, to znacznik formatu audio będzie nieprawidłowy i musi zostać zmieniony.
Listę znaczników formatów audio znajdziesz w pliku
codecs.conf.
Przykład:
mencoder wejście.nsv -oac copy -fafmttag 0x706D \
-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -o wyjście.aviKodowanie z wielu wejściowych plików obrazkowych
(JPEG, PNG, TGA itp.)MEncoder jest w stanie stworzyć film z jednego
lub wielu plików JPEG, PNG, TGA albo innych obrazków.
Poprzez proste kopiowanie ramek może stworzyć pliki MJPEG
(Motion (ruchomy - przypis tłumacza) JPEG), MPNG (Motion PNG) lub MTGA (Motion TGA).
Jak to działa:MEncoderdekoduje wejściowy
obrazek/obrazki z pomocą biblioteki
libjpeg (w przypadku dekodowania
PNG, skorzysta z libpng).
Potem MEncoder kompresuje zdekodowane pliki
podanym kompresorem (DivX4, Xvid, FFmpeg msmpeg4, itd.).
Przykłady
Opis i sposób działania funkcji znajdują się na stronie man.
Tworzenie pliku MPEG-4 ze wszystkich plików JPEG w aktualnym katalogu:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc\
-lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o wyjście.avi
Tworzenie pliku MPEG-4 z niektórych plików JPEG w aktualnym katalogu:
mencoder mf://ramka001.jpg,ramka002.jpg -mf w=800:h=600:fps=25:type=jpg \
-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o wyjście.avi
Tworzenie plików MPEG-4 z jawnie podanej listy plików JPEG (list.txt w aktualnym
katalogu, zawiera listę plików, które mają zostać użyte jako źródło, po jednym
w każdym wierszu):
mencoder mf://@list.txt -mf w=800:h=600:fps=25:type=jpg \
-ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o wyjście.avi
Możesz mieszać rózne typy obrazków, niezależnie od używanej metody
— wymieniane pliki, znaki globalne czy plik z listą — o ile
oczywiście wszystkie mają te same wymiary.
Możesz więc n.p. zrobić klatkę tytułową z obrazka PNG a potem umieścić pokaz
swoich zdjęć JPEG.
Tworzenie pliku Motion JPEG (MJPEG) ze wszystkich plików JPEG w aktualnym katalogu:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -ovc copy -o wyjście.avi
Tworzenie nieskompresowanego pliku ze wszystkich plików PNG w aktualnym katalogu:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o wyjście.aviInformacja:
Szerokość musi być liczbą podzielną przez 4, takie są ograniczenia formatu RAW RGB AVI.
Tworzenie pliku Motion PNG (MPNG) ze wszystkich plików PNG w aktualnym katalogu:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o wyjście.avi
Tworzenie pliku Motion TGA (MTGA) ze wszystkich plików TGA w aktualnym katalogu:
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o wyjście.aviWydobywanie napisów z DVD do pliku VOBsubMEncoder jest w stanie wyciągnąć napisy z DVD do
pliku w formacie VOBsub. Tworzy je para plików z rozszerzeniem
.idx i .sub, które są zazwyczaj
spakowane do pojedyńczego archiwum .rar.
MPlayer może je odtwarzać z opcjami
i .
Podajesz nazwę bazową (tzn. bez rozszerzenia .idx lub
.sub) pliku wyjściowego opcją
oraz indeks dla tego pliku opcją .
Jeżeli źródłem nie jest DVD powinieneś użyć opcji , aby
wskazać plik .ifo potrzebny do stworzenia pliku wynikowego
.idx.
Jeżeli źródłem nie jest DVD i nie masz pliku .ifo,
będziesz musiał użyć opcji , aby podać id języka,
które będzie umieszczone w pliku .idx.
Każde uruchomienie dołączy do istniejących napisów, jeżeli pliki
.idx i .sub istnieją.
Powinieneś więc usunąć je przed uruchomieniem.
Kopiowanie dwóch napisów z DVD podczas dwu-przebiegowego kodowania
rm napisy.idxnapisy.sub
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 \
-vobsubout napisy -vobsuboutindex 0 -sid 2
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 \
-vobsubout napisy -vobsuboutindex 1 -sid 5Kopiowanie francuskich napisów z pliku MPEG
rm napisy.idxnapisy.sub
mencoder film.mpg -ifo film.ifo -vobsubout napisy -vobsuboutindex 0 \
-vobsuboutid fr -sid 1 -nosound -ovc copyUtrzymywanie proporcji obrazu (aspect ratio)
Pliki DVD i SVCD (tzn. MPEG-1/2) zawierają informacje o proporcji obrazu, która
opisuje, jak odtwarzacz ma skalować strumień video, żeby ludzie nie byli
jajogłowi (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!
Jest
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, istnieje tylko kilka odtwarzaczy video, pomijając
MPlayera, które obsługują tę cechę MPEG-4.
Możliwość ta może być jedynie używana z kodekiem mpeg4
z biblioteki
libavcodec.
Pamiętaj: chociaż MPlayer poprawnie odtworzy
stworzone pliki, inne odtwarzacze mogą użyć złych proporcji obrazu
(aspect ratio).
Z pewnością powinieneś wyciąć czarne pasy nad i pod obrazem.
Zobacz jak używać filtrów cropdetect
i crop na stronie man.
Sposób użycia:
mencoder przykładowy-svcd.mpg -vf crop=714:548:0:14 -oac copy -ovc lavc \
-lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -o wyjście.avi