Multimedia

skróty: Wideo | Audio

Wstęp
Od ponad dwudziestu lat w dynamicznym rozwoju technologii komputerowej nie możemy jeszcze zapisywać w rozsądnym czasie np. do 20 minut nieskompresowanych materiałów audio i wideo. Musimy jeszcze trochę poczekać. Rewolucja w technologii komputerowej w tym zakresie kiedyś nadejdzie. Coraz większe możliwości elektroniki są niestety wykorzystywane przeciwko człowiekowi, pod płaszczykiem bezpieczeństwa i ochrony praw wprowadza się rozwiązania, które nawet Orwellowi się nie śniły.

Wydaje się, że mamy bardzo rozwiniętą technologię – elektronika w każdym urządzeniu, loty na orbitę okołoziemską, coraz lepsze samochody itp., a tymczasem komputery nie radzą sobie z nieskompresowanym strumieniem audio i wideo – jak podaje Wikipedia – 24 bitowy obraz PAL – patrz (MPEG) – w rozdzielczości 720×576 i prędkości 25 klatek na sekundę zajmuje prawie 30 MB. Wyraźnie widać, że ówczesny, ale i również obecny sprzęt nie jest wstanie poradzić sobie z ogromną ilością danych (obraz), dlatego zastosowano kompresję. Film to także dźwięk, który też można kompresować. Sekunda dźwięku jakości CD zajmuje 172 KB.
Dwugodzinny film zajmuje:
wideo – 7200 sek. x 30 MB = 216 000 MB ~ 211 GB
audio – 7200 sek. x 172 KB = 1238400 KB ~ 1,1 GB
z prostego rachunku wynika, że trzeba by mieć 49 standardowych płyt DVD o pojemności 4,4 GB. Wypalenie tychże płyt po 20 minut każda zajmie ponad 16 godzin.

W tekstach poniżej umieszczone będą praktyczne porady jak przygotować system operacyjny by odtwarzał filmy również te z telefonów. Wyżej umieszczone informacje są podane dla przykładu, bowiem nie potrzeby przepisywania Wikipedii. Dla początkujących polecam Ubuntu bo ma prawie wszytko co trzeba, m. in. świetny moduł do instalowania aplikacji. Później w trakcie używania można dostosować system do własnych potrzeb.


Wideo
Ważna informacja – fedora nie zawiera programów i kodeków, które mają niejasne czy wątpliwe sprawy licencyjne. Dlatego zaraz po zainstalowaniu nie można odtwarzać mp3, wma, wmv czy filmów mp4, a tym bardziej fedora nie odtwarza formatów używanych w telefonach takich jak 3gp, amr itp. Problemy mogą pojawić się również przy próbie podłączenia iPoda.

Mplayer
Do odtwarzania wideo używam mplayera, dlaczego mplayera? bo odtwarza prawie każdy format, te z telefonów również. Dokumentacja jest również w j. polskim. Oczywiście nie ma przeciwwskazań do używania innych programów typu Totem, Amarok czy Rhythmbox. Z podanej strony pobieramy kodeki, skórki i źródła i instalujemy, ale można zrobić to prościej. Wystarczy zainstalować repozytorium RPM Fusion a potem w menu System –> Administracja wybieramy Dodaj/usuń oprogramowanie przechodzimy na zakładkę multimedia i instalujemy. Można też zainstalować jako root w konsoli wystarczy wpisać „yum dnf -y install mplayer”. W przypadku debiana zamiast „yum dnf” wpisujemy „apt-get”.

Mencoder, ffmpeg
Kto nie lubi wiersza poleceń to zalecam zainstalowanie jeszcze programów takich jak ffmpeg i mencoder, który jest częścią mplayera oraz nakładki na wymienione programy Hyper Video Converter co prawda jest przeznaczony do środowiska KDE, ale z gnome pracuje bez zarzutu. Oczywiście są wersje na Windows wymienionych programów. Stacjonarne odtwarzacze nie odtwarzają w ten sposób przekodowanego filmu pod linuksem. Dlatego dla niektórych jedyna możliwość to przekodować film Windowsem.

Konwersja w windows

DVD na CD
1. Do przekonwertowania jednego filmu na płycie DVD 4,7GB potrzebne jest miejsce na dysku ok. 15-20 GB. Odtwarzacze stacjonarne powszechnie odtwarzają m. in. w formatach VCD (mpeg-1), SVCD (mpeg-2), coraz częściej zdarza się, że odtwarzają również w formatach AVI (Microsoftowy kontener danych audiowizualnych) i coraz popularniejszy mpeg-4.

