poniedziałek, 27 października 2008

Obróbka wideo w Linuksie Ubuntu cz. 1 - MEncoder

Autor: Adrian Nowak, 21:55, poniedziałek, 27 października 2008


Obróbka materiału wideo w Linuksie to dość duże wyzwanie nawet dla średnio zaawansowanych użytkowników tego systemu. Szczególne braki Pingwina widać po przesiadce z konkurencyjnych systemów takich jak Windows czy Mac OS, gdzie materiał filmowy dopasowujemy do własnych oczekiwań bez zagłębiania się w szczegóły pracy programu. Wszystko możemy tam "wyklikać" przeciągając na symbol filmu odpowiednie efekty. Niestety użytkownikom Linuksów nie dane są takie wygody i każdy etap przygotowania filmu będzie się odbywał w innym programie.

Do pozytywnych aspektów możemy jednak zaliczyć to, że poznamy wiele technicznych czynników wpływających na efekt końcowy. Myślę, że satysfakcja stworzenia takiego filmu również będzie większa.

W pierwszej części tego krótkiego kursu chciałbym się skupić na narzędziu, które powinien poznać każdy wideo amator i to nie tylko w Linuksie. Mowa oczywiście o programie MEncoder, który jest swego rodzaju scyzorykiem w rękach ludzi, którzy potrafią go obsłużyć. Dzięki niemu możliwe jest konwertowanie między wieloma formatami filmów, skalowanie wielkości filmu, zmiana jego jakości, dodawanie napisów i wiele innych.

Niestety program ma jedną wadę, która szczególnie nie odpowiada początkującym - brak GUI czyli graficznego interfejsu użytkownika. Powstało co prawda kilka nakładek, jednak ich funkcjonalność nie przekracza nawet kilku procent możliwości aplikacji. MEncodera będziemy zatem obsługiwać z poziomu konsoli.

Każdorazowe wpisywanie często dość długich poleceń nie należy do najprzyjemniejszych, więc bardzo wygodnie jest stworzyć sobie plik skryptu w którym umieścimy używaną przez nas komendę i będziemy ją tam jedynie edytować zamiast każdorazowego wpisywania. Korzystanie ze skryptów wyłania jedną z największych zalet trybu tekstowego, którą jest możliwość tworzenia skryptów w wielu językach, np. Bash czy Python, które wykonają za nas wiele czynności. Dla przykładu, najpierw zripują film z płyty DVD, następnie dodadzą do niego napisy a na koniec jeszcze przeskalują film do odpowiedniej wielkości. Oczywiście o wiele korzystniej jest zrobić te wszystkie czynności jednocześnie, ale umieszczanie poleceń w skryptach pozwala również na takie czynności jak wyłączenie komputera po zakończeniu konwersji filmu czy nawet nagranie go na płytę. Jest to również dobry nawyk, który pozwoli szybko przypomnieć sobie znaczenia poleceń po przerwie z kodowaniem filmów.

Przejdźmy zatem do działania. MEncoder znajduje się w domyślnych repozytoriach wielu systemów w tym również Ubuntu, więc by go zainstalować wystarczy w terminalu wpisać:
sudo apt-get install mencoder
Składnia poleceń dla MEncodera jest bardzo prosta. Przykładowa komenda, która nakazuje programowi skopiowanie warstwy dźwiękowej i obrazu wygląda następująco:
mencoder /home/adrian/film.avi -o /home/adrian/film_konw.avi -ovc copy -oac copy
Widzimy zatem, że każde polecenie powinno składać się z nazwy programy - mencoder, pliku wejściowego /home/adrian/film.avi, pliku wyjściowego, poprzedzonego parametrem -0 -o /home/adrian/film_konw.avi i parametrów kodowania, -ovc dotyczy warstwy obrazu natomiast -oac warstwy dźwiękowej.

Tak wygląda natomiast polecenie bardzo złożone, które nakazuje programowi przeskalowanie obrazu do wielkości 320 x 240px, ustawienie wyświetlania 22 klatek na sekundę, ustala położenie i rozmiar napisów, jakość i typ wideo wyjściowego (bitrate=500:max_bframes=0:quant_type=h263), ustala też jakość dźwięku na 128 Kb/s kodowanego kodekiem MP2 (acodec=mp2:abitrate=128), oraz dodaje napisy w formacie .srt do filmu (-sub /home/adrian/mencoder/napisy.srt).
mencoder /home/adrian/mencoder/film.avi -o /home/adrian/mencoder/film_AVI.avi -ofps 22 -vf-add scale=320:240 -vf-add expand=320:240:-1:-1:1 -srate 44100 -ovc xvid -xvidencopts bitrate=500:max_bframes=0:quant_type=h263: me_quality=4 -oac lavc -lavcopts acodec=mp2:abitrate=128 -sub /home/adrian/mencoder/napisy.srt
Myślę, że po wnikliwej analizie tego polecenia będziecie je umieli zmodyfikować zgodnie z waszymi potrzebami, które będą niezbędne w kolejnym odcinku kursu.

Więcej informacji o MEncoderze znajdziecie również w archiwalnych wpisach:
- MEncoder – Konwersja z .FLV do .AVI bez trzasków
- MEncoder – nagrywanie obrazu z karty TV, Composite lub S-Video
- MEncoder - konwertowanie wideo

W kolejnej części zajmiemy się obróbką materiału pod kątem treści. Pokażę jak usuwać z filmów wybrane fragmenty i łączyć je z innymi.

Tagi: ,

Komentarze 5 comments
Unknown pisze...

Kdenlive jeśli chcesz edytować wideo na linuksie to jedyny bezbolesny sposób.

Anonimowy pisze...

Jeśli chodzi o wygodne ripowanie DVD z wykorzystaniem Mencoder to polecam AcidRip jako dobre GUI. Można tam dobrać bitrate lub wielkość pliku, nazwę wyniku, kadrowanie, oraz skalowanie filmu. Brak jest natomiast możliwości wyklinania opcji filtrowania filmu (np. odprzeplot, wygładzanie). Parametry filtrowania można za to wpisać w odpowiednie pole samemu.

Mam natomiast pytanie czy Mencoder wykorzystuje procesory dwurdzeniowe bo mam wrażenie obserwując monitor systemu że nie. Czy ktoś próbował wykorzystać moc wielordzeniowców pod Linuksem do konwersji filmów jakimkolwiek koderem (nie tylko Mencoder)

Anonimowy pisze...

Jak się nie mylę wykorzystuje 2 rdzenie z opcją -lavcopts threads=2

Unknown pisze...

Do konwertowania plików wolę Mobile Media Converter.

Anonimowy pisze...

Do programistow ! Zacznijcie tez pisac programy pod pingwina bo warto sam system jest o wiele bardziej wydajniejszy niz Windows !, tyle z mojej strony .

Prześlij komentarz


Popularne posty

Etykiety