Podstawy używania <application>MEncodera</application> 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 audioOpis mp3lame Kodowanie na MP3 VBR, ABR lub przy użyciu LAME lavc Używa jednego z kodeków audio z libavcodec faac Koder audio FAAC AAC toolame Koder MPEG Audio Layer 2 twolame Koder MPEG Audio Layer 2 encoder oparty na tooLAME pcm Nieskompresowany dźwięk PCM copy Nie przekodowywuj, tylko przekopiuj zakodowane ramki Kodeki video: Nazwa kodeka videoOpis lavc Używa jednego z kodeków video z libavcodec xvid XviD, kodek MPEG-4 Advanced Simple Profile (ASP) x264 x264, MPEG-4 Advanced Video Coding (AVC), zwany kodekiem H.264 nuv nuppel video, używany przez niektóre aplikacje czasu rzeczywistego raw Nieskompresowane klatki video copy Nie przekodowywuj, tylko przekopiuj zakodowane ramki frameno Uż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 formatuOpis lavf Jeden z formatów obsługiwanych przez libavformat avi Audio-Video Interleaved (Przeplecione Audio-Video) mpeg MPEG-1 i MPEG-2 PS rawvideo surowy strumień video (bez muxowania - tylko jeden strumień video) rawaudio surowy 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. libavformat containers: 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. libavformat container nameDescription mpg MPEG-1 i MPEG-2 PS asf Advanced Streaming Format (Zaawansowany format strumieniowy) avi Audio-Video Interleaved wav Waveform Audio swf Macromedia Flash flv Macromedia Flash video rm RealMedia au SUN AU nut Otwarty format NUT (eksperymentalny i jeszcze bez specyfikacji) mov QuickTime mp4 MPEG-4 format dv format 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ś popadać w paranoję na temat 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. Przykład: Tworzenie zbioru Macromedia Flash video, nadającego się do odtwarzania w przeglądarce sieci z wtyczką Macromedia Flash: mencoder wejście.avi -o wyjście.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ -srate 22050 Wybieranie źródłowego zbioru lub urządzenia MEncoder 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.avi kodowanie ś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.avi Kodowanie do formatu MPEG MEncoder 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 wyjscie.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 wyjscie.mpg -oac lavc -ovc lavc \ -lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3 Wskazówka: Jeżeli z jakiegoś powodu nie satysfakcjonuje cię jakość wideo z drugiego przebiegu, możesz ponownie uruchomić kodowanie swojego wideo 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. Przykład: mencoder wejscie.mpg -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -vf scale=640:480 -o wyjscie.avi Kopiowanie strumienia MEncoder obsługuje strumienie wejściowe na dwa sposoby: koduje lub kopiuje je. Ta sekcja jest o kopiowaniu. Strumień video (opcja ): można ładne rzeczy 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. 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.avi Kodowanie z wielu wejściowych plików obrazkowych (JPEG, PNG, TGA, SGI) MEncoder jest w stanie stworzyć film z jednego lub wielu plików JPEG, PNG lub TGA. 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: MEncoder dekoduje 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://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żdej linii): mencoder mf://@list.txt -mf w=800:h=600:fps=25:type=jpg \ -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o wyjscie.avi Tworzenie pliku MPEG-4 z wybranych plików JPEG w aktualnym katalogu: mencoder mf://klatka001.jpg,klatka002.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o wyjscie.avi 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 output.avi Informacja: 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 wyjscie.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 wyjscie.avi Wydobywanie napisów z DVD do pliku VOBsub MEncoder 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ą. Więc powinieneś je usunąć przed uruchomieniem. Kopiowanie dwóch napisów z DVD podczas dwu-przebiegowego kodowania rm subtitles.idx subtitles.sub mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5 Kopiowanie francuskich napisów z pliku MPEG rm napisy.idx napisy.sub mencoder film.mpg -ifo film.ifo -vobsubout napisy -vobsuboutindex 0 -vobsuboutid fr -sid 1 -nosound -ovc copy Utrzymywanie 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 wideo, 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 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect -vf crop=714:548:0:14 -oac copy -o wyjście.avi