2. Pliki z płyty DVD trzeba przenieść za pomocą jakiegoś rippera, bo płyta jest zakodowana. Po rozkodowaniu mamy prawie taką samą strukturę płyty tyle, że dane są odkodowane. Każdy z plików VOB to 1 GB bez napisów i czołówki.

3. Posiadane dane trzeba zmniejszyć. Można konwertować do formatów mpeg-4 np. kodekiem H264, AVI – rozszerzenie pliku wynikowego. Można również konwertować do formatów mpeg-1 i 2 czyli VCD i SVCD, ale strata jakości będzie wyraźna w stosunku do jakości DVD.

4. Przekształcenia w Windows dokonuję programem flask-mpeg kodekiem XviD. Teraz pewna sztuczka. Po zainstalowaniu programu flask-mpeg plik „mpeg.cm.flask” trzeba przenieść gdziekolwiek indziej. Następnie ściągniętą wtyczkę „bbmpeg.dll” kopiujemy do katalogu gdzie jest zainstalowany flask-mpeg i zmieniamy nazwę na „mpeg.cm.flask”.

5. Konfiguracja nowego „mpeg.cm.flask”: wybieramy w opcjach j. polski, potem trzeba otworzyć plik VTS_01_0.IFO i zanotować dokładny czas filmu w sekundach (będzie potrzebny później) i wybrać język ścieżki dźwiękowej i ewentualnie napisów. Teraz trzeba kliknąć „zaflaksuj to DVD”.

Rozmiary filmu
VCD 352×288
SVCD 480×576
PAL 768×576
HDTV 1280×720, 1920×1080
ps. formaty telewizyjne i rozdzielczości są dokładnie opisane w Wikipedii.

karta dzwięk
ustawienia dzwięku – dekoduj dzwięk,
częstotliwość próbkowania – 44100Hz.

karta zadania
zaznacz pole wyboru
HQ bicubic filtering
nie przycinaj
brak ramki
zachowaj stosunek

karta pliki
w pole „plik wyjściowy video”
wpisz nową nazwę z rozszerzeniem mpg.

karta ogólne
pole przeszukiwany rozmiar (KB) wpisz 30000, teraz czas filmu w sekundach (ważne) dodaj 2 sek. Dla uniknięcia problemów z synchronizacją obrazu i dźwięku sumę w sekundach pomnóż przez 25. Otrzymaną wartość trzeba wpisać w pole „czas kompilacji” i zaznaczyć opcję „ramek do przetworzenia”, kliknij ok.

6. Przy instalacji kodeków w systemie Windows (może być ich kilka) trzeba uważać na Divix SMR po jego zainstalowaniu reszta kodeków przestaje działać. W klasycznej wersji flask-mpeg bez wtyczki bbmpeg.dll czynności wyglądają następująco:
po zanotowaniu dokładnego czasu w sekundach w sekcji „DVD audio tracks” zaznacz język ścieżki dźwiękowej i napisów. Kliknij „zaflaksuj to DVD”.

7. W opcjach w ogólnych ustawieniach

karta obraz
zaznacz
częstotliwość obrazu, FPS, 25, MMX iDCT.
W sekcji „rozmiary filmu”
w pole szerokość 720,
w pole wysokość 576,
kliknij przycisk „pokaż pas edycyjny”. Zaznacz przytnij i klikaj (-) minus aż obramowanie zniknie. Teraz (+) plus, klikaj, aż górny pas zniknie. Te same czynności należy wykonać dla obramowania bocznego, wtedy widać ostateczną rozdzielczość filmu, kliknij (ukryj).

karta dźwięk
zaznacz pola – dekoduj dźwięk, częstotliwość próbkowania – taka sama jak wyjściowa.

karta zadania
jakość, zmiany wielkości filmu zaznacz
HQ bicubic filtering,
w części ustawienia przycięć, wyglądu i ramek zaznacz
zachowaj stosunek.

karta pliki
podaj katalog docelowy, sprawdź czy jest zaznaczona opcja „przetwórz cały plik”, potem opcje – wybierz format wyjściowy – zaznacz AVI output.

8. Stopień kompresji (bitrate) w KB/s
na karcie „videorate” dla AVI wpisz czas w minutach.

