piątek, 15 lipca 2016

Stary PC a video – część 2

W poprzednim wpisie podrzuciłem kilka „rybek” w postaci plików filmowych odtwarzających się na różnych, niekoniecznie nowych i niekoniecznie wydajnych komputerach. Pora na „wędkę”, czyli garść porad, jak samodzielnie przekodowywać pliki video, dostosowując je do naszych potrzeb.

Podobnie jak w przypadku oglądania, także i tutaj obowiązuje prosta zasada: im wydajniejszy sprzęt, tym lepsza zabawa. Rzecz jednak w tym że sam proces kodowania plików, poza początkowym ustawieniem parametrów, nie wymaga żadnej interakcji z użytkownikiem. Jeśli więc obróbką filmów będziemy zajmowali się jedynie dorywczo, możemy wykorzystać stosunkowo słaby sprzęt, zajmując się innymi sprawami w czasie, gdy komputer będzie wykonywał ciężką robotę.

Zanim przejdziemy dalej chciałbym jednak przekazać kilka uwag. Obróbka filmów jest zagadnieniem skomplikowanym. Niektórymi aspektami, jak na przykład montażem (z małym wyjątkiem, o którym na końcu), nie będę się tutaj zajmował, bo na co dzień tego nie robię i się na tym nie znam. Jednak nawet sam proces przekodowywania może przyprawić o ból głowy, gdyż bywa bardzo „kapryśny”. Łatwo może się okazać, że po wielu godzinach oczekiwania otrzymamy plik miernej jakości, albo nieodtwarzający się na docelowym urządzeniu, albo z dźwiękiem przesuniętym w czasie w stosunku do obrazu i tak dalej. Wpływ na to może mieć bardzo wiele czynników: rodzaj i jakość materiału źródłowego (nawet plik w tym samym formacie, ale zapisany z innymi parametrami lub na innym urządzeniu może dać inne wyniki), użyty program przekodowujący, wybór kodeków i ustawione parametry kodowania, a nawet stan techniczny maszyny (problemy z dostępem do dysku mogą dać naprawdę „ciekawe” efekty).

Nic nie zastąpi własnego doświadczenia i prób. Jeśli już jednak testujemy, to na krótkich fragmentach filmu, bo inaczej na wynik będziemy czekać bardzo długo. Z drugiej strony fragment nie może być zbyt krótki, bo niektórych efektów możemy nie zauważyć. Moim zdaniem w większości przypadków wystarczy trzy do dziesięciu minut filmu, w zależności od tego, co chcemy testować.

1. Dobieramy oprogramowanie

Poniżej podaję kilka propozycji oprogramowania do przekodowywania plików filmowych. Jak zwykle jednym z podstawowych kryteriów (na potrzeby tego bloga) jest dla mnie możliwość uruchamiania aplikacji pod kontrolą Windows 98, ale to nie znaczy, że użytkownicy nowszych systemów nie znajdą tu czegoś dla siebie. Wszystkie programy były testowane pod Windows XP i powinny działać również (te, lub nowsze wersje), aż do Windows 8.1.

Zestaw może się wydawać dość rozbudowany i zawiera różne aplikacje, mogące służyć do tego samego celu. Tak na przykład przekodować plik do formatu AVI da się zarówno za pomocą Format Factory, AviDemux jak też VirtualDub. Chodzi jednak o możliwość wyboru alternatywnego programu w przypadku wystąpienia kłopotów opisywanych powyżej. Moim zdaniem jest to zestaw minimum.


Format Factory to nowoczesny i wygodny program do konwersji plików multimedialnych. Jeżeli chcemy przekodowywać filmy, koniecznie musimy go mieć na komputerze. Korzysta z własnego zestawu kodeków, co pozwala na niezaśmiecanie systemu. Problem w tym, że skoro to program nowoczesny, na pewno nie jest przeznaczony dla Windows 98. Rzeczywiście: nawet z zainstalowanym KernelEx program nie uruchamia się, wywołując komunikat błędu w bibliotece msvcr100.dll. Pomaga dopiero uaktualnienie do nieoficjalnej wersji KernelEx 4.5.2015.10 by jumper (oficjalnie KernelEx nie jest już rozwijany), oraz zainstalowanie biblioteki gdiplus.dll (plik po rozpakowaniu należy skopiować do katalogu C:\Windows\System). Podczas instalowania Format Factory pojawia się komunikat błędu, jak na załączonej ilustracji. Nie ma się czym przejmować, błąd dotyczy instalacji Ask Toolbar. Nawet lepiej, jeśli to badziewie się nie zainstaluje. Po zamknięcia komunikatu wszystko przebiega normalnie. Należy jeszcze tylko ustawić tryb kompatybilności na Windows XP SP2 (menu kontekstowe → zakładka KernelEx).

Mimo wszystko nie można oczekiwać, że pod Windows 98 wszystko będzie działało jak należy. Kłopoty sprawia na przykład tryb podglądu, wykorzystujący systemowy Media Player. Podgląd wprawdzie się uruchamia, ale nie ma nad nim żadnej kontroli. Może się też okazać, że nawet po zamknięciu okna, Media Player działa dalej w tle, obciążając procesor. No cóż: program nie jest przystosowany do współpracy z tą wersją odtwarzacza. Przydać się może Process Explorer (wersja działająca pod Windows 98 znajduje się tutaj), do „zabicia” upartego procesu. Mogą też wystąpić problemy z niektórymi kodekami, ale te podstawowe powinny działać.

Wersja 3.2 Format Factory nie jest najnowsza (w chwili pisania tego artykułu dostępna już była 3.9.0.1), ale wypróbowałem ją pod Windows 98, a ponadto jest dostępna w postaci pełnego pliku instalacyjnego, a nie loadera ściągającego właściwy program z Internetu (loader nie działa pod Windows 98).

Avidemux 2.6.8 (KernelEx)

To następna obowiązkowa pozycja w arsenale. Ten program do liniowej edycji plików video, opracowany pierwotnie dla Linuksa, po przeniesieniu do środowiska Windows sprawdza się świetnie. Oprócz zmiany kodowania pozwala na wycinanie fragmentów, łączenie plików, nakładanie filtrów itp. To znowu nie jest program dla Windows 98, wersja 2.6.8 działa jednak bardzo dobrze pod kontrolą tego systemu z zainstalowanym KernelEx (nowsze już nie).

Program korzysta z własnych kodeków. Obsługa może wydać się skomplikowana, zwłaszcza z powodu dużej liczby niezrozumiałych dla początkującego użytkownika ustawień, na szczęście nie musimy konfigurować wszystkiego, najlepsze ustawienia dla typowych zastosowań łatwo sobie wypracować, a dzięki społeczności aktywnych w Internecie użytkowników – łatwo o wsparcie.


VirtualDub to prawdziwy klasyk w dziedzinie liniowej edycji video. Zmiana parametrów kodowania, precyzyjne wycinanie i łączenie fragmentów, nakładanie filtrów, możliwość zmiany ścieżki dźwiękowej to tylko niektóre z możliwości, które w dodatku można rozszerzać przez instalowanie zewnętrznych „wtyczek”. Do tego dochodzi bardzo wygodny interfejs z jednoczesnym podglądem materiału wejściowego i wyjściowego, co pozwala na natychmiastową ocenę zastosowanych efektów. Program umożliwia ponadto przechwytywanie obrazu z zewnętrznych źródeł, takich jak kamery, tunery telewizyjne i inne, pod warunkiem, że w systemie Windows zainstalowane są odpowiednie sterowniki. W dodatku wszystko to za darmo i działa pod Windows 98 bez żadnych KernelExów czy innych rozszerzeń.

Niestety program ma też wady. Obsługuje mniejszą liczbę wejściowych formatów plików niż aplikacje opisane powyżej, między innymi nie jest obsługiwany format MOV, w którym został zakodowany nasz oryginalny film. Nie posiada własnej bazy kodeków, bazując na tych, które są zainstalowane w systemie. Na szczęście potrafi korzystać z ffdshow z całkiem dobrymi rezultami. Jeśli jednak chcemy mieć ścieżkę dźwiękową w popularnym formacie MP3, nie obejdziemy się bez kodeka Lame ACM.


TMPGenc to bardzo wyspecjalizowany program konwertujący pliki video z różnych formatów wejściowych do formatu MPEG-1 lub MPEG-2. Konwersja do tego ostatniego jest zresztą ograniczona czasowo do 30 dni, potem trzeba zapłacić. Za darmo pozostaje tylko MPEG-1.

Rodzi się wobec tego pytanie, po co nam w ogóle taki program, skoro inne, jak choćby Format Factory, również oferują konwersję do MPEG-1 i 2, a przy tym za darmo? Otóż, chociaż pliki MPEG mogą służyć do odtwarzania na bardzo słabych komputerach i urządzeniach przenośnych ze względu na minimalne wymagania systemowe dekodera, to jednak podstawowym ich zastosowaniem jest tworzenie płyt Video CD, o czym szczegółowo dalej. W tej zaś dziedzinie TMPGenc nie ma sobie równych.

Ostatnia wersja dostępna za darmo (z ograniczeniami podanymi powyżej) to 2.525. Działa bez problemu pod Windows 98, nie wymaga KernelEx.


Właściwie staram się nie pisać na tym blogu o programach wymagających minimum Windows XP, z prostego powodu: wielu już to zrobiło lepiej, niż ja mógłbym kiedykolwiek, wystarczy poszukać. Tym razem jednak robię wyjątek: programy Jacka Pazery polecam każdemu, kto choćby dorywczo zajmuje się transkodowaniem plików multimedialnych, a to ze względu na sposób podejścia do tematu.

