Artykuł dostępny jest również w formie dokumentu
Transkrypt
Artykuł dostępny jest również w formie dokumentu
Rekompresja DVD do AVI w programie AcidRip (Linux, Unix) AcidRip jest aplikacją dla systemów uniksowych (Linux,*BSD, MacOS X), został napisany w Perlu i przy wykorzystaniu bibliotek perl::gtk. Program ten jest nakładką graficzną dla programu Mencoder – części składowej pakietu Mplayer, służącej do konwersji materiału wideo. Główną zaletą AcidRip jest przede wszystkim prostota obsługi, przywodząca na myśl intuicyjne interfejsy programów DVD-Rip czy DVD2AVI Nie można też zapominać o szybkości działania, którą zyskuje dzięki wykorzystaniu programu kodującego Mencoder. Zarówno pakiet Mplayer/Mencoder, jak i AcidRip są na wyposażeniu większości dystrybucji Linuksa, jednak aby uzyskać wysoką wydajność, zwłaszcza Mencodera, należy go skompilować na własnej maszynie z odpowiednimi flagami kompilatora oraz ze wsparciem dla większej gamy kodeków. Odpowiednia kompilacja programu ze źródeł, pozwala przyspieszyć konwersję materiału wideo nawet o 20-30%. Jeżeli weźmiemy pod uwagę, że proces kompilacji pakietu MPlayer na maszynie z procesorem Duron 1200 MHz trwa około 20-25 minut, to wyraźnie widać, że czas poświęcony na kompilację zwróci się już przy tworzeniu pierwszej kopii zapasowej dwugodzinnego filmu z krążka DVD. Źródła pakietu Mplayer/Mencoder można pobrać ze strony domowej projektu – http://mplayerhq.hu. Warto zaopatrzyć się również w kodeki lame, XviD, DivX czy x264. Najnowszą wersje AcidRip można znaleźć na stronie http://acidrip.sf.net. W archiwum znaleźć powinien się też program lsdvd służący do listowania zawartości DVD. Jest on niezbędny do pracy programu. Na początek zajmiemy się zakładką General. W prawej części okna sprawdzamy, czy w polu Video source podana jest prawidłowa ścieżka do napędu, z którego będą odczytywane dane (domyślnie jest to /dev/dvd, ale możemy tu podać ścieżkę do innego urządzenia lub katalogu). Jeżeli w polu Video source podane jest prawidłowe urządzenie/katalog, a w napędzie znajduje się płyta DVD, klikamy przycisk Load, w wyniku czego w polu poniżej powinniśmy otrzymać pełną listę strumieni video znajdujących się na płycie. W innym przypadku należy sprawdzić, czy podana jest prawidłowa ścieżka do urządzenia oraz czy w napędzie znajduje się płyta DVD Video. Na liście strumieni danych zaznaczamy interesującą nas pozycję i przechodzimy do lewej części okna programu AcidRip. W polu Track title widzimy tytuł dysku. Tak samo będzie nazywał się plik wynikowy, o ile nie zmienimy tego w tym lub kolejnym polu - File Name (nazwa pliku). Tutaj też można ustawić rozszerzenie (nagłówek) pliku (do wyboru mamy .avi oraz .mpeg). W tym miejscu można też dodać do tytułu różne właściwości, które będzie posiadał plik wynikowy (poniżej lista dostępnych skrótów). Dodajemy je wpisując odpowiednią literę po znaku "%". Oznaczenia literowe właściwości kompresowanego pliku, które mogą być dodane do nazwy pliku: - T - tytuł ścieżki - N - numer ścieżek - L - długość ścieżki - F - pierwsza litera tytułu - w - szerokość - h - wysokość - b - wartość bitrate dla pliku video - l - język Następnie ustawiamy rozmiar (pole File size), ilość plików (pole # Files) oraz informacje o pliku. W tym miejscu należy pamiętać, że ustawienie dla filmów dwugodzinnych i dłuższych tylko jednego pliku o rozmiarze 700 MB będzie oznaczało, że materiał video będzie miał niską wartość Bitrate, a co za tym idzie - słabą jakość. Uwaga - Jeżeli zawartość jednego z tych pól będzie wyświetlana na czerwono, będzie to oznaczało, że na dysku/partycji, na którą będzie zapisywany kompresowany materiał nie ma dostatecznej ilości miejsca, aby pomieścić plik(i) wynikowe. Przechodzimy do wyboru ścieżki audio, która zostanie zripowana. Wybieramy ją z rozwijanej listy Language. W podobny sposób wybieramy enkoder dźwięku, do wyboru mamy: mp3lame (dźwięk mp3), lavc (mpeg warstwy 1,2 i 3) toolame (mpeg layer 1 i 2), pcm (wav), copy Prawa autorskie © VideoAudio.pl 2001-2008 (dźwięk nie będzie przetwarzany) oraz stopień o jaki zostanie wzmocniony dźwięk (Gain). Resztę ustawień należy wprowadzić ręcznie w polu Options (tutaj odsyłam do dokumentacji lame, lavc oraz toolame). Nie należy się tego bać, ponieważ AcidRip już na starcie ma zdefiniowane domyślne parametry dla mp3lame czy lavc. Wystarczy zmienić tylko wartość bitrate dla ścieżki audio lub w przypadku kodowania do formatu mpeg1/2 - zmienić kodek bibliotek lavc z mp3 na mp1 lub mp2/ W naszym przypadku wybieramy kodek mp3lame i zmieniamy wartość bitrate ze 128 na 96, dźwięk zachowa przyzwoitą jakość, a my będziemy mieli dodatkowe kilka megabajtów na ścieżkę video. Jeżeli film nie posiada polskiej ścieżki dźwiękowej, to będziemy musieli wyciągnąć z niego napisy. W tym celu przechodzimy niżej, do sekcji Other stuff. Funkcje tam umieszczone odpowiadają za wyciąganie z materiału DVD napisów oraz przekazywanie innych parametrów (tym razem już tekstowo) do programu Mencoder. Z rozwijanej listy Subtitle wybieramy język polski oraz zaznaczamy pole SubFile. Rys. 1. Okno główne programu wraz z polem komunikatów. Teraz przechodzimy do zakładki Video, która odpowiada za ustawienia kodeków video. Na Prawa autorskie © VideoAudio.pl 2001-2008 samej górze zakładki znajduje się rozwijana lista z kodekami, z obsługą których został skompilowany Mencoder. W tym miejscu sugeruję skupić się na trzech kodekach - na bibliotekach lavc czyli ffmpeg, XviD oraz x264. Pierwsza z wymienionych pozycji, lavc, stanowi część pakietu MPlayer i jest zawsze obecny na liście wyboru. Zwracam na niego uwagę ze względu na szybkość kodowania, możliwość kodowania ścieżek audio, spore możliwości konfiguracyjne (np. korzystanie z zewnętrznych matryc) oraz możliwość kodowania z wykorzystaniem wielu kodeków (mjpeg, h263, h263+, mpeg4, msmpeg4, mpeg1video, mpeg2video, ffv1 i kilku mniej popularnych). Jeżeli chodzi o szybkość kodowania to na nieco leciwym już sprzęcie: AMD Duron 1200 (FSB 200 MHz), 512 MB RAM (FSB 100 MHz) i HDD pracujący w trybie UDMA5 i przy użyciu kodeka mpeg4, Mencoder kodował 64 ramki (format 520X316) na sekundę przy jednoczesnej kompresji dźwięku do formatu mp3. Dla porównania przy kodeku XviD-0.9.1 były to 33-34 ramki, przy XviD-1.1 - 62 (pierwszy przebieg) i 17 (drugi przebieg), a przy x264 - 11-13 ramek na sekundę. Wybieramy np. kodek XviD i przechodzimy dalej. W tej samej linii co lista kodeków znajduje się okienko Passes, w którym ustalamy ilość przebiegów kodowania. Jeżeli wybierzemy 1 to ścieżki audio i video będą kompresowane jednocześnie. W przypadku kodowania dwufazowego kompresja dźwięku będzie odbywać się podczas pierwszego przebiegu, a materiału video w trakcie drugiego przebiegu. Jeżeli wybierzemy kodowanie trzyfazowe, to w pierwszej fazie zostanie skompresowany materiał audio, a w trakcie faz drugiej i trzeciej kodowany będzie tylko materiał video. Jeżeli materiał video będzie miał niską wartość bitrate (poniżej 1100) sugeruję wybrać kodowanie trzyprzebiegowe. Niżej znajduje się okienko Options, w którym możemy przekazać do programu Mencoder opcje kodeków (odsyłam do dokumentacji Xvida, ffmpeg i x264). W tym miejscu trzeba wymienić poważną niedogodność programu AcidRip. Program nie dysponuje znanymi z aplikacji dla systemu Windows lub z programu Avidemux, graficznymi konfiguratorami kodeków i wszelkie parametry trzeba przekazywać w postaci tekstu. Jednak nie jest to trudne, a wszystkie kodeki posiadają dobrą dokumentację, którą znaleźć można w katalogu /usr/share/doc (XviD, lavc) lub w przypadku X264 wywołać w konsoli poleceniem x264. Przekazując opcje kodeków programowi Mencoder należy pamiętać o jednej bardzo ważnej zasadzie - opcje podajemy po znaku dwukropka (:) zamiast myślnika, a w miejsce spacji wstawiamy znak równości (=). Niżej na zakładce Video znajdują się pola pozwalające na ustawienie bitrate kompresowanego materiału (to pole można odblokować zaznaczając pole Lock, wtedy z prawej strony pojawią się strzałki pozwalające na zmianę bitrate, będziemy mogli też wpisać go ręcznie), obok wyświetlana będzie informacja o ilości bitów na jeden piksel obrazu (zazwyczaj jego zawartość będzie wyświetlana na czerwono, ale tym nie należy się zbytnio przejmować, zwłaszcza jeżeli wartość przekroczy 0,200). Jeżeli na zakładce General ustawiliśmy wielkość pliku wynikowego, to AcidRip sam dobierze odpowiednią wartość bitrate i raczej nie ma sensu jej zmieniać. Filmy DVD Video często mają dosyć szerokie czarne pasy u góry i na dole ekranu. Można się ich pozbyć, a najłatwiej to zrobić używając narzędzia Crop. Najłatwiej to zrobić posługując się opcją Detect, która automatycznie ustawi optymalne opcje przycinania. Można też ustawić ręcznie wszystkie parametry, ale to rozwiązanie polecam raczej zaawansowanym koderom. Teraz przeskalujemy obraz używając narzędzia Scale. Zaznaczamy pola Scale, aby włączyć/wyłączyć skalowanie oraz Lock aspect aby zachować prawidłowe proporcje obrazu. Za pomocą strzałek ustawiamy pożądaną wielkość obrazu. Jeżeli zależy nam na czasie i zdecydujemy się na kodowanie jednoprzebiegowe to warto posłużyć się filtrami polepszającymi jakość obrazu, spowolni to nieco proces kompresji (przy użyciu filtra pp spadek wydajności wynosi około 10%), ale za to obraz pozbawiony będzie charakterystycznych bloczków. Aby uruchomić filtry przechodzimy na sam dół zakładki Video, gdzie znajdują się pola umożliwiające przekazanie do programu kodującego parametrów filtrów. Ze swojej strony mogę polecić użycie filtrów pp z opcją de (pp=de w polu Pre filters) oraz Prawa autorskie © VideoAudio.pl 2001-2008 hqdn3d równym 2:1:2 (hqdn3d=2:1:2 w polu Post filters). Drugi filtr warto użyć tylko w przypadku kompresji video z bitrate poniżej 850 kbps. Filtr pp sprawi, że obraz w kompresowanym materiale będzie pozbawiony charakterystycznych dla niskich bitrate kwadracików, drugi z filtrów, hqdn3d, usunie z obrazu szumy. Rys. 2. AcidRip - Zakładka ustawień Video. Teraz możemy zobaczyć podgląd obrazu po operacjach przycinania i skalowania. Przechodzimy do zakładki Preview i odznaczamy pole Embed (pozostawienie tej opcji spowoduje wyświetlenie podglądu osadzonego w oknie programu AcidRip), by zobaczyć obraz w faktycznym rozmiarze w osobnym oknie programu MPlayer. Zaznacznie opcji Flickbook sprawi, że jako podgląd zobaczymy tylko początki rozdziałów dostępnych w materiale DVD. Prawa autorskie © VideoAudio.pl 2001-2008 Rys. 3. Osadzony podgląd obrazu Przechodzimy do zakładki Queue. Wyświetla ona informacje o zadaniach, które oczekują na wykonanie. W polu Queue widzimy polecenia programów MPlayer i Mencoder, natomiast pod tym polem znajdują się dwa przyciski: Clear - czyści listę zadań, Export - zapisuje listę zadań jako skrypt powłoki, co umożliwia wykonanie w prosty sposób kompresji w momencie, kiedy możemy korzystać tylko z wiersza poleceń lub na innej maszynie. Rys. 4. Lista zadań na zakładce Queue Ostatnia zakładka Settings, pozwala na zmianę ustawień programu. Możemy tu wskazać inne niż domyślne położenie programów MPlayer, Mencoder i lsdvd, wskazać katalog tymczasowy Cache (sugeruję katalog tymczasowy w katalogu użytkownika /home/nazwa_uzytkownika/tmp). Dalej znajdują się opcje związane z buforowaniem materiału DVD na dysku. Opcja Cache DVD spowoduje zgranie materiału z płyty DVD na dysk twardy do wskazanej w polu Cache lokalizacji, a opcja Delete cacheusuwa po zakończeniu kodowania plik tymczasowy. Zaznaczenie Cache DVD spowoduje płynniejszą pracę Mencodera, a przy okazji oszczędzamy w ten sposób napęd DVD. Zaznaczenie opcji Overwrite files umożliwi programowi AcidRip nadpisywanie plików, natomiast opcja Shutdown spowoduje wyłączenie komputera po wykonaniu przez program wszystkich zadań. Opcja Compact Box decyduje o tym, czy po rozpoczęciu kodowania AcidRip zostanie przełączony do trybu kompaktowego, czy też pozostanie w trybie FullView. Użycie opcji Enforce size sprawi, że AcidRip będzie tak sterował Mencoderem, żeby plik wynikowy nie przekroczył wskazanego przez nas rozmiaru. Włącznie opcji PPC croping spowoduje, że do przycinania (kadrowania) materiału zostanie użyta mniej niezawodna, ale nieco szybsza metoda naprzemienna. Zaznaczenie pola Eject DVD, włącza funkcje wysuwania tacki napędu DVD po zakończonym zgrywaniu materiału. Na tej zakładce znajduje się jeszcze pole Language, w które możemy wpisać domyślny język ścieżki audio. Prawa autorskie © VideoAudio.pl 2001-2008 Rys. 5. Zakładka z ustawieniami programu AcidRip. Jeżeli wszystkie parametry pracy programu i pliku wynikowego mają już pożądane przez nas wartości, to pozostaje nam już tylko kliknięcie w przycisk Start i cierpliwe czekanie na zakończenie kompresji. Postęp możemy obserwować w prawej części okna programu, w sekcjach Cache status (pokazuje informacje o tym ile materiału zostało już zgrane do pliku tymczasowego) oraz w części Encoding status, gdzie program wyświetla komunikaty o postępie kodowania materiału, czasie, który pozostał do końca zgrywania, tempie kodowania oraz aktualnej wartości bitrate. Rys. 6. AcidRip w trakcie kompresji pracujący w trybie Compact W razie problemów warto zainteresować się zawartością znajdujacego się na samym dole interfejsu programu okna komunikatów. Okno to wywołujemy przyciskiem Debug. Oprócz okna komunikatów Output log znajdują się tam trzy dodatkowe przyciski - Save - zachowuje logi programu w pliku, Clear - czyści okno komunikatów, Hide - ukrywa okno komunikatów. Jak nie zepsuć kopii zapasowej filmu: 1. Zanim przystąpimy do właściwej konwersji, warto na próbę skompresować na przykład jeden z rozdziałów i sprawdzić, czy przy ustawionych przez nas parametrach kopia ma zadowalającą jakość Prawa autorskie © VideoAudio.pl 2001-2008 2. Przy stosowaniu kodeków XviD i x264 nie powinno się zbytnio kombinować przy wymiarach obrazu, a jeżeli jest to konieczne - pamiętać o tym, że wysokość klatki musi być podzielna przez 8 3. Jeżeli w ustawieniach programu ustawiliśmy domyślny język ścieżki audio na Polish, to przed rozpoczęciem konwersji filmu należy sprawdzić, czy ścieżka z tą wersją językową znajduje się na rozwijane liście Language w sekcji Audio w zakładce General. Jeżeli nie to należy ją zamienić na inną istniejącą, ponieważ w przeciwnym wypadku kopia filmu zostanie zapisana bez dźwięku 4. Warto poświęcić trochę więcej czasu na konwersję i skompresować materiał video w trybie dwuprzebiegowym. Jakość filmu będzie o wiele lepsza niż w przypadku kodowania jednoprzebiegowego. 5. Jeżeli AcidRip wyświetli komunikat Mencoder interrupted by user nie należy panikować i przeczytać informacje poprzedzające ten komunikat, które można znaleźć w polu Debug 6. Przy buforowaniu zawartości DVD na dysku należy pamiętać o tym, by katalog tymczasowy znajdował się na partycji z systemem plików obsługującym pliki o objętości ponad 4 GB (czyli FATy odpadają) oraz o tym, że użytkownik, z którego konta korzystamy, musi mieć prawo do zapisu na danej partycji czy w katalogu 7. Partycja, na którą zostanie zapisana kopia filmu, powinna mieć wystarczająco dużo miejsca, by pomieścić wszystkie pliki, które powstaną w wyniku konwersji materiału DVD do formatu AVI. Prawa autorskie © VideoAudio.pl 2001-2008