Kilka obliczeń.
(SVCD) Dodaj średni strumień video do wartości średniej strumienia audio. Zaleca się 1928 KB/s. Pomnóż sumę przez 1024 oraz przez czas trwania filmu w sekundach. Wynik należy podzielić przez 8388608. Wynik działania to objętość filmu w MB.
Dla formatu VCD wystarczy przeliczyć wartość 1374 KB/s x 1024 x czas filmu w sekundach i podzielić przez 8388608, wynik to objętość filmu w MB.

W drugą stronę:
702MB pojemności na płycie x 8388608 : 1024 : czas filmu w sekundach = suma strumieni kb/s

Uwaga: większa kompresja = gorsza jakość
9. Inne opcje
rate control averaging 2000 frames – film akcji, 300 frames – film spokojny
rate control reaction period 10 frames
rate control down/up reaction ratio 20
maximum quantizer 15
minimum quantizer 2
maximum key frame interval 300 frames
motion search range 128 film akcji, 64 film spokojny.

10. Przekształcenie 100 minut filmu DVD do formatu mpeg-4 kodekiem H264 trwa ok. 8 godzin na komputerze z procesorem 1 rdzeniowym 1,6 GHz.

11. Sprawdzamy synchronizację obrazu i dźwięku, jeśli jest ok. to palimy płytę, a jeśli nie to:
uruchomić virtualdub i otworzyć plik wideo
w menu video zaznaczyć opcję „direct stream copy” – bezpośrednie kopiowanie strumienia,
a w menu audio zaznacz „full procesing mode”.
Następnie audio compresion wybierz z listy kodek mpeg layer-3, a w oknie po prawej stronie wybierz atrybut 128 kb/s, 44kHz, stereo 8kb/s lub kodek audio windows media audio V2 z atrybutem 64kb/s, 44kHz, stereo for audio video, można zaoszczędzić ok. 0,5 MB na jedną minutę filmu w porównaniu do kodeka mp3. Jednak nie będzie jakości w standardzie płyty CD. Następnie kliknij audio wybierz „interleaving”, zaznacz „enable audio/video”, a w pole „preload” wpisz 500, w pole „interleave audio every” wartość 500 oraz pole „ms”. Następnie zapisz klikając menu file save as avi, nadając nazwę kliknij save. Proces przekształcenia i synchronizacji jest równoległy. Kiedy w oknie stanu (virtual dub status) wybierzesz „procesing thread priority – highest” i odznaczysz show input i output video to program (komputer) będzie pracował pełną mocą.

12. W przypadku kodowania wideo i audio dużymi strumieniami powstanie duży plik AVI, większy niż 2 GB, to nie będzie go można odczytać. Należy dobrać tak strumienie by kontener AVI był mniejszy niż 2 GB. Virtual dub domyślnie tworzy mniejsze AVI niż 2 GB. Jest wiele innych i dobrych programów służących do konwersji materiału wideo. Zwykle najlepszym doradcą jest … wujaszek googlaszek i ciotka wiki.

Tekst ten był pisany kilka lat temu, w tym czasie ewoluował również flask-mpeg, dlatego aktualnie zamiana nazwy biblioteki bbmpeg.dll nie jest konieczna. Pozostała część tekstu jest nadal aktualna. Informacje te mogą być z powodzeniem wykorzystywane przy pracy z innymi programami przetwarzającymi strumienie audio i wideo.

Audio
Do dużych zbiorów muzycznych trzeba przekonwertować pliki muzyczne na format mp3. Najlepiej robi to kodek lame 3.100. Do większości nagrań rockowych stosuję następujące opcje kodeka „lame -V 0 -q 0 -m j”, ale do nagrań symfonicznych, jazzowych czy metalowych polecam zrobić testy, bowiem każdy ma inny słuch. Nic nie stoi na przeszkodzie by przy większej ilości nagrań zastosować skrypt, właściwie linijkę kodu w pliku (po rozpakowaniu 174 bajty). Pobierz mkmp3.

np:
opcja (-V 0) to VBR najlepsza jakość (domyślnie -V 4)
opcja (-q 0) to usuwanie szumu i algorytmy akustyczne (domyślnie -q 3)
opcja (-m j) to joint stereo (lepsza jakość kodowania) poprzez wykorzystanie koleracji pomiędzy kanałami (ustawiona domyślnie).

Lame koduje całkiem niezłe mp3 nawet bez opcji, czyli na ustawieniach domyślnych. Można też skorzystać z ustawień wstępnych i wywołać lame z opcjami:
dla normalnych (lame ––preset standard),
dla odmieńców (lame ––preset medium),
dla p…ych (lame ––preset extreme) 😉

Wszystkie opcje są w podręczniku lame.