Nie znajdziemy tu „bajeranckich”, rozbudowanych interfejsów (przeciwnie: można je chyba określić jako „siermiężne”), mnóstwa zagmatwanych funkcji, kombajnów do wszystkiego, którym brakuje już tylko gwizdka i wodotrysku. Zamiast tego – prosta zasada: w zależności od tego, z czego na co chcemy konwertować, wybieramy konkretny program, ustawiamy kilka opcji w prostym, ale przemyślanym i funkcjonalnym interfejsie, klikamy „KONWERTUJ” i... możemy zająć się czymś innym do czasu zakończenia operacji.

Aplikacje działają bardzo stabilnie i generują pliki wysokiej jakości. Tak trzymać!


Haali Media Splitter (obecnie Haali Matroska Splitter) to filtr DirectShow pozwalający otwierać nietypowe kontenery z materiałami video w plikach multimedialnych MKV (Matroska), MP4, OGG, OGM, AVI oraz MOV. Zawiera podstawowy zestaw kodeków wykorzystywanych w tych kontenerach, a we współpracy z ffdshow pozwala na odtwarzanie większości plików video. Jest niezbędny, jeśli chcemy konwertować nasz źródłowy plik MOV programem TMPGenc.

Wersja 1.7.189 jest bardzo stara (opublikowana 3.06.2007), ale w późniejszych zrezygnowano ze wsparcia dla Windows 98.


Zestaw narzędzi do operowania napisami do filmów. Umożliwia między innymi zgrywanie napisów z płyt DVD do plików tekstowych, wyświetlanie filmów z napisami w aplikacjach nie posiadających takiej funkcji, korektę synchronizacji napisów z materiałem filmowym itp. W skład pakietu wchodzą między innymi dwie „wtyczki” do VirtualDuba: VobSub – umożliwiająca dodanie napisów z plików VOB (DVD) i TextSub – pozwalająca na wkopiowanie do materiału video napisów znajdujących się w pliku tekstowym.

Podczas instalacji tego narzędzia spotkałem się z drobnym problemem. Otóż jeśli zaznaczymy instalację dodatków do VirtualDub-a jak na ilustracji (a należy zaznaczyć, zależy nam na nich), w dalszej kolejności pojawia się monit o wskazanie katalogu, w którym jest zainstalowany VirtualDub. Cokolwiek byśmy nie wskazali, zawsze wyświetli się komunikat o tym, że ścieżka jest nieprawidłowa. Dzieje się tak, gdyż kiedyś katalog na „wtyczki” nosił nazwę plugins, a w nowej wersji VirtualDuba – plugins32. Pliki textsub.vdf i vobsub_vd.vdf, o które właśnie nam chodzi, rozpakowują się jednak do katalogu VobSub (standardowo: C:\Program Files\Gabest\VobSub). Wystarczy je stamtąd przekopiować do podkatalogu plugins32 (przykładowo: C:\Program Files\VirtualDub-1.10.4\plugins32).


Jeśli mamy komputer skonfigurowany do oglądania filmów (patrz część pierwsza), ffdshow i DirectX na pewno mamy zainstalowane. Do przekodowywania przydadzą się tym bardziej.


To wprawdzie nie jest program do obróbki filmów, tylko do nagrywania płyt, ale bardzo wyspecjalizowany: służy wyłącznie do nagrywania Video CD. Wprawdzie większość aplikacji nagrywających, jak na przykład Nero, też to potrafi, VCDEasy jest jednak (ale tylko do tej wersji!) całkowicie darmowy, nie wyświetla żadnych reklam i nie instaluje w systemie żadnych dodatków.
Sam chętnie z niego korzystam.


Uwaga:
VCDEasy odwołuje się do nagrywarki CD wykorzystując sterownik Adaptec ASPI lub Nero. Jeden z nich musi być zainstalowany w systemie, jeżeli chcemy mieć możliwość bezpośredniego nagrywania płyt.

2. Przerabiamy nasz film

Skoro mamy już zebrane stosowne oprogramowanie, pora je zaprząc do pracy. Chciałbym jednak zaznaczyć, że wszystko o czym napiszę poniżej w żadnym razie nie pretenduje do wyczerpania tematu. Podaję jedynie kilka, mam nadzieję że przydatnych i inspirujących przykładów, zachęcając jednocześnie do własnych eksperymentów.

Z MOV na AVI

Na początek przygotowałem plik z filmem „Ukradnij ten film 2” nadający się do oglądania na słabszych komputerach. Jakość miała być przy tym wystarczająca do oglądania na ekranie laptopa lub monitora stacjonarnego o przekątnej do 15 cali, ale efekt okazał się całkiem niezły również na ekranie 32-calowego telewizora LCD.

Do wykonania takiej pracy doskonale nadaje się program Format Factory. Zastosowane ustawienia
przedstawione są na ilustracji, zrzut ekranu z Format Factory 3.2.0. W rzeczywistości do przygotowania przykładowego pliku została użyta wersja Format Factory 2.8.0, ustawienia i efekt końcowy są jednak takie same.

Plik wynikowy, dla tych którzy nie mają ochoty na wykonanie eksperymentu samodzielnie, znajduje się tutaj (do oceny jakości plik należy pobrać, nie korzystając z odtwarzacza serwisu Chomikuj.pl).

Operacja wykonana na moim laptopie Toshiba (przypominam parametry: Procesor Pentium III 500 MHz, 192 MB RAM), zajęła około czterech godzin. Długo? Pewnie że długo, jak na film trwający 44 minuty. Łatwo policzyć, że obróbka dwugodzinnego filmu na takim sprzęcie zajęłaby w przybliżeniu 12 godzin. Jak jednak wspomniałem wcześniej, proces nie wymaga żadnej interakcji z użytkownikiem. Można uruchomić zadanie i zająć się innymi sprawami, choćby udać się do pracy albo pójść spać (pod warunkiem, że komputer nie stoi w sypialni!). W ten sposób nasz wiekowy sprzęt potrafi przerobić plik video, którego nie był w stanie odtworzyć!

Robimy Video CD

Video Compact Disk (VCD) to standard zapisu cyfrowego strumienia audio-video na zwykłej płycie kompaktowej opracowany w 1993 roku, a więc na dwa lata przed DVD. Specyfikacja tego formatu (dla obowiązującego w Polsce przed wprowadzeniem telewizji cyfrowej standardu PAL) przedstawia się następująco:
  • Kodek: MPEG-1
  • Rozdzielczość: 352 x 288
  • Format: 4:3
  • Liczba klatek na sekundę: 25
  • Strumień danych: 1150 kbit/s
Z założenia jakość obrazu miała być porównywalna do kasety VHS, jest to jednak sprawa dyskusyjna, ze względu na występujące artefakty kodowania i niższą rozdzielczość, zwłaszcza pionową. Z drugiej strony, w obrazie nie występują szumy charakterystyczne dla taśmy analogowej, lepsze jest też odwzorowanie konturów powierzchni barwnych (brak „obcięcia” pasma). Moim zdaniem jakość uzyskiwana z bardzo dobrej, nowej kasety VHS, odtwarzanej na wysokiej klasy magnetowidzie, jest lepsza, ze względu na wyższą „ostrość” obrazu. Jednak z przeciętną kasetą wygrywa już VCD.

Standard Video CD był w swoim czasie bardzo popularny w Chinach i wykorzystywany komercyjnie: filmy na płytach CD można było normalne kupić w sklepie. Były znacznie tańsze niż wchodzące dopiero na rynek DVD i kompatybilne z większością stacjonarnych odtwarzaczy. Również w Polsce można było kupić płyty VCD, zwłaszcza jako dodatki do gazet czy czasopism, gdzie chodziło o maksymalne ograniczenie kosztów. Sam mam kilka takich w swojej kolekcji. Wadą było to, że aby zmieścić pełnometrażowy film potrzebne były dwie lub trzy płyty.

Obecnie płyty VCD podzieliły los kaset VHS: jakość obrazu, wystarczająca dla telewizorów kineskopowych, okazała się zbyt niska dla współczesnych, wielkoekranowych odbiorników. Jeśli jednak chcemy tanim kosztem, posługując się zabytkowym komputerem PC, przygotować płytę z naszym filmem dającą się odtworzyć w stacjonarnym odtwarzaczu (nawet nieobsługującym DivX), zachęcam do dalszej lektury. No a jakość? Może Was pozytywnie zaskoczyć, zwłaszcza w tych fragmentach filmu, gdzie nie występuje szybki ruch i drobne szczegóły („gadające głowy”).

Materiałem wyjściowym do nagrania na płytę będzie plik video zakodowany kodekiem MPEG-1, który przygotujemy programem TMPGEnc. Wprawdzie niemal wszystkie programy do przekodowywania video mogą tworzyć pliki zgodne ze standardem VCD, jednak uważam, że tylko TMPGEnc tworzy pliki o jakości obrazu porównywalnej z oferowaną przez płyty nagrane „fabrycznie”. Ponadto wyjątkowe możliwości konfiguracji programu, pozwalające wpływać na większość parametrów kodowania, umożliwiają, kosztem pewnych odstępstw od standardu, uzyskanie lepszej jakości obrazu lub zmieszczenie dłuższego filmu na jednej płycie, o czym jednak nieco dalej.

