Kodowanie z <application>MEncoderem</application> Pełna lista dostępnych opcji MEncodera oraz przykłady znajdują sie 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. Kodowanie 2 lub 3-przebiegowe MPEG-4 ("DivX") Kodowanie 2-przebiegowe Nazwa pochodzi od faktu, że 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 odrazu (możesz natomiast skasować plik AVI). W drugim przebiegu przy pomocy danych o bitrate'cie z plików tymczasowych tworzony jest plik wyjściowy 2-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. Ten przykład pokazuje jak zakodować DVD do 2-przebiegowego MPEG-4 ("DivX") AVI. Będą do tego potrzebne tylko dwie komendy: rm frameno.avi usuń ten plik, który może pochodzić z poprzedniego 3-przebiegowego kodowania (wpływa on na aktualny) mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o film.avi mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o film.avi Kodowanie 3-przebiegowe Jest to rozszerzenie kodowania 2-przebiegowego, gdzie dźwięk jest kodowany osobno. Ta metoda wyświetla zalecany bitrate taki, aby film zmieścił sie na pojedyńczą płytę CD. Również, dźwięk kodowany jest tylko raz, inaczej niż w trybie 2-przebiegowym. Schemat wygląda tak: Usuń przeszkadzający plik tymczasowy: rm frameno.avi Pierwszy przebieg: mencoder plik/DVD -ovc frameno -oac mp3lame -lameopts vbr=3 -o frameno.avi Zostanie stworzony plik avi tylko ze scieżką dźwiękową, zawierający jedynie rządany strumień audio. Nie zapomnij o , jeżeli musisz je ustawić. Jeśli kodowałeś długi film, MEncoder, po zakończeniu tego przebiegu, wypisze zalecane wartości bitrate'u dla docelowych pojemności 650Mb, 700Mb, i 800Mb. Drugi przebieg: mencoder plik/DVD -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=bitrate Jest to pierwszy przebieg kodowania video. Opcjonalnie ustal video bitrate na ten który MEncoder wypisał na końcu poprzedniego przebiegu. Trzeci przebieg: mencoder plik/DVD -oac copy -pass 2 \ -ovc divx4 -divx4opts br=bitrate Jest to drugi przebieg kodowania video. Ustal ten sam bitrate co w poprzednim przebiegu, chyba że naprawdę wiesz co robisz. W tym przebiegu, dźwięk z frameno.avi będzie dołączony do pliku końcowego... i gotowe! Przykład 3-przebiegowego kodowania rm frameno.avi usuń ten plik, który może pochodzić z poprzedniego 3-przebiegowego kodowania (wpływa on na aktualny) mencoder dvd://2 -ovc frameno -o frameno.avi -oac mp3lame -lameopts vbr=3 mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o film.avi mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o film.avi Kodowanie do formatu MPEG MEncoder może tworzyć pliki formatu MPEG (MPEG-PS). Jest to prawdopodobnie użyteczne tylko z kodekiem mpeg1video pochodzącym z libavcodec, ponieważ odtwarzacze - za wyjątkiem MPlayera - oczekują obrazu zakodowanego w MPEG1 i strumienia dźwiękowego w MPEG1 warstwa (layer) 2 (MP2) w pliku MPEG. Cecha ta nie jest zbytnio przydatna w tej chwili, poza tym zawiera prawdopodobnie wiele błędów, ale najważniejsze jest to, że MEncoder w tej chwili nie może kodować 2 warstwy MPEG1 (MP2) audio której oczekują wszystkie odtwarzacze w plikach MPEG. Aby zmienić wyjściowy format plików MEncodera, użyj opcji . Przykład: mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy inne opcje media.avi -o wyjscie.mpg Przeskalowywanie filmów Najczęściej potrzeba zmiany wielkości obrazu jest nagła. Jej powodów może być wiele: zmniejszenie rozmiaru pliku, przepustowość sieci, itd. Wiekszość ludzi stosuje skalowanie przy konwertowaniu DVD lub SVCD do DivXa (AVI). To jest złe rozwiązanie. Zamiast tak robić, przeczytaj sekcje Zachowywanie 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 0: szybki bilinearny. Przykład: mencoder wejscie.mpg -ovc lavc -lavcopts vcodec=mpeg4 -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 ): ładne rzeczy można wyczyniać:) Jak, wstawianie (nie konwertowanie) FLI, VIDO lub MPEG1 video w plik AVI ! Oczywiście tylko MPlayer potrafi odtwarzać takie pliki :) I prawdopodobnie nie ma dla tego żadnego sensownego zastosowania. Na zdrowy rozsądek: kopiowanie strumieni video może być przydatne tylko 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 opcji do tego celu. Naprawianie plików AVI ze zniszczonym indeksem lub przeplotem Najprostsza sprawa. Po prostu kopiujemy strumień audio i video, a MEncoder generuje indeks. Oczywiście nie naprawi to możliwych błęów w strumieniu video i/lub audio, ale za to, naprawi pliki z zepsutym przeplotem, +tak więc opcja nie będzie tu już potrzebna. Komenda: mencoder -idx wejscie.avi -ovc copy -oac copy -o wyjscie.avi Łącznie wielu plików AVI Efektem ubocznym funkcji naprawiania zepsutych plików AVI jest możliwości łączenia 2 (lub więcej) plików AVI: Komenda: cat 1.avi 2.avi | mencoder -noidx -ovc copy -oac copy -o wyjscie.avi - Komenda ta oczekuje tego, żeby1.avi i 2.avi używały tego samego kodeka, rozdzielczości, szybkości strumienia (stream rate), i przynajmniej 1.avi nie może być zepsute. Możliwe, że będziesz musiał naprawić pliki wejściowe, jak było opisane powyżej. Kodowanie przy pomocy rodziny kodeków libavcodec libavcodec umożliwia proste kodowanie do wielu interesujących formatów video i audio (narazie kodeki audio nie są obsługiwane). Możesz kodować do następujących kodeków (mniej lub bardziej aktualne) Nazwa kodekaOpis mjpeg Ruchomy JPEG ljpeg Bezstratny JPEG h263 H263 h263p H263 Plus mpeg4 Standtard ISO MPEG-4 (DivX 5, XVID kompatybilne) msmpeg4 pierwotny wariant MPEG-4 przez MS, v3 (DivX3) msmpeg4v2 pierwotny wariant MPEG-4 przez MS, v2 (używany w starych plikach asf) wmv1 Windows Media Video, wersja 1 (WMV7) wmv2 Windows Media Video, wersja 2 (WMV8) rv10 Stary kodek RealVideo mpeg1video MPEG1 video mpeg2video MPEG2 video huffyuv bezstratna kompresja asv1 ASUS Video v1 asv2 ASUS Video v2 ffv1 bezstratny kodek video FFmpeg Pierwsza kolumna zawiera nazwę kodeka, która powinna być podana za opcją vcodec, np: Przykład z kompresją MJPEG: mencoder dvd://2 -o title2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy Kodowanie z wielu wejściowych plików obrazkowych (JPEG,PNG lub TGA) 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 DivX4 ze wszystkich plików JPEG w aktualnym katalogu: mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o wyjscie.avi \*.jpg Tworzenie pliku DivX4 z wybranych plików JPEG w aktualnym katalogu: mencoder -mf on:w=800:h=600:fps=25 -ovc divx4 -o wyjscie.avi ramka001.jpg,ramka002.jpg Tworzenie pliku Motion (ruchomego - przyp. tłum.) JPEG (MJPEG) ze wszystkich plików JPEG w aktualnym katalogu: mencoder -mf on:w=800:h=600:fps=25 -ovc copy -o wyjscie.avi \*.jpg Tworzenie nieskompresowanego pliku ze wszystkich plików PNG w aktualnym katalogu: mencoder -mf on:w=800:h=600:fps=25:type=png -ovc raw -o output.avi \*.png Szerokości 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 on:w=800:h=600:fps=25:type=png -ovc copy -o wyjscie.avi \*.png Tworzenie pliku Motion TGA (MTGA) ze wszystkich plików TGA w aktualnym katalogu: mencoder -mf on:w=800:h=600:fps=25:type=tga -ovc copy -o wyjscie.avi \*.tga Wyciąganie 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 z oraz indeks dla tego pliku przez . 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 bierzące napisy, jeżeli pliki .idx i .sub istnieją. Więc powinieneś je usunąć przed uruchomieniem. Kopiowanie dwóch napisów z DVD podczas 3-przebiegowego kodowania rm subtitles.idx subtitles.sub mencoder dvd://1 -vobsubout napisy -vobsuboutindex 0 -sid 2 -o frameno.avi -ovc frameno mencoder dvd://1 -oac copy -ovc divx4 -pass 1 mencoder dvd://1 -oac copy -ovc divx4 -pass 2 -vobsubout napisy -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 Utrzymywanie proporcji obrazu (aspect ratio) Pliki DVD i SVCD (tzn. MPEG1/2) zawierają wartość proporcji obrazu, która opisuje, jak odtwarzacz ma skalować strumień video, wiec ludzie nie bedą się męczyć (np.: 480x480 + 4:3 = 640x480). Jednak przy kodowaniu plików AVI (DivX), musisz być świadom, że nagłowek AVI nie przechowuje tej wartości. Przeskalowywanie jest obrzydliwe i czasochłonne, musi być jakiś lepszy sposób! Jest MPEG4 posiada unikalną cechę: strumień video może posiadać swoją wartość proporcji obrazu. Tak, dokładnie jak pliki MPEG1/2 (DVD, SVCD) i H263. Niestety, nie ma żadnych odtwarzaczy video które by wykorzystywały tą zaletę MPEG4, oprócz MPlayera. Właściwość ta może być jedynie używana z kodekiem mpeg4 z biblioteki libavcodec. Pamiętaj: chociaż MPlayer poprawnie odtworzy stworzone pliki, inne odtwarzacze użyją 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ład-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -o wyjscie.avi Dowolne inter/intra matryce Ta cecha libavcodec pozwala ustawić dowolne inter (I-ramki/ramki kluczowe) i intra (P-ramki/predicted frames) matryce. Funkcja ta jest obsługiwana przez wiele kodeków: mpeg1video i mpeg2video zgłaszane są jako działające. Typowy sposób użycia tej opcji to ustawienie matrycy na specyfikacje preferowane przez KVCD. Matryca Kwantyzacji KVCD "Notch": Intra: 8 9 12 22 26 27 29 34 9 10 14 26 27 29 34 37 12 14 18 27 29 34 37 38 22 26 27 31 36 37 38 40 26 27 29 36 39 38 40 48 27 29 34 37 38 40 48 58 29 34 37 38 40 48 58 69 34 37 38 40 48 58 69 79 Inter: 16 18 20 22 24 26 28 30 18 20 22 24 26 28 30 32 20 22 24 26 28 30 32 34 22 24 26 30 32 32 34 36 24 26 28 32 34 34 36 38 26 28 30 32 34 36 38 40 28 30 32 34 36 38 42 42 30 32 34 36 38 40 42 44 Sposób użycia: $ mencoder wejscie.avi -o wyjscie.avi -oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=... $ mencoder wejscie.avi -ovc lavc -lavcopts vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37, 12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27, 29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79 :inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26, 28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34, 36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg