Parę słów wstępu: Podana poniżej instrukcja tyczy się pocketów z QVGA - choć można ją stosować także i dla VGA tylko trzeba zwiększyć rozdz. Opis bazuje na przepakowaniu pliku avi. Na końcu parę informacji jak przy pomocy tego opisu pakować film z DVD, plików Mov czy RealVideo.Opis bazuje na moim wcześniejszym tekście który kiedyś (pod inna xywą zamieściłem na PDAclub.pl)
Jak pisałem opisana metoda nie należy do łatwych i przyjemnych ale daje najlepsze jakościowo filmy.
Jeśli więc nic z niej nie rozumiesz to naprawdę polecam prosty i wygodny program
http://divx.ppccool.com/ Pocket Divx Encoder.
- w którym wbrew temu co tu na forum widzę można dołączać polskie napisy (choć nie ma tam tak bogatej konfiguracji napisów jak w ffdshow)
A teraz pora na wytłumaczanie się z moich haseł które powyżej napisałem.
# Najlepsza jakość - Pocket Divx Encoder pakuje film w starszym xvidzie - u mnie można włączyć VHQ dla klatek typu "B" - które stanowią i u mnie i u PDE (Pocket Divx Encoder) 2/3 całości klatek w filmie.
Po drugie PDE stosuje do Resize filmu prosty Bicubic - u mnie jest to Spline o klasę lepszy - lepszy nawet od uważanego za lidera resize Lanczos3.
Po trzecie dzięki możliwości stosowania ffdshow, avisynth jest możliwość zastosowania szeregu filtrów min. postprocessing, wyglądzania obrazu dla filmów słabej jakości np z Telewizji analogowej - ale przede wszystkim filtru "Sharpen - swscaler" który wydatnie zwiększa jakość filmu.
# Największe możliwości konfiguracyjne - wystarczy zobaczyć ile ma dodatków ffdshow i ile ma funkcji avisynth aby się przekonać że te możliwości biją na głowę PDE. Ot chociażby w kwestii napisów ich wielkości, wygładzania, typu, miejsca na ekranie, koloru itd...
# Rożnorodność plików wejściowych - każdy odtwarzany w naszym systemie format video typu directshow będzie mógł być tą metodą zamieniony na format zjadliwy dla betaplayera.
# Szybkość - No tu ostatnio zaszły zmiany i PDE jest równie szybki. Testowałem jego ostatnią wersję beta i uzyskałem prawie identyczne rezultaty.
P III 500 Mhz plik video 10 minut
- PDE jakość best - xvid vhq 2pass bframes = 22 minuty 53 sekundy
- Moja Metoda jakość "to samo co PDE" - xvid vhq 2pass bframes = 21 minut 34 sekundy
- PDE jakość fast - mpeg4 no vhq 1pass bframes = 7 minut 53 sekund
- Moja Metoda fast - xvid no vhq 1pass bframes = 8 minut 34 sekundy
- Moja Metoda EXTRA BEST - xvid vhq4 vhq dla bframes, resize spline, sharpen swcaler 3, bframes = 28 minut 37 sekund
Jakość trybu powyższego jest o wiele lepsza niż najlepsza w PDE - jakby ktoś miał ze 4-5 MB wolnego to mogę fragment do porównania podesłać.
I.Przygotowanie potrzebnego oprogramowania.
Wszystkie podane poniżej programy są darmowe, freeware. Nie podaje tu linków - mogą się zmienić więc wtedy trzeba pogooglować w sieci. - ale wszystko można znaleźć na
www.divx.plNależy więc "skombinować":
- avisynth w wersji od 2.53 wzwyż
- virtualdubmod w wersji od 1.5xx
- kodek xvid w wersji koepi 1.1 -
http://www.koepi.org/XviD-1.1.-127-06112004.exe- oggdropXP - dowolna wersja
- FFdshow jak najnowszy
II.Przygotowanie ścieżki dźwiękowej.
1.Uruchamiamy VirtualDubmod i w [File:Open Video File:] wybieramy film który chcemy skonwertować. Przykładowo niech ma nazwę xyz.avi (to ułatwi zrozumienie tego opisu)
2.W menu [Streams] wybieramy [Stream list], dalej prawy przycisk na scieżce dzwiękowej i
ustawiamy [Full Processing Mode] i znów prawy przycisk myszki na ścieżkę.
3.Zaświeci się nam wtedy [Conversion] - wchodzimy i ustawiamy odpowiednie parametry na 16bit 44khz lub 48khz stereo High Quality (gdy chcemy przepakować dzwięk z ac3 to musimy mieć zainstalowane to:
http://fcchandler.home.comcast.net/AC3ACM/AC3ACM.zip - jeśli nie ma to nie pytać a googlować

4.Następnie na przycisk [Save Wav] i nagrywamy wav z filmu pod nazwą np xyz.wav
5.Uruchamiamy OggDropXP i ustawiamy parametry (prawy przycisk myszki i Encoding Options) jak poniżej:
- [Quality Setting] ustawiamy na "-1" lub "0" więcej nie polecam bo będzie mniej miejsca na obraz.
- i ustawiamy [Set Standard Default - Output Sample Rate = Input Sample Rate] - domyślnie tak powinno już być ale jak ktoś zmieniał albo co. W niektórych nowszych wersjach może być inaczej.
6.Przeciągamy naszego wav'a na OggDropXP i po pewnym czasie (na PIII500mhz 1,5 godzinna scieżka pakuje się około 45 minut - dane z oggDropXP auToV b2) otrzymujemy gotowy plik - w naszym wypadku:
xyz.ogg
III. Przygotowanie filmu do pakowania - FFDShow
1. Po instalacji powyższego programu można zauważyć że FFdshow przejął od kodeka divx, xvid wyświetlanie filmów na naszym "dużym" PC (jeśli nie - to ustawiamy aby to zrobił). Będzie on kluczowym programem który przejmie funkcję przygotowania filmu do końcowej kompresji.
2. Puszczamy jakiś film np nasz xyz.avi i klikamy na[Plik:Właściwości:Zaawansowane:ffdshow MPEG-4 Video Decoder]
lub
w Menu Start w sekcji gdzie zainstalował się FFdshow na stosowny program konfigurujący - Configuration.
3.W samym ffdshow zaznaczamy opcję [show tray icon] w sekcji [tray & dialog settings] - ułatwi to nam dostęp do jego opcji.
4.NAPISY
a.Jeśli film ma napisy to muszą one mieć nazwę w stylu:
nazwa filmu.avi
nazwa filmu.txt
Oba pliki muszą być w tym samym katalogu.
b.Aby było je widać należy w ffdshow/konfiguracji zaptaszkować sekcję [Subtitles]
c. W tej sekcji ponadto należy ustawić:
- Vertical Positions - na 90%
- Letterbox - don't expand
d.W znajdującej się poniżej sekcji [Font] należy ustawić:
- Font: Arial
- Size: 12 lub 13,14 (jak kto woli)
- Charset: Easteurope
- Weight: Normal
- Shadow Strenght: 90
- Shadow Radius: 50
ewentualnie można ustawiać co się chce i na bieżąco obserwować zmiany - jeśli ktoś lubi inny font czy wielkość napisów 1/3 filmu to już inna sprawa

e.To już wszystko jeśli chodzi o napisy - choć uwaga - dobrze by było sprawdzić czy napisy są dopasowane i czy w ogóle są one do tego, danego filmu

Bo później na Pockecie będzie płacz i zgrzytanie zębów

5.RESIZE FILMU
a.Najlepsza rozdzielczość dla filmów na Pocketpc to tryb landscape czyli 320xXXX gdzie XXX to odpowiednia liczba pixli nie powodująca utraty proporcji obrazu.
b.Aby ułatwić czytelnikom posłużę się tutaj przykładem:
Przykładowo nasz film xyz.avi ma rozdzielczość np 684x384 - Jaka bedzie jego rozdzielczość w trybie Landscape?
Proste zadanie z matmy (proporcja):
(384x320)/684=179,64 czyli w zaokrągleniu nasz film będzie miał rozdz docelową: 320x180
JEDNAK UWAGA - aby film działał pod "ffdshow resize" podane wartości muszą być podzielne bez reszty przez 16.
Aby nie tracić proporcji obrazu musimy obciąć trochę obraz.Należy więc znaleźć najbliższą do 180, podzielną przez 16 liczbę. Jest to 192.
Teoretycznie bliżej 180 jest 176 ale wtedy będziemy musieli obcinać góra/dół obrazu. Zawsze lepiej obcinać boki (tak się między innymi robi wersje TV - filmów kinowych) więc dlatego korzystniej zastosować wartość 192.
I w naszym wypadku - mając za dane:
684x384 rozdz. źródła
320x192 rozdz. docelowa
robimy to tak:
(384x320)/192=640 i teraz dalej: 684-640=44 i ten wynik dzielimy na 2 (bo będziemy obcinać symetrycznie, po bokach). Wychodzi 22.
Wchodzimy na sekcję ffdshow - [Crop]
Ptaszkujemy ją i w podane tam pola wpisujemy:
z prawej i lewej strony po 22.
Podobnie postępujemy w innych wypadkach np. film 640x272 to 320x136 najbliższa podzielna to 144
więc:
(272x320)/144=604
640-604=36/2=18
czyli 18 po bokach w sekcji [Crop]
Uwaga w przypadku każdego filmu a tego ostatniego przykładu w szczególności polecam większe obcinanie boków -> po prostu ekran 3,5 cala jest mały i film mimo że mamy go w prawie całości tj np 320x144 nie wygląda najlepiej (lupa konieczna

Najlepiej obcinać więcej np z 640x272 obciąć po 72 ((272x320)/176=494 i dalej 640-494=144/2=72) i mamy wtedy 320x176 a to już lepiej się ogląda.
c.Po obliczeniu naszej docelowej rozdzielczości wchodzimy i ptaszkujemy [Resize & Aspect] i zaznaczamy:
- resize always
oraz
- no aspect ratio correction (nie ma obaw jeśli się dobrze wszystko obliczy nie ma prawa aby ludziska w filmie biegali z głowami jak ogórki

W okienku Specify Size wpisujemy rozdzielczość naszego filmu tj. Dla pierwszego naszego przykładu:
320x192 (dla drugiego będzie to 320x144, chyba że wzieliśmy pod uwagę powyższą "uwagę" o małym ekranie to wtedy 320x176)
d.W znajdującej sie poniżej [Resize & Aspect] sekcji [Settings] dokonujemy wyboru jakości resize. Polecam wybrać "Spline" - daje najlepszą jakość - lepszą niż uznawany za lidera "Lanczos3". Natomiast gdy zależy nam na szybkości to "Area".
e.Gdy film ma słabszą jakość - makrobloki, duża kwantyzacja można włączyć [Postprocessing]
f.Jeśli zależy nam na jakości filmu to zaznaczamy [Sharpen] a w nim swscaler i obie wajchy w okolice 3 lub 4. (to jeśli mamy dobrej jakości źródło - bardzo polepsza odbiór filmu na ekranie PDA ale zwiększa zarówna czas kompresji jak i zapotrzebowanie na miejsce bo będzie trzeba dać filmowi więcej MB przy kompresji - ale w sumie naprawdę warto - właściwie tylko dlatego stosuje tę metodę bo Pocket Divx Encoder tego nie ma)
Jeśli wszystko zrobiliśmy poprawnie to po zamknięciu pliku video i jego ponownym uruchomieniu pokaże się filmik w 320xXXX z ładnymi małymi napisami.
Mamy więc już przygotowany plik wejściowy.
IV. Zaprzęgamy Avisynth do roboty
1.Tworzymy plik o nazwie np. xyz.avs i wpisujemy do niego podane zamieszczone tu dane:
DirectShowSource("D:\xyz.avi")
2. Oczywiście w miejscu "D:\xyz.avi" wpisujemy scieżkę dostępu do naszego przygotowanego pod ffdshow pliku video - czyli w naszym testowym: "D:\xyz.avi"
V. Kompresujemy - VirtualDubMod w akcji.
1.Przeciągamy plik xyz.avs do Okna VirtualDubMod i od razu w menu [video] ustawiamy na [fast recompress]
2.Jeśli wszystko jest OK to podgląd video pod virtualdubem jest w 320xXXX - czyli taki jak sobie ustawiliśmy pod ffdshow'em
3.W sekcji [Streams] wyłączamy scieżkę dzwiękową - klikamy na[Disable]
4.W sekcji Video ustawiamy [Fast recompress]
5.Wchodzimy na [Video:Compression] i ustawiamy tam kodek Xvid
6. W kodeku xvid:
Profile @ Level i more - ustawiamy:
Quantization Type: h263
Wszelkie Quarter Pixel, Adaptive Quantization i dalej pozostawiamy wyłączone.
Włączamy jedynie B-VOPs
i ustawiamy:
Max Consecutive BVOPs: 2
reszta domyślnie i wychodzimy do głownego okna konfiguracji xvida
Wchodzimy na [Advanced Options] i w sekcji Motion ustawiamy:
Motion Search Precision: 6-Ultra High
VHQ mode: 1-Mode Decision (jeśli chcemy mieć jeszcze lepszą jakość to 4-Wide Search - ale trza mieć mocny Pentium IV lub Athlon, jeśli na zależy na szybkości to 0-Off)
Use VHQ for bframes too (ptaszkujemy to wolniej pakuje ale lepsza jakość końcowa - odptaszkowany to na odwrót)
Use chroma Motion : ptaszkujemy
Pozostałe opcje domyślne.
Następnie w Quantization - ptaszkujemy Trellis Quantization i wychodzimy do głównego okna Xvida.
Uwaga czasami w Zones coś tam jest kilkamy na Remove aby to usunąć.
7.Aby uzyskać najlepszą jakość należy używać dwóch przebiegów czyli ustawiamy Twopass 1st pass.
Gdy natomiast zależy nam na szybkości to ustawiamy Single pass i przechodzimy do podpunktu 11'tego
8.Teraz wchodzimy na [File:Save as] i zapisujemy pod nazwą np. xyz temp.avi - w zależności od procesora trochę to potrwa. (jeśli ustawialiśmy wszystko na maxa to dość długo, jeśli poszliśmy krokiem na szybkość to podobnie jak w Pocket Divx Encoder)
9. Po skończonym pakowaniu KASUJEMY plik xyz temp.avi (ale NIE kasujemy stworzonego w tej operacji pliku video.pass)
Dla bezpieczeństwa możemy wyjść z VdubModa i znów wejść wgrywając nasz xyz.avs (gdy nie wyjdziemy avisynth czasami kaszani się i pakuje w drugim pass'ie wciąż tylko jedna i tę samą klatkę obazu) Pamiętamy o ustawieniu: menu [video] ustawiamy na [fast recompress]
10. Wchodzimy znów na [Video:Compression:Xvid] i ustawiamy Twopass 2nd pass a następnie klikamy w przycisk obok [more...]
Ptaszkujemy:
-Loose curve scaling
-Respect VBV buffer
a poniżej w Curve compression
wpisujemy:
high bitrate scenes degradation: 5
low bitrate scene improvement: 5
i wracamy do menu głównego xvida
11. klikamy na przycisk [Target bitrate (kbps)] tak aby to on był aktywny i wchodzimy na [calc...]
W target size wpisujemy 246.800kb (bo tyle ma większość kart pamięci SD/MMC/CF o marketingowej nazwie 256MB - przy 128MB będzie to 123.400kb) lub gdy mamy większą kartę pamięci to możemy wpisać więcej ale nie polecam więcej niż 300.000 dla filmów do 100 minut i 450.000 dla filmów np 150 minut.
Wszystko zależy też od danego filmu. Filmy z mnóstwem akcji gorzej się pakują niż np ciemne i spokojne.
W [Container] podajemy : Matroska
W [Video] podajemy długość naszego filmu
W [Audio] podajemy: ogg
w Size wskazujemy nasz xyz.ogg przygotowany wcześniej.
i klikamy OK
Teraz w głównym oknie xvida widzimy że w [Target bitrate (kbps)] pojawiła się odpowiednia liczba.
12. Wychodzimy z xvida i kompresji i wchodzimy na [Streams] i [Stream list] - klikamy na [Add] i wskazujemy nasz xyz.ogg
dajemy OK.
13. Znów wchodzimy na [File:Save as] i zapisujemy pod nazwą np.
xyz_pocketpc wybierając jako [zapisz jako typ] *.mkv matroska
Film zacznie się pakować już docelowo
Po skończeniu zamykamy Vduba i w configuration wyłączamy wszystko co włączaliśmy np resize, crop.
THE END

VI. DVD, Rmvb, Mov, dowolny inny format DirectShow.
Chcąc przepakować filmy w tych formatach należy mieć zainstalowane w systemie odpowiednie kodeki (do dvd a raczej do Vob'ów) lub playery np realplayer, quicktime - choć ja polecam ich odpowiedniki to jest Media Player Classic i alternative real/quicktime.
Następnie w ffdshow w sekcji [Codecs] w [Raw Video] ustawiamy All yuv (lub all supported gdy yuv nie nie zadziała)
Dzięki temu gdy stworzymy plik xyz.avs i wpiszemy do niego np:
DirectShowSource("D:\xyz.rmvb")
Będziemy mogli używać tej całej powyżej opisanej metody także i do tego typu plików. A więc resize, sharpen, subtitles - wszystko ustawiamy jak powyżej.
Jedynie dźwięk trudno nam będzie wydobyć z tego typu plików metodą opisaną w pkt I bo VdubMod nie przymie na gołego pliku np *.mov. Dźwięk po prostu wydobędziemy tak: w miejscu w którym powyżej napisałem: kliknąć na [Disable] po prostu tego NIE robimy. Wtedy
rozpakowany dźwięk w formacie PCM zostanie w naszym wygenerowanym pliku (wyciągniemy go już łatwo Vdubem - przepakujemy OggDropem i powtórnie dąłączymy do Vduba (add w sekcji stream list) i dopiero wtedy wyłączymy [Disable] ten rozpakowany. Wtedy w sekcji Video damy [Direct stream copy] i zapisujemy do Matroska mkv.
I jeszcze raz powtarzam i polecam Pocket Divx Encoder - Choć daje trochę gorszą jakość to jednak jest bardzo prosty i szybki w obsłudze.
Powyższa metoda jest przeznaczona dla osób które mają czas i dużo miejsca na SD czy CF - bo stosowanie jej do pakowania filmów z przeznaczeniem dla 128 MB SD mija się z celem.
I to wszystko - za dwa dni jak wytrzeżwieje napiszę kolejny mail w którym zapytam was o co mi właściwie w tym opisie chodziło

pozdr wszystkich maniaków filmów na PDA.
Irwin Fletcher