Przyglądając się jednak uważnie specyfikacji VCD, zauważyliście być może dwie istotne trudności: po pierwsze – standard nie przewiduje innej proporcji boków obrazu niż 4:3, podczas gdy nasz film ma proporcje 16:9, po drugie – standard nie przewiduje odrębnej ścieżki z napisami, a myślę, że większość widzów chciałaby mieć podgląd polskiego tekstu.

Zajmijmy się najpierw drugim problemem. Najprościej to zrobić korzystając z funkcji wyświetlania napisów ffdshow, najpierw jednak musimy „przekonać” TMPGEnc, aby przy odczytywaniu źródłowego pliku video korzystał właśnie z tego kodeka.

Po uruchomieniu TMPGEnc zamykamy okno z informacją o ograniczonym czasie działania kodeka MPEG-2 (można zaznaczyć, żeby nie pojawiało się ponownie), następnie zamykamy Project Wizzard i otwieramy „Option” → „Preferences” → „VFAPI plug-in”. W oknie dialogowym odnajdujemy „DirectShow Multimedia File Reader” i klikając prawym klawiszem myszy zwiększamy jego priorytet, tak aby znalazł się na początku listy, jak na ilustracji (pamiętamy, że ffdshow to w istocie filtr DirectShow?).

Pora na konfigurację samego ffdshow. Z menu „Start” → „Programy” → „ffdshow” uruchamiamy „Konfiguracja dekodera video ffdshow”. Włączamy napisy i zwiększamy rozmiar czcionki do 150% w pionie i w poziomie (ilustracja). Czcionki muszą być duże, żeby napisy były swobodnie czytelne z większej odległości (przy oglądaniu Video CD odległość od ekranu zwykle zwiększamy, aby mniej nam przeszkadzały artefakty).

Zadbajmy jeszcze, żeby plik tekstowy z napisami miał taką samą nazwę (rozszerzenie oczywiście inne) i znajdował się w tym samym katalogu, co nasz plik video.

Teraz możemy już wrócić do wizzarda („File” → „Project Wizzard”), wybrać Video CD – PAL i otworzyć źródłowy plik MOV z filmem. Pamiętajmy, że musimy mieć zainstalowany Haali Media Splitter, inaczej nic z tego! Ustawmy „Video type: Progressive” i „Aspect ratio: 16:9 625 line (PAL)”. Otworzy się okno dialogowe „Filter setting” w którym zaznaczamy „Source range”. W rzeczywistości nie chodzi nam wcale o ograniczanie zakresu, tylko o okno podglądu, które się pojawi po wybraniu tej opcji. Przesuwamy suwak i sprawdzamy, czy w obrazie filmowym pojawiają się napisy. Jeśli tak, to klikamy „Cancel”. W kolejnym oknie „Bitrate setting” możemy ocenić, czy wynikowy plik zmieści się na płycie CD. Nasz film jest krótki, zostanie więc jeszcze spory zapas. Kliknijmy jednak przycisk „Expert” i wybierzmy zakładkę „Advanced”.

Interesuje nas szczególnie zawartość pola „Positioning method”. Standardowo jest tam „Full screen”. Jeśli tak zostawimy, to przy odtwarzaniu wykonanej płyty obraz zostanie rozciągnięty w pionie, tak żeby proporcja boków wynosiła 4:3 (standard VCD). W takim przypadku właściwie każdy film powinien mieć tytuł „Chudy i chudszy”. Znam osoby, które w taki sposób oglądają telewizję, zwłaszcza że tak traktują obraz szerokoekranowy niektóre sieci kablowe. Mnie to jednak strasznie denerwuje, spróbujemy więc uzyskać obraz o prawidłowych proporcjach.

Wybierzmy zatem „Positioning method: Center (custom size)” wprowadźmy szerokość obrazu 352 piksele (zgodnie ze standardem)... No tak: ale jaka powinna być wysokość? Zgodnie ze standardem to 288 pikseli, ale wtedy proporcje byłyby 4:3. Łatwo policzyć, że dla 16:9 wysokość obrazu powinna być mniejsza i wynosić 215 pikseli. Ze względów technicznych szerokość i wysokość obrazu powinny jednak być wielokrotnością 16, w przeciwnym razie większość odtwarzaczy nie będzie w stanie poprawnie zdekodować pliku. Mamy zatem do wyboru: 208 pikseli (13x16) lub 224 piksele (14x16). Wybierzmy tę drugą wartość: wprawdzie obraz będzie lekko rozciągnięty w pionie, ale nieznacznie, wykorzystamy zaś nieco lepiej powierzchnię ekranu (w przypadku telewizora lub monitora 4:3), oraz dostępną, jakże niewielką rozdzielczość pionową. Niech więc zaawansowane ustawienia kodowania MPEG wyglądają jak na ilustracji.

Co się stanie podczas odtwarzania? Odtwarzacz „wie”, że obraz VCD ma proporcje 4:3, jednak rzeczywista wysokość obrazu jest mniejsza niż standardowa. W takim przypadku obraz zostanie uzupełniony czarnymi pasami na górze i na dole, do pełnej wysokości. Tak właśnie powinno być!

No a co, jeśli odtwarzamy na nowoczesnym odbiorniku z ekranem o proporcjach 16:9? Wtedy mamy zwykle dostępną funkcję dostosowywania proporcji, która pozwoli nam „odciąć” czarne pasy i rozciągnąć obraz na cały ekran. Tak więc nasza płyta VCD będzie kompatybilna z każdym telewizorem.

Możemy już zaakceptować zawartość kolejnych okien dialogowych i uruchomić kodowanie. Na mojej Toshibie trwało to około 4 godziny, ale z lepszym procesorem będzie zdecydowanie szybciej.

Odczekaliśmy te kilka godzin i już mamy plik wynikowy. Jeśli ktoś nie chce tracić czasu, może od razu pobrać gotowy stąd. Możemy teraz zapisać go na płytę CD. Możemy, ale to nie będzie Video CD!

Standardowa płyta VCD ma specjalny nagłówek (inny niż w przypadku płyt audio czy płyt z danymi) i określoną strukturę plików. Program, którym nagrywamy takie płyty, musi to „umieć”, co sprowadza się zwykle do tego, że występuje w nim opcja „Video CD”. Możemy też użyć wyspecjalizowanego programu, jakim jest VCD Easy.
Dla leniwych, albo tych którzy nie mają czasu a chcieliby szybko sprawdzić jak płyta Video CD odtwarza się na ich sprzęcie, przygotowałem płyty w postaci plików BIN/CUE (należy pobrać oba pliki). Obraz może być przeniesiony na płytę przy pomocy dowolnej aplikacji nagrywającej obsługującej ten format.

kVCD – „lepsze” VCD

Płyta VCD ma dwie podstawowe wady: pierwsza to niska jakość obrazu (o czym już dużo napisałem), druga to ta, że na jednej standardowej płycie można umieścić do 80 minut materiału filmowego (korelacja z 80 minutami muzyki na płycie CD Audio nie jest przypadkowa). Każdej z tych wad (ale nie obydwu naraz) możemy częściowo zaradzić, odchodząc jednak od standardu.

TMPGenc umożliwia nie tylko głęboką ingerencję w proces kodowania MPEG poprzez modyfikowanie tablicy kwantyzacji i zmiany grupowania ramek obrazu, ale także odczytywanie konfiguracji z szablonów. Umożliwiło to na przygotowanie szablonów z ustawieniami pozwalającymi na poprawę jakości obrazu, lub zwiększenie ilości materiału filmowego na jednej płycie nawet do 120 minut (kosztem dalszego pogorszenia jakości, niestety).

Ceną za to jest obniżenie kompatybilności: niektóre stacjonarne odtwarzacze (ale jest ich niewiele) „nie tolerują” kVCD. Nie ma tu żadnej reguły, w końcu działamy poza standardem. Jedynym sposobem na sprawdzenie, czy nasz odtwarzacz akceptuje kVCD, jest przygotowanie płyty i próba jej odtworzenia.

Przykładowe szablony kVCD umieściłem tutaj. Archiwum należy rozpakować w podkatalogu Template TMPGenca (np. C:\Program Files\TMPGEnc\Template). Po tej operacji „Project Wizzard” udostępni nam dodatkowe formaty (ilustracja), nic tylko eksperymentować.

Do celów porównawczych przygotowałem plik Steal This Film II kVCD.mpg korzystając z szablonu KVCD-CQ-352x576-_PAL_-PLUS. Zwiększenie rozdzielczości pionowej w porównaniu ze standardem zaowocowało wrażeniem lepszej ostrości obrazu, przy czym wielkość pliku zwiększyła się tylko nieznacznie.

Uwaga:
Z niezrozumiałych dla mnie powodów (być może po to, żeby bardziej „optymistycznie” oszacować rozmiary generowanych plików) w części szablonów nie uwzględniono ścieżki dźwiękowej. Nie jest to wielki problem, można uzupełnić konfigurację „ręcznie” (pod warunkiem, że się o tym pamięta), można też zmodyfikować szablon (to jest plik tekstowy).

Dygresja
Jeśli już teraz wpadł komuś do głowy pomysł, żeby przegrać zasoby domowej wideoteki z kaset VHS na płyty VCD (lub kVCD) – szczerze odradzam. Szumy taśmy analogowej są traktowane przez kodek jako szybko zmieniające się, drobne elementy obrazu, które należy zakodować. Efektem jest bardzo kiepska jakość (mnóstwo artefaktów). Jeśli mimo to ktoś chciałby spróbować, polecam włączenie filtru odszumiającego w TMPGEnc (Noise reduction) i ustawienie takich parametrów, przy których szumy znikną niemal całkowicie (ale drobne elementy obrazu znikną też).

Jeśli ktoś doczytał aż do tego momentu – moje gratulacje! Może się jednak okazać, że jeśli tylko mamy w miarę nowoczesny odtwarzacz stacjonarny (z obsługą DivX i Xvid) i nie mamy ambicji, żeby nasze płyty były kompatybilne z każdym odtwarzaczem, całe to Video CD możemy spokojnie odłożyć do lamusa. Znacznie lepszą jakość uzyskamy nagrywając po prostu na płytę nasz plik AVI (jako plik). Dobry odtwarzacz sobie z tym poradzi.

Robimy DVD

Tyle się rozpisałem o VCD, a czy nie dałoby się przypadkiem samodzielnie zrobić DVD? W końcu jakość obrazu z takiej płyty jest bez porównania lepsza. Owszem, da się, ale... nie pod Windows 98. Potrzebny jest specjalny program do przygotowywania DVD. Takich aplikacji jest całkiem sporo, zarówno darmowych, jak i komercyjnych, wszystkie jednak mają wspólną cechę: wymagają co najmniej Windows 2000 lub nawet XP. O takich zaś nie piszę, bo wielu bardzo dobrze zrobiło to przede mną.

Jeśli jednak mogę coś z tego miejsca nieśmiało zaproponować, to do pierwszych eksperymentów polecam DVD Flick. Program ten wprawdzie nie jest już rozwijany, ale ma minimalne wymagania systemowe i jest bardzo prosty w obsłudze. Szczególnie łatwo robi się w nim płyty DVD pozbawione menu startowego, co osobiście bardzo lubię: wkładam płytę do odtwarzacza i od razu rozpoczyna się odtwarzanie filmu, żaden wybór scen i inne takie „wynalazki” nie są mi potrzebne. Polecam jednak zadbać o to, żeby źródłowe pliki filmowe miały od razu właściwe proporcje obrazu (jeśli tak nie jest – przekodujmy). Korekta tego w DVD Flick daje zwykle efekty niezgodne z oczekiwaniami.

Mobilne video

Trzeba sobie jasno powiedzieć: współczesne urządzenia mobilne są w stanie odtworzyć niemal każdy plik video, w zasadzie nie ma więc o czym pisać. Ten blog dotyczy jednak starych komputerów, mam więc na myśli takie urządzenia mobilne jak Pocket PC, odtwarzacze MP-4 czy stare telefony z możliwością odtwarzania multimediów (które jeszcze nie nazywały się „smartfonami”). Dla takich urządzeń potrzebny jest stosunkowo niewielki strumień danych (żeby słaby procesor się „wyrobił”), mniej istotna jest natomiast jakość obrazu (niewielkie, o niskiej rozdzielczości wyświetlacze). Do tych właśnie zastosowań wymyślono format 3GP.
Przykładowy plik video o wysokiej (jak na 3GP) jakości przygotowałem (pod Windows XP) za pomocą programu Pazera Free Video to 3GP Converter. Parametry zostały ustawione jak na ilustracji. „Gotowiec” dla leniwych albo zapracowanych leży tutaj.

Wszystko byłoby dobrze, gdyby nie jeden, tyci, tyci problem. Na moim Pocket PC nie udało mi się uzyskać wyświetlania napisów z pliku tekstowego. Po długiej szarpaninie z konfiguracją odtwarzacza (TCPMP 0.81) postanowiłem w końcu obejść problem i wkopiować napisy do materiału filmowego, podobnie jak to zrobiłem w przypadku Video CD.

Rzecz jednak nie jest taka prosta: nie można użyć funkcji wyświetlania napisów ffdshow, bo Pazera 3GP Converter (a także np. Format Factory) ma własny zestaw kodeków i po prostu z niego nie skorzysta. Zdecydowałem się na kodowanie dwuetapowe: najpierw przygotowałem plik AVI z wkopiowanymi napisami, a następnie ten plik przekodowałem do 3GP.

Do przygotowania pliku pośredniego możemy wykorzystać na przykład program VirtualDub z zainstalowanym filtrem TextSub (będzie dostępny po zainstalowaniu VobSub). VirtualDub nie obsługuje niestety plików MOV, dlatego jako źródłowy wykorzystałem plik AVI przygotowany za pomocą Format Factory. Powoduje to oczywiście obniżenie jakości, ale po przekodowaniu do 3GP jakość i tak „poleci na łeb”, nie ma więc się czym przejmować.

Po wczytaniu pliku do VirtualDuba pora na konfigurację. Ścieżka dźwiękowa nie będzie modyfikowana, dlatego w menu „Audio” zostawiamy zaznaczenie przy „Direct stream copy”. W menu „Video” natomiast, gdzie powinna być zaznaczona opcja „Full processing mode” klikamy „Filters” i tu właśnie zaczyna się zasadnicza konfiguracja.

Najważniejsza sprawa: obraz z wkopiowanymi napisami nie powinien być w dalszym procesie kodowania przeskalowywany, gdyż czcionki stracą na czytelności. Zatem pierwszym filtrem, który dodamy, będzie „resize” i ustawimy rozmiar obrazu na 352 x 288.

Następnie dodajemy filtr TextSub i wczytujemy plik z napisami. Po zamknięciu okna przesuwamy suwak: w oknie z podglądem materiału wyjściowego powinny pojawić się napisy. Jest tylko jeden problem: TextSub nie obsługuje napisów w formacie TXT, proponuję więc posłużyć się plikiem w formacie SMI stąd.

Właściwie najlepiej byłoby teraz rozpocząć przekodowywanie („File” → „Save as AVI”), ale wtedy VirtualDub zapisze nasz film w pliku nieskompresowanym. To daje najlepszą jakość, ale potrzebujemy dużeeeeeego twardego dysku.

Aby uniknąć wygenerowania gigantycznego pliku otwieramy „Video” → „Compression”. Powinien być dostępny „ffdshow video codec”. Wybieramy go, klikamy „Configure” i ustawiamy parametry jak na ilustracji.
Duża wartość bitrate sprawi, że utrata jakości będzie stosunkowo niewielka, przy akceptowalnych rozmiarach pliku (warto poeksperymentować z tą wartością).
Teraz już możemy zapisać nasz pośredni plik AVI, a następnie przekodować go do docelowego formatu 3GP. Ponownie posłużyłem się programem pana Pazery. Ostateczny efekt możecie ocenić po pobraniu tego pliku, ale gorąco zachęcam do wygenerowania go samodzielnie.

Wycinamy reklamy

Jeśli materiałem wyjściowym do dalszej obróbki jest plik video zawierający reklamy, warto się ich pozbyć. Nie tylko zabierają czas i denerwują widza (zwłaszcza oglądanie starych reklam po kilku latach jest kompletnie bez sensu), ale przede wszystkim bardzo wydłużają czas przekodowywania, gdyż w zależności od wydajności procesora długość każdej reklamy mnoży się razy kilka lub kilkanaście.

Rodzi się pytanie: wycinać reklamy przed przekodowaniem pliku, czy też może po? Z uwagi na to, co napisałem powyżej, odpowiedź wydaje się jednoznaczna: przed. Jest jednak wyjątek od tej reguły: jeśli sprzęt, na którym dokonujemy operacji, jest na tyle mało wydajny, że nie jest w stanie płynnie odtworzyć źródłowego pliku (jak w przypadku mojego laptopa i pliku MOV w wysokiej rozdzielczości), próba jakiejkolwiek obróbki przed kodowaniem nie powiedzie się: program będzie „mulił” tak przeraźliwie, że nic się nie da zrobić. Lepiej wtedy przekodować całość do bardziej „strawnej” postaci (godząc się na dużo dłuższy czas operacji) i do dalszej obróbki wykorzystać plik wynikowy.

Do wykonania zadania wykorzystamy Avidemux. Po wczytaniu pliku źródłowego ustawiamy parametry kodowania wynikowego pliku („Copy” jeśli operację wykonujemy po przekodowaniu). Następnie ustawiamy kursor na ostatniej klatce kluczowej przed reklamą i klikamy „A”, po czym ustawiamy kursor na pierwszej klatce kluczowej za reklamą i klikamy „B”. Ważne jest, aby nawigować wyłącznie po klatkach kluczowych (inaczej cięcie nie będzie precyzyjne), do dokładnego ustawienia pozycji wykorzystujemy więc przyciski oznaczone na ilustracji czerwoną obwódką (a nie te ze strzałkami). No a co dalej? Skoro trzeba coś usunąć, to klawisz „Delete” na klawiaturze i gotowe! W ten sam sposób traktujemy wszystkie reklamy, po czym zapisujemy plik (czyli uruchamiamy przekodowanie).

Jeśli wszystko zostało dobrze zrobione, to podczas oglądania filmu widz nie ma prawa zauważyć, gdzie były reklamy.

Bardzo podobnie wykonuje się powyższe operacje w programie VirtualDub. Moim zdaniem ma on wygodniejszy interfejs: dwa okna podglądu dla materiału wejściowego i wyjściowego, przyciski przewijania do następnej sceny (identyfikacja sceny następuje na podstawie detekcji różnic pomiędzy sąsiednimi klatkami – nie zawsze działa niezawodnie), wygodniejsza konfiguracja, jednak mniejsza liczba obsługiwanych formatów plików wejściowych i częstsze występowanie braku synchronizacji obrazu i dźwięku ogranicza jego stosowanie.

niedziela, 19 czerwca 2016

Stary PC a video – część 1

Niektórzy z czytelników, zwłaszcza ci, którzy niedawno kupili nowe PC, bo na starym „zacinały się” filmy na YouTube, zapewne teraz pukają się w głowę. Czy ten człowiek przypadkiem nie zwariował? O czym on pisze! Stare PC i video? Przecież każdy wie, że do płynnego odtwarzania filmów na komputerze potrzeba dobrego (czytaj: wydajnego) sprzętu!

W zasadzie to wszystko prawda: im lepszy sprzęt, tym większe możliwości i przyjemność zabawy z multimediami. Postaram się jednak udowodnić, że również posiadając bardzo stary komputer możemy nie tylko obejrzeć film, ale nawet nieco go przerobić dostosowując do własnych potrzeb i możliwości posiadanych urządzeń.

Umówmy się jednak od razu: nie będę tu pisał o YouTube, ani ipla, ani o żadnych innych serwisach internetowych pokazujących filmy w odtwarzaczu będącym elementem strony WWW, czy też wymagających instalowania dedykowanych aplikacji. Nie podam też czarodziejskiego sposobu na odtworzenie materiału Full HD na komputerze z procesorem Pentium 1 GHz, bo takiego po prostu nie ma. To będzie materiał o video w starym stylu, kiedy to monitory LCD były niesamowitą nowością charakteryzującą się małymi rozmiarami i dużymi cenami, podstawową częścią odbiornika telewizyjnego była lampa kineskopowa, a udostępnienie filmu w Internecie polegało na skopiowaniu pliku na serwer i utworzeniu linku na stronie.

Na potrzeby tego artykułu potrzebowałem jednak przykładowego materiału filmowego, który mógłbym swobodnie przerabiać i publikować, zaś czytelnicy – pobierać i odtwarzać, bez oskarżeń o piractwo i związanych z tym szykan. Najlepiej byłoby oczywiście, gdyby to był mój film, ale nie jestem filmowcem i nie dałbym rady stworzyć choćby odrobinę interesującego dzieła. Istnieje jednak film, który jest naprawdę interesujący (koniecznie obejrzyjcie w całości), a przy tym nie obłożony ograniczeniami dotyczącymi kopiowania, przeciwnie: autorzy zachęcają do rozpowszechniania go na wszelkie możliwe sposoby. To „Ukradnij ten film II”. Oryginalny plik, w rozdzielczości 1284x702 umieściłem tutaj. Polskie napisy do filmu można pobrać stąd.

Uwaga: w celu powtórzenia doświadczeń opisanych w tekście pliki należy pobierać, nie korzystając z odtwarzacza serwisu chomikuj.pl.

Jeśli po pobraniu tego filmu jesteście w stanie odtworzyć go płynnie na swoim komputerze, to znaczy, że Wasz sprzęt wcale nie jest jeszcze taki stary (przynajmniej posługując się kryteriami dinozaura). Jednak na moim laptopie Toshiba (Pentium III 500 MHz), czy stacjonarnym Siemens Scenic (Pentium III 540 MHz) o odtworzeniu czegoś takiego można tylko pomarzyć. Czy w takim razie jedynym wyjściem jest dać sobie spokój ze starym złomem i kupić szybszy komputer? Niekoniecznie. Plik video można bowiem przekodować i to nawet na takim sprzęcie, jak wyżej wymieniony.

1. Kino na starym PC

Zanim jednak o obróbce, zatrzymajmy się jeszcze na moment nad zagadnieniem odtwarzania. Zwykle potrzebne są do tego dwa programy: aplikacja odtwarzająca (co jest oczywiste), oraz kodek (od koder/dekoder) – rodzaj sterownika zdolny wyodrębnić obraz i dźwięk ze skompresowanego pliku.

Użytkownicy Windows mają zwykle zainstalowaną co najmniej jeden program do odtwarzania multimediów, jakim jest Media Player. Nie jest to wprawdzie najlepsza aplikacja tego typu, ale filmy daje się oglądać. Gorzej z kodekami: formatów kodowania plików video jest co najmniej kilkadziesiąt, a wiodących – kilkanaście. Jeśli jednak używamy Windows 98, 2000 lub nawet XP, to standardowo w systemie mamy zainstalowanych tylko kilka kodeków, starych i mało popularnych ze względu na niski stopień kompresji (a nieskompresowane lub słabo skompresowane materiały video to naprawdę ogromne ilości danych).

Poniżej postaram się przedstawić kilka programów, które mogą się przydać przy odtwarzaniu filmów na starym PC. Wybór jest bardzo subiektywny, wszystkie prezentowane programy spełniają jednak dwa kryteria: bardzo wysoka wydajność i niskie wymagania systemowe (zwykle kosztem „bajerów” interfejsu i dodatkowych funkcji), oraz kompatybilność z Windows 98.


VLC Media player to jeden z najlepszych odtwarzaczy multimedialnych dla PC. Charakteryzuje się bardzo dużą wydajnością, co oznacza że można płynnie odtwarzać pliki filmowe nawet na stosunkowo słabym sprzęcie. Dodatkową zaletą jest to, że dysponuje on własnym zestawem kodeków, co pozwala na nie instalowanie ich w systemie operacyjnym. Wersja 0.8.6i jest ostatnią z oficjalnym wsparciem dla Windows 98. Po zainstalowaniu KernelEx można uruchamiać również nowsze wersje odtwarzacza, aż do 2.0.5 (tryb kompatybilności należy pozostawić domyślny), a nawet, z pewnymi ograniczeniami, do 2.2.4. Pamiętać jednak należy, że nowsze wersje programu nie mają już tak zadziwiającej wydajności, oraz mają większe wymagania systemowe. Osobiście, po przeprowadzeniu wielu prób, zalecam dla Windows 98 wersję 0.8.6i. No a co, jeśli jakiś plik nie chce się odtwarzać? Mamy trzy wyjścia: spróbować w innym odtwarzaczu, przekodować plik (o czym w drugiej części), lub przenieść się na komputer z nowszym systemem operacyjnym, co pozwoli uruchomić nowszy odtwarzacz i użyć nowszych kodeków.

Media Player Classic 6.4.9.0

Media Player Classic to według mnie najwydajniejszy z odtwarzaczy multimedialnych. Interfejs wprawdzie nie powala na kolana (przypomina stary Windows Media Player), ale w końcu coś za coś. Program nie dysponuje własnym zestawem kodeków, bazując na tych, które są zainstalowane w systemie. Występuje w dwóch wersjach: dlaWindows 98/ME i dlaWindows 2000/XP. 6.4.9.0 to ostatnia wersja wypuszczona w ramach projektu Media Player Classic. Dalej program jest rozwijany jako Media Player Classic Home Cinema, dysponuje już własnymi kodekami, ale nie współpracuje z Windows 98.
Uwaga: Media Player Classic dla Windows 98 „nie lubi” KernelEx. Dla tej aplikacji należy rozszerzenie wyłączyć (menu kontekstowe → „Właściwości” → zakładka „KernelEx” → „Disable KernelEx extensions”).


Właściwy dobór kodeków, to w zasadzie największa trudność w przystosowywaniu systemu do pracy z multimediami: niektóre „gryzą się” pomiędzy sobą, inne są mało wydajne, jeszcze inne potrafią destabilizować system. Zadanie staje się znacznie prostsze, jeśli zainstalujemy ffdshow. To właściwie nie jest samodzielny kodek, tylko filtr DirecShow pełniący funkcję uniwersalnego kodeka obsługującego większość formatów video i audio. Wersja 2322 jest ostatnią z oficjalnym wsparciem dla Windows 98. Z KernelEx można próbować uruchamiać nowsze, ustawiając tryb kompatybilności na Windows 2000 SP4, co może zaowocować możliwością odtwarzania większej liczby formatów plików. Nie potrafię jednak wskazać, do której wersji ffdshow daje się uruchomić w ten sposób. Ja pod Windows 98 instaluję 2322.


Skoro w charakterze kodeka używamy filtru DirectShow, to w systemie musi być zainstalowany DirectX. Wersja 9.0c jest ostatnią, która instaluje się i działa pod Windows 98. Po zakończeniu wsparcia dla tego systemu, Microsoft rozpowszechnił jednak w Internecie instalator DirectX 9.0c, który wymaga co najmniej Windows XP, dlatego sprawdzoną wersję dla 98 umieściłem w swoim archiwum i można ją pobrać stąd.

Teraz, mając zainstalowaną aplikację odtwarzającą i kodeki, możemy spróbować obejrzeć nasz film. Ale, ale: napisałem przecież, że oryginalny plik nie będzie odtwarzał się płynnie na słabym sprzęcie. No to spróbujmy tego. Oryginał przekodowano w taki sposób, że rozdzielczość obrazu została zmniejszona do 640x480 pikseli, a strumień danych – ograniczony do 1210 Kbit/s. Taki plik odtwarza się płynnie na moich komputerach z Pentium III, a podejrzewam, że jakiś szybszy Pentium II też by dał radę.

A co z jakością? Zmniejszenie rozdzielczości skutkuje subiektywnym wrażeniem pogorszonej ostrości, a ograniczenie przepustowości – pojawieniem się, zwłaszcza w scenach z bardzo dynamicznie zmieniającym się obrazem, charakterystycznych zakłóceń, tak zwanych artefaktów. Rzecz jednak w tym, że w czasach telewizorów kineskopowych wady te były praktycznie niezauważalne (kineskop i tak „rozmywa” obraz, przy okazji maskując artefakty), a i teraz na małym monitorze (21 cali to jeszcze mały), a taki mamy zwykle podłączony do starego PC, czy na ekranie laptopa, jakość jest wystarczająca.

Generalnie rzecz biorąc, potrzebujemy tym większej rozdzielczości, im większy jest ekran, na którym oglądamy film i im mniejsza jest odległość widza od ekranu. Mając to na względzie spróbowałem odtworzyć ten plik na 32 calowym telewizorze, zachowując odległość, z jakiej normalnie oglądam telewizję. Według mojej, subiektywnej oceny, wynik był zadowalający. Oczywiście wyraźnie było widać, że to nie jest full HD, a nawet nie obraz telewizyjny w rozdzielczości SD, ale film dało się oglądać, zwłaszcza że (podobnie jak w przypadku wielu innych filmów), najważniejsza jest tu treść a nie piękno obrazu.

Załóżmy jednak, że ktoś z czytelników ma naprawdę zabytkowy komputer, z procesorem taktowanym, powiedzmy, poniżej 400 MHz, na którym nawet przekodowany materiał się „zacina”. Czy na tym nie da się już obejrzeć żadnego filmu? Nadal niekoniecznie. Można wypróbować ten plik w formacie 3GP, przygotowany w zasadzie z myślą urządzeniach mobilnych, albo ten, w standardzie Video CD (o którym w drugiej części napiszę nieco więcej). Uwaga: plik VCD ma napisy wkopiowane w materiał video, nie należy więc używać oddzielnego pliku tekstowego. Oczywiście zmniejszenie wymagań systemowych odbywa się kosztem jakości, ale za to możemy wykorzystać sprzęt, którego nikt by chyba dzisiaj nie posądzał o możliwości multimedialne.

2. Kino w kieszeni

Posiadacze nowoczesnych smartfonów nie mają żadnego problemu: ich urządzenia są w stanie odtworzyć w zasadzie każdy film, często nawet w rozdzielczości Full HD, rzecz sprowadza się jedynie do skopiowania wybranego pliku do pamięci telefonu lub na kartę micro SD. Można też wykorzystać tablet, ale ten się w kieszeni nie zmieści (no, chyba że to tablet 7" i kieszeń płaszcza).

Trafiają się jednak dinozaury (sam się do nich zaliczam), które nie używają smartfonów i z trudem przekonują się do tabletów (tak, mam tablet z systemem Android, ale przez większość czasu leży na półce, może jeszcze kiedyś napiszę dlaczego).

Spróbujmy zatem wykorzystać Pocket PC. Specyfikacja sprzętowa nie zachęca: jednordzeniowy, „dziwny” procesor, z bardzo wolnym taktowaniem (w moich urządzeniach: 266 i 300 MHz), mały, 3,5" wyświetlacz z mizerną rozdzielczością 320x240 pikseli, niewielka pamięć wewnętrzna, w której nie zmieści się żaden plik z pełnometrażowym filmem.

Stosunkowo najłatwiej poradzić sobie z tym ostatnim problemem: pliki filmowe umieszczamy na kartach pamięci obsługiwanych przez nasze urządzenie (w moim przypadku – karty SD).

Potrzebny jest jeszcze odtwarzacz. Wprawdzie system Windows Mobile 2003, w jaki wyposażone są moje kieszonkowe komputerki, zawiera Pocket Media Player, ale obsługuje on niewiele formatów plików. Polecam pobranie TheCore Pocket Media Player (TCPMP) 0.81. Nie wymaga on instalacji, wystarczy skopiować rozpakowany z archiwum katalog na nasz Pocket PC. Warto wygospodarować na odtwarzacz trochę miejsca w pamięci wewnętrznej urządzenia, nawet kosztem skasowania kilku gier. Da nam to możliwość swobodnego wymieniania kart SD z filmami.

No a plik? Wprawdzie TCPMP obsługuje wiele formatów, ja jednak przygotowałem plik3GP, w standardzie opracowanym dla telefonów (bardzo popularny w starszych modelach Nokii). Na kieszonkowych komputerkach sprawdza się wybornie. Wprawdzie rozdzielczość to tylko 352x288 pikseli, a strumień danych – 950 Kbit/s, ale na takim wyświetlaczu pogorszenia jakości obrazu i tak nie zauważymy, za to płynność odtwarzania będzie bez zarzutu. Plik z napisami można pobrać stąd.

Tutaj zaczyna się problem: wprawdzie przygotowałem plik z napisami w formacie, który powinien być obsługiwany przez TCPMP, ale pomimo wielu prób nie udało mi się uzyskać ich wyświetlania. Być może nie potrafię czegoś skonfigurować, albo mam zbyt starą wersję systemu Windows Mobile. W Internecie znalazłem informacje o poprawnym wyświetlaniu napisów we wcześniejszej wersji odtwarzacza, wyposażonej w odpowiednią „wtyczkę”. Nie chciało mi się w to bawić, zastosowałem więc obejście w postaci tegopliku, w którym napisy zostały wkopiowane w materiał video. Jak to zrobić? Proszę o cierpliwość, ciąg dalszy (być może) nastąpi.

wtorek, 29 marca 2016

Z czym do PDF?

Uważny czytelnik poprzednich wpisów dotyczących zastosowań biurowych starych komputerów z pewnością zauważył, że o ile w przypadku, gdy wyniki pracy mają mieć formę dokumentu drukowanego na papierze, możemy sobie praktycznie swobodnie korzystać z naszego leciwego sprzętu i oprogramowania uzyskując w pełni profesjonalne wyniki, o tyle wymiana dokumentów w formie elektronicznej napotyka na trudności: starsze oprogramowanie nie odczytuje formatów dokumentów sporządzonych przy pomocy nowszych wersji i na odwrót, a nawet jeśli odczytuje, pojawiają się problemy z formatowaniem. Do nielicznych chlubnych wyjątków należy OpenOffice, w którym nie ma większych problemów z wymianą plików utworzonych w różnych wersjach oprogramowania, chociaż współpraca z użytkownikami pakietów Microsoftu nie wygląda już tak dobrze.

Od czego jednak format PDF? Wprawdzie pliki w tym formacie nie są w zasadzie przeznaczone do modyfikowania (chociaż istnieją programy, głównie komercyjne, umożliwiające ich edycję), ale za to mogą być odczytywane i tworzone przy pomocy niemal każdego komputera, pod kontrolą prawie każdego systemu operacyjnego. Postaram się udowodnić, że również posiadacze nawet bardzo wiekowych komputerów PC nie stoją w tym przypadku na straconej pozycji.

Dla porządku dodam tylko, że nie będę się tu zajmował rozszerzeniami formatu PDF o elementy interaktywne (formularze z edytowalnymi polami) czy multimedialne. Są one oczywiście przydatne, ale efekty takie można osiągnąć innymi metodami, nie pakując „na siłę” do PDF-a. Ograniczam się do takich dokumentów, które niczego nie tracą po przeniesieniu na papier.

1. Czytniki PDF

Na początek zajmijmy się programami umożliwiającymi odczytywanie plików PDF na komputerach z systemem operacyjnym Windows 98 (i starszymi). Użytkownicy nowszego sprzętu i nowocześniejszych systemów operacyjnych bez trudu znajdą odpowiednie oprogramowanie sami.


Naturalnym wyborem wydaje się Adobe Reader. Został opracowany przez autorów specyfikacji (co powinno skutkować bezbłędnym i sprawnym działaniem), wersje aż do 6.x pracują pod Windows 98, zaś otwieranie plików z zabezpieczeniami „antypirackimi” (DRM) może być możliwe tylko przy pomocy czytnika firmy Adobe. Na uwagę zasługują duże możliwości konfiguracji, zwłaszcza jeśli chodzi o dostosowanie sposobu wygładzania wyświetlanego tekstu i obrazów do parametrów monitora i indywidualnych preferencji użytkownika. Wprawdzie rozwój formatu PDF nie stoi w miejscu, jednak Adobe Reader w wersji 6.0 i dziś jeszcze powinien poradzić sobie z większością plików. Podstawowym zarzutem stawianym temu programowi jest stosunkowo długi (jak na prosty czytnik) czas uruchamiania oraz powolne działanie na komputerach o słabej konfiguracji sprzętowej. Bez przesady jednak: mówimy o „słabej konfiguracji” na rok 2005. Wtedy Pentium III 500 MHz i 128 MB RAM nie było jeszcze takie złe.


Foxit PDF Reader to jedna z najbardziej znanych alternatyw dla Acrobat Readera. W porównaniu z czytnikiem firmy Adobe odznacza się znacznie większą szybkością uruchamiania, wydajniejszą pracą i dużo mniejszym zapotrzebowaniem na zasoby systemowe. Wszystkie te cechy sprawiają, że wydaje się on szczególnie odpowiedni dla starych komputerów. Podstawową wadą jest brak „wtyczek” obsługujących DRM.

Przegląd rozpoczynam od wersji 1.3, która z dzisiejszego punktu widzenia wydaje się bardzo przestarzała: zapewnia jedynie podstawową funkcjonalność i ma problemy z otwieraniem nowszych wersji plików PDF. Ma też jednak swoje zalety: wyjątkowo małe zapotrzebowanie na zasoby systemowe i nie wymaga instalacji (wystarczy skopiować plik EXE). Polecam szczególnie użytkownikom najsłabszych konfiguracji sprzętowych, oraz... użytkownikom systemu operacyjnego Windows 95, z którym ta wersja Foxit Readera jest kompatybilna (nowsze już nie).


To ostatnia kompilacja Foxit Readera z serii 2.x i zarazem ostatnia oficjalnie współpracująca z Windows 98. W porównaniu z wersją 1.3 znacznie lepiej radzi sobie z różnymi wersjami plików PDF i jeśli z jakichś powodów nie chcemy instalować KernelEx (właściwie z jakich?) pozostaje, moim zdaniem, najlepszym wyborem dla Windows 98. Wprawdzie dystrybuowana jest w postaci pliku instalacyjnego, jednak to tylko dla wygody. W rzeczywistości program nie wymaga instalacji, po skopiowaniu na inny komputer katalogu z aplikacją lub nawet samego pliku EXE – będzie działał.


To z kolei ostatnia kompilacja z serii 3.0, ale nie ostatnia 3.x. W porównaniu z wersjami 2.x znacznie lepiej radzi sobie z nowymi wersjami plików PDF aż do standardu 1.7. Dla mnie to wybór do codziennej pracy pod Windows 98 z KernelEx. Działa szybko i w miarę stabilnie, chociaż istnieje przeglądarka jeszcze szybsza i jeszcze „lżejsza”, o czym trochę dalej.

Nowsze wersje Foxit PDF Reader (KernelEx)

Korzystając z KernelExa można pod Windows 98 uruchamiać jeszcze nowsze wersje PDF Readera, teoretycznie, z pewnymi dodatkowymi „kombinacjami” (potrzebne jest między innymi KernelEx Auxiliary PSAPI.DLL Update) aż do wersji 7.x. Jednak po zainstalowaniu wersji 3.2 (która żadnych „kombinacji” nie wymaga) stwierdziłem, że wprawdzie program działa i pliki PDF dają się przeglądać, ale po otwarciu panela zakładek (Bookmarks), zamiast liter widoczne są jakieś kwadraciki i inne „krzaczki”. Ja lubię, kiedy mi wszystko działa poprawnie, dlatego pozostałem (pod Windows 98) przy wersji 3.0.

Uwaga:
Wszystkie wersje Foxit Readera uruchamiane pod Windows 98 mają wadę polegającą na „wyciekaniu” pamięci. Objawia się to tym, że im dłużej używamy programu i im więcej wykonujemy w nim operacji polegających głównie na przewijaniu czytanego tekstu, tym więcej pamięci systemu program zajmuje, aż do „wyłożenia się” Windows z powodu braku zasobów. To właśnie między innymi z powodu tego programu zalecam (patrz artykuł „Jak z Windows 98 zrobić system operacyjny - cz. 3”) używanie miernika zasobów systemowych: kiedy ikona w zasobniku zmieni kolor na żółty (a jeśli na czerwony, to natychmiast), zamykamy Foxit Readera i po kilku chwilach otwieramy ponownie. Większość zablokowanej pamięci zostanie zwolniona, a dzięki zapamiętywaniu przez program ostatnio czytanej strony dokumentu, operacja nie jest specjalnie uciążliwa.

Sumatra PDF 1.3 KernelEx

To chyba zdecydowanie najszybsza i „najlżejsza” przeglądarka PDF dla komputerów PC. Wprawdzie autor, Krzysztof Kowalczyk, zarzekał się na forum, że program nie jest kompatybilny z Windows 98, ale może dlatego stworzył być może najlepszą przeglądarkę PDF dla... Windows 98, oczywiście pod warunkiem używania KernelExa (tryb kompatybilności należy ustawić na Windows XP). Program nie dorównuje funkcjonalnością Foxit Readerowi, ale też nigdy nie miał taki być: nacisk został położony zdecydowanie na szybkość działania i małe rozmiary aplikacji. No ale czy naprawdę w warunkach domowych nie możecie żyć bez zaawansowanych funkcji w przeglądarce PDF?

Sumatra pod Windows 98 nie zachowuje się zbyt dobrze jako domyślna przeglądarka. Przy próbie wywołania przez kliknięcie odnośnika w innej aplikacji (np. załącznika w formie pliku PDF w programie pocztowym) może się po prostu nie uruchomić. Jest to główna przyczyna tego, że u mnie domyślną przeglądarką pozostaje Foxit Reader, ale zainstalowane mam obie.

Nowsze wersje Sumatra PDF (KernelEx)

Według informacji na stronie Wiki, z KernelEx można uruchamiać pod Windows 98 również nowsze wersje Sumatra PDF, aż do 3.1.1. Związane to jest z różnymi trudnościami: albo wymagane są rozszerzenia KernelEx w rodzaju Kext, albo wymiana w systemie niektórych plików DLL, albo wreszcie niektóre elementy programu Sumatra PDF, jak na przykład przyciski czy menu, nie działają poprawnie. Ja nie mam dużo czasu na eksperymenty i lubię jak mi wszystko działa, zostaję zatem przy wersji 1.3.

2. PDF na Pocket PC

Wydaje się, że chyba nie można sobie wyobrazić gorszego urządzenia do przeglądania dokumentów w formacie PDF, niż Pocket PC. Ekran o przekątnej 3,5 cala i rozdzielczości 240x320 powoduje, że na wyświetlonej stronie nie da się nic odczytać. Można wprawdzie powiększyć obraz tak, aby litery stały się czytelne, ale wtedy wiersz nie mieści się na ekranie i trzeba bez przerwy przewijać w prawo i w lewo. Nie pomaga nawet obrócenie obrazu o 90°. Na coś takiego można się ewentualnie zgodzić tylko od czasu do czasu, w sytuacjach „wyższej konieczności”. Wszystko byłoby w porządku, gdyby udało się „przełamać” wiersz w innym miejscu, tak aby po powiększeniu długość wiersza była dopasowana do szerokości ekranu. Na to jednak „sztywny” format PDF nie pozwala: obraz na ekranie ma wiernie (w miarę możliwości) odwzorowywać wygląd strony wydrukowanej.


Rozwiązaniem zaproponowanym przez firmę Adobe jest plik PDF ze znacznikami (tagged PDF). W tym formacie do pliku dodawana jest specjalna informacja umożliwiająca dostosowanie wyświetlania dokumentu do możliwości urządzeń mobilnych. Czytnikiem obsługującym takie pliki jest Adobe Reader 2.0 dla Pocket PC. Cóż jednak począć, skoro większość plików PDF nie zawiera tych znaczników? Microsoft to przewidział: podczas kopiowania pliku PDF na urządzenie mobilne przy użyciu programu ActiveSync, proponowana jest automatyczna konwersja*. Nie jest to może najszybszy sposób, ale skuteczny.

Może nie jedyny, ale chyba najważniejszy problem dla polskiego czytelnika polega na tym, że to rozwiązanie nie zawsze działa zgodnie z oczekiwaniami, a to ze względu na różne standardy kodowania „polskich znaków”: nie dość, że mogą być one w niektórych plikach nieprawidłowo wyświetlane, to jeszcze ich kody mogą kolidować ze znacznikami używanymi do formatowania, wskutek czego po konwersji na tagged PDF otrzymamy nieczytelną „sieczkę”.


Program PocketXpdf należący do oprogramowania open source i wywodzący się z linuksowego projektu Xpdf oferuje inne rozwiązanie problemu: klikając „View” → „View Text Only” otrzymujemy podgląd czystego tekstu „wyciągniętego” z pliku PDF. Prezentowany jest on czcionką rastrową, która jest maksymalnie kontrastowa (każdy piksel jest albo „biały”, albo „czarny” bez odcieni pośrednich), a jej kontury są „ostre”, bez żadnego rozmycia. Nie jest może tak ładna, jak oryginalna czcionka dokumentu, ale czy trzeba koniecznie odtwarzać wygląd czcionki? W przypadku większości dokumentów najważniejsza jest treść.

Na prezentowanej fotografii widoczna jest pewna wada tej metody: nie wszystkie wiersze przełamane są prawidłowo. Zdarza się, że przeniesienie następuje w środku wyrazu, w innym znów miejscu znak przeniesienia występuje w środku wiersza. Zapewniam jednak, że łatwo się do tego przyzwyczaić i czytanie nawet obszernych tekstów, takich jak e-booki, nie nastręcza większych trudności.

Jeszcze uwaga na temat „polskich znaków”. W prezentowanym przykładzie zostały one przekodowane poprawnie, nie zawsze jednak sytuacja wygląda tak dobrze i może się zdarzyć, że po przełączeniu do widoku tekstowego widzimy jakieś „krzaczki”. Istnieją też pliki PDF skonstruowane w ten sposób, że najpierw wyświetlana jest odpowiednia litera z podstawowego alfabetu łacińskiego, potem jest znak powrotu karetki wirtualnej drukarki i „dorysowywany” jest „ogonek”. PocketXpdf nie interpretuje jednak powrotów karetki, wskutek czego znak i „ogonek” występują obok siebie. Czytanie takich plików może być bardzo uciążliwe.

Jeśli dokument PDF nie daje się przeglądać na Pocket PC żadnym z dostępnych czytników, można spróbować jeszcze jeszcze jednej drogi wyjścia: konwersji na inny format, bardziej „strawny” dla urządzeń mobilnych. O tym jednak zamierzam napisać później, poświęcając odrębny wpis czytaniu e-booków.

3. Tworzymy PDF-y

Skoro z odczytywaniem plików PDF nie ma większych problemów, zastanówmy się teraz, jak je tworzyć, oczywiście na naszych leciwych PC-tach. Naturalnie nie używamy do tego pełnej wersji Adobe Acrobat, chociaż jego starsze wersje działają pod Windows 98 i jest on narzędziem o bardzo dużych możliwościach, pozwalającym nie tylko tworzyć, ale także obrabiać pliki PDF. Kosztuje jednak stanowczo za dużo w stosunku do swojego przeznaczenia. Pozostawmy zatem to narzędzie profesjonalistom, chyba że ktoś już ma licencję, na przykład zakupioną przez pracodawcę, wtedy jak najbardziej może używać.

Dla tych jednak, którzy nie chcą płacić dużych pieniędzy (a najlepiej żadnych) za możliwość tworzenia plików PDF, wymyślono stosunkowo proste programy, działające na zasadzie wirtualnej drukarki. „Wydrukowanie” dokumentu na takiej drukarce powoduje w rzeczywistości utworzenie PDF-a. Jako że jest to możliwe z poziomu dowolnej aplikacji Windows, wliczając w to procesory tekstów, edytory graficzne, programy typu CAD, a nawet oprogramowanie do małej poligrafii (desktop publishing), uzyskujemy w praktyce bardzo duże możliwości kreowania elektronicznych dokumentów.

OpenOffice

Zanim jednak przejdę do prezentacji wirtualnych drukarek, krótka uwaga dla użytkowników OpenOffice. Oprogramowanie to, poczynając od wersji 1.1, wyposażone jest we wbudowany mechanizm eksportu do pliku PDF. Wystarczy utworzyć dokument i kliknąć odpowiednią ikonę na pasku narzędzi. Jeśli więc używacie tego pakietu, a źródłem dla plików PDF mają być dokumenty Office, to właściwie możecie dalej nie czytać.


Miałem postanowienie, żeby nie przedstawiać na tym blogu oprogramowania w wersjach demonstracyjnych. Zwykle ma ono ograniczone możliwości lub czas działania, a częste instalowanie i odinstalowywanie aplikacji zaśmieca system, co jest szczególnie uciążliwe w przypadku Windows 98 i może w końcu wymusić reinstalację systemu.

Jeden z nielicznych wyjątków robię dla PDF Factory, a to ze względu na zalety programu: jest bardzo „lekki”, prosty w instalacji i obsłudze, działa stabilnie i tworzy naprawdę dobrej jakości pliki PDF. Wersja demonstracyjna ma pełną funkcjonalność, a jej jedyną „wadą” jest dodawanie na każdej stronie tworzonego dokumentu stopki o treści: „PDF stworzony przez wersję demonstracyjną pdfFactory www.pdffactory.pl”. To może nie przeszkadzać w przypadku generowania plików do użytku domowego, ale wysłać komuś taki plik, to już jakoś trochę wstyd. Aby pozbyć się tego niechcianego „dodatku” należy zarejestrować program. Rejestracja PDF Factory nie jest zbyt kosztowna, jednak jeśli chodzi o starsze wersje, może napotykać trudności. Kiedyś, za czasów edycji 1.x, było tak, że kto wykupił kod rejestracyjny, miał prawo do bezpłatnej aktualizacji oprogramowania. W konsekwencji kod zakupiony z nowszą wersją pasował również do starszej. Zmieniło się to wraz z wypuszczeniem wersji 2.0: zasada pozostała, ale tylko w obrębie danej edycji, identyfikowanej przez pierwszą cyfrę. Tak więc, jeśli dzisiaj ktoś zarejestruje PDF Factory w wersji 5.35 (aktualna na dzień pisania tego artykułu), nie użyje otrzymanego kodu do aktywacji wersji 3.25. Pozostaje więc pozyskanie klucza rejestracyjnego „z drugiej ręki” od kogoś, kto zaprzestał korzystania z programu, używanie wersji niezarejestrowanej (ale tylko do domowego użytku), lub poszukanie innego, całkowicie darmowego oprogramowania.

Uwaga:
Podczas instalacji PDF Factory 3.25 pod Windows 98 może wystąpić komunikat błędu sygnalizujący brak biblioteki GDIPLUS.DLL. Biblioteka ta nie jest standardowo instalowana w tej wersji systemu Windows. Można ją pobrać stąd i po rozpakowaniu skopiować do katalogu systemowego (zwykle C:\WINDOWS\SYSTEM). Można też zainstalować PDF Factory 2.54 – wcześniejszą, ale niemal tak samo funkcjonalną wersję, która nie wymaga tej biblioteki.


Znalezienie bezpłatnej alternatywy dla PDF Factory nie okazało się proste. Niby programów tego typu było całkiem sporo, a jednak generowane pliki jakieś „nie takie”: czcionka jaśniejsza, mniej kontrastowa, bardziej „rozmyta”, całość męcząca podczas czytania. Wyłączenie wygładzania czcionek w Adobe Reader zdradza istotę problemu (kliknięcie obrazu spowoduje jego powiększenie):

Z lewej – fragment pliku utworzonego przez PDF factory, z prawej – inny program (w tym przypadku Pdf995 z nieoptymalnymi ustawieniami). Czcionki po prawej mają poszarpane kontury i występują ubytki pikseli. Po wygładzeniu w czytniku prezentują się przyzwoicie, ale ma to swoją cenę. Generalnie, efekt końcowy jest tym lepszy, im lepsza jest wyjściowa jakość czcionki, przed wygładzeniem.

Poniżej prezentuję dwa programy, które pomimo że nie dopisują niczego do wyjściowego pliku, generują PDF-y przyzwoitej jakości.


Pdf995 to pierwszy ze znalezionych przeze mnie darmowych programów do tworzenia plików PDF. Po zainstalowaniu i pierwszych próbach potrafi zniechęcić: nie dość, że jakość wygenerowanego pliku nie jest najlepsza, to jeszcze brakuje „polskich liter”. Nie zniechęcajmy się jednak: program wymaga niewielkich poprawek konfiguracyjnych.

Otwieramy folder drukarek („Start” → „Ustawienia” → „Drukarki”) i klikamy prawym klawiszem myszy ikonę drukarki PDF995. Z menu wybieramy „Właściwości” i klikamy zakładkę „Czcionki”. Wyświetli się formatka jak na ilustracji, zaznaczona jest opcja „Używaj wbudowanych czcionek drukarki zamiast czcionek TrueType”.

Co to są jednak, w tym przypadku, „wbudowane czcionki drukarki”? Są to czcionki dystrybuowane z programem GhostScript, który został wykorzystany jako „silnik” konwertujący z formatu PostScript na PDF. Tylko że te czcionki nie zawierają polskich znaków diakrytycznych. Należy spowodować, by używane były czcionki systemowe, zaznaczając „Wyślij czcionki TrueType do drukarki zgodnie z tabelą podstawień czcionek”.

To jednak nie wszystko, należy kliknąć przycisk „Wyślij czcionki jako...” i na wyświetlonej formatce ustawić próg przełączania pomiędzy ładowaniem czcionek bitmapowych i konturowych na „1” (domyślnie jest „100”).

Teraz możemy wydrukować stronę testową. Jeśli wszystko się udało, powinniśmy otrzymać plik PDF dobrej jakości.

Wszystko byłoby w porządku, gdyby nie jeden szczegół: darmowa wersja Pdf995, choć jej używanie jest całkowicie legalne, za każdym razem otwiera przeglądarkę internetową i wyświetla stronę sponsora, a przynajmniej tak było. Obecnie sponsora już nie ma, ale dalej otwierana jest strona internetowa z informacją, że do konwersji z PostScriptu na PDF wykorzystywany jest GNU GhostScript 7.05 (w najnowszej wersji programu).

Jeśli ta ostatnia „właściwość” za bardzo przeszkadza (a ma przeszkadzać), mamy dwa wyjścia: albo zapłacić (skąd to wiedzieliśmy?), albo wypróbować ostatni program z mojej listy.


Ukazanie się PrimoPDF okazało się, przynajmniej dla mnie, na długie lata końcem poszukiwań programu do tworzenia plików PDF. Jest nie tylko darmowy, również do użytku w firmie, ale tworzy bardzo przyzwoitej jakości pliki. Pierwszej wersji daleko wprawdzie do funkcjonalności PDF Factory, brakuje na przykład możliwości skumulowania kilku wydruków w jednym pliku, ale dla mnie wystarcza.

Wersja działająca pod Windows 98 wykorzystuje, podobnie jak Pdf995, program GhostScript w charakterze „silnika” konwertującego, zatem w celu uzyskania zadowalającej jakości wynikowych plików wymaga analogicznej konfiguracji jak poprzednik.

Użytkownicy Windows 2000 mogą zainstalować nieco bardziej rozbudowaną i dopracowaną wersję PrimoPDF 2.0.

* To stwierdzenie jest nie do końca prawdziwe. Jeśli Acrobat Reader nie jest zainstalowany, konwersja podczas kopiowania nie jest dostępna. Jest to zatem funkcjonalność dodawana przez firmę Adobe i przypisywanie całej zasługi Microsoftowi nie jest tutaj słuszne, chociaż niewątpliwie współpraca musiała być.