Filtry są bibliotekami DirectShow, których zadaniem jest wykonanie pewnych działań na danych będących np. strumieniem video lub audio. W wielkim skrócie filtry dzielą się na filtry wejściowe (źródłowe) (udostępniające sygnał np. SkyAVC.ax), filtry transformujące (przetwarzające sygnał np. kodery i dekodery lub realizujące dodatkowe efekty wizualne lub dźwiękowe) oraz filtry wyjściowe (wyświetlające video, odtwarzające dźwięk lub zapisujące dane do plików).
Zestaw filrów wzajemnie połączonych i wypełniających określone zadanie potocznie nazywa się grafem. Graf może zostać przedstawiony w postaci schematu blokowego przy użyciu programu narzędziowego GraphEdit.
Sprawa filtrów z pozoru wygląda tajemniczo ale większość i problemów które powstają podczas ich używania wynika z bałaganu na dysku. Aby uniknąć problemów najlepiej wszystkie filtry trzymać w jednym katalogu podzielonym na podkatalogi przypisane do producenta. Należy unikać sytuacji, ze różne wersje filtrów tego samego producenta znajdują się w katalogu filtrów oraz w katalogach roboczych programów.
Np. filtry Cyberlinka w wersji 4 nie pozwalają na stosowanie Overlay mixera natomiast w wersji 5 wymuszają jego użycie. W przypadku gdy używamy dla SkyView grafu stworzonego dla wersji 4 nie może on być użyty z wersją 5. Niektóre programy rejestrują samodzielnie filtry (pliki *.AX) znajdujące się w katalogu roboczym (np. SkyView) lub innym przeznaczonym dla filtrów np. ..\Filters w DVBViewer. Niektóre filtry wymagają odpowiednich wpisów w rejestrze dokonywanych przez program instalacyjny dostarczony przez producenta. Bez tych wpisóm niektóre filtry mogą nie działać lub działać niepoprawnie mimo ich zarejestrowania w systemie.
Uwaga: w celu uniknięcia bałaganu w katalogu roboczym SKyView nie należy umieszczać żadnych dodatkowych modułów (filtrów, pluginów - te drugie powiiny być umieszczane w podkatalogu ..\MDPlugins). Można umieszczać fitry używane TYLKO i wyłącznie przez przez SkyView
Co gorsze, niektóre programy podczas zamykania dokonują wyrejestrowania filtrów, które wcześniej zarejestrowały (np. wspomniany DVBViewer). Ponieważ czasem używam DVBViewera usunąłem z katalogu ..\Filters wszystkie filtry, które Christian Hackbart tam umieszcza bo wyrejestrowuje mój SkyAVC.ax po zamknięciu. Czyli w przypadku gdy SkyView działał z jakimś zestawem filtrów i nagle przestał działać wysoce prawdopodobne jest, że w międzyczasie został uruchomiony inny program do odbioru TV-Sat lub odtwarznia DVD, który zarejestrował swój prywatny zestaw filtrów (możliwe, że w innej wersji) lub wyrejestrował to co SkyView używał.
Można to zrobić z wykorzystaniem programu GraphEdit - wybieramy z menu Graph | Insert Filters, rozwijamy pozycję DirectShow Filters i szukamy interesującego nas filtra. Po rozwinięciu opisu filtra pozycja Filename określa położenie aktualnie zarejestrowanego filtra, znając je możemy określić wersję przez kliknięcie prawym klawiszem myszki na pliku i wybraniu Właściwości |Wersja.
założyć katalog np. Filtry a w nim podkatalogi np. IVI, Cyberlink, Elecard itp.
nie dotykać filtrów, które znajdują się w katalogu systemowym (windows\system32)
nne filtry skopiować (nie przenieść) do odpowiedniego katalogu filtrów, pozostawiamy filtry w oryginalnym położeniu aby umożliwić korzystanie z nich programom, które je tam umieściły ale zazwyczaj będą one korzystały z filtrów, które zarejestrujemy z innego miejsca. Uwaga:nie mozna umieszczać filtrów o tej samej nazwie w różnych podkatalogach
w katalogu "Filtry" umieścić plik .BAT rejestrujący wszystkie filtry z podkatalogów o zawartości np.:
cd \Filters\InterVideo
FOR %%F IN (*.ax) DO regsvr32 /s %%F
cd \Filters\Elecard
FOR %%F IN (*.ax) DO regsvr32 /s %%F
Oraz plik wyrejestrowujący wszystkie filtry o zawartości np.
cd \Filters\InterVideo
FOR %%F IN (*.ax) DO regsvr32 /s /u %%F
cd \Filters\Elecard
FOR %%F IN (*.ax) DO regsvr32 /s /u %%F
Ponadto w każdym katalogu filtrów można umieścić .BAT rejestujący konkretny zestaw np. o treści :
regsvr32 /s iviaudio.ax
regsvr32 /s ivivideo.ax
oraz do wyrejestrowania o przykładowej treści :
regsvr32 /u /s iviaudio.ax
regsvr32 /u /s ivivideo.ax
Mając poukładane filtry jak w punkcie powyżej na początek wyrejestrowujemy wszystkie i rejestrujemy jeden wybrany. Ustawiamy dla SkyView nazwę grafu na "AUTO" i uruchamiamy jakiś kanał. Jak się uda to podłączamy do SkyView GraphEdit,
uruchamiamy program Graphedt.exe
wybieramy z menu File | Connect to remote graph lub używamy skrótu Ctrl-G
wybieramy z listy jedną z dostępnych pozycji (jeżeli jest ich więcej powtarzamy operację aż do skutku)
wczytany graf i zapisujemy w katalogu roboczym SkyView pod sobie znaną nazwą.
gdy się nie uda uruchomić odtwarzania to znaczy, że zestaw filtrów jest niewystarczający do stworzenia działającego grafu przez system.
wyrejestrowujemy filtry używane powyżej i rejestrujemy inny zestaw i powtarzamy czynności opisane powyżej.
W efekcie działań opisanych powyżej otrzymamy zestaw pierwotnych grafów związanych z producentem i możemy rozpocząć zaawansowaną zabawę z filtrami czyli :
rejestrujemy wszystkie filtry, które poprawnie działały ze SkyView i sprawdzamy czy działają.
wczytujemy do GraphEditora zestaw najbardziej zbliżony do wymarzonego i dokonujemy modyfikacji wymieniając filtry na inne lub dodając dodatkowe (np. procesory dźwięku) zapisujemy na dysku i
SkyView ma również możliwość samodzielnego konstruowania grafów z dostępnych w systemie filtrów dokonując optymalizacji połaczeń między filtrami (np. wykorzystanie możliwośći akceleratorów sprzętowych wbudowanych w karty Video). Aby zbudować nowy graf należy :
Uruchomić odbiór dowolnego programu FTA
Kilknąć prawym klawiszem myszki na ekran i wybrać z menu "DirectX Filters -> Configure
Wybrać filtr Audio z rozwijanego pola "Available Audio Filters"
Wybrać filtr Video z rozwijanego pola "Available Video Filters"
Pole PiP Fiters pozostawić ustawione na "Auto"
Pole "Video Renderer" pozostawić "Auto" lub wybrać ulubiony renederer Video jeżeli ma się świadomość co się wybiera :)
...
Kliknąć przycisk "Try"
Jeżeli tworzenie grafu powiedzie się, efekt można zapisać na dysk klikająć przycisk "Save" i podając nazwę pliku .GRF
Jezeli próba się nie powiedzie należy próbować tworzyć inny graf z wykorzystaniem innego zestawu filtrów
Proponuję przejrzeć płyty CD otrzymane podczas zakupu komputera - można na nich znaleźć playery DVD z zestawami filtrów - np. Intervidoo i Cyberlink dodawany do płyt MSI, nVidia dodaje swoje filtry do kart video, z kartą SS2 otrzymaliśmy zestaw firmy Mediamatics lub skorzystać z dostępnych w internecie wersji próbnych (np. Elecard - raczej nie polecam tego filtra do SkyView). Zazwyczaj musimy zainstalować w/w playery w celu wyizolowania filtrów a następnie można je zdeinstalować.
Filtry DirectX - AV dla programu SkyView pracującego z kartą ATI
Zalecane
Video - Mediamatics(software mode), Intervideo(Hardware mode) (HDTV)
Audio - Intervideo, Microsoft
Dopuszczalne
Video - nVidia, Sonic
Audio - Elecard, Cyberlink
Unikać
Video - Elecard(raczej nieprzydatny), Cyberlink-chimeryczny
Audio - nVidia - nieprzydatny dla kanałów mono
Do działającego programu "SkyView.exe" można podłączyć się za pomocą narzedziowego programu MS "graphedt.exe" i obejrzeć aktualny schemat połączeń filtrów DirectX, można również zmodyfikować aktywny graf, który po zapisaniu w katalogu roboczym może zostać uznany za obowiązujący dla następnych uruchomień programu SKyView. W przypadku problemów ze startem programu należy plik ten usunąć i pozwolić na automatryczną konfigurację przez DirectX.
Program był testowany z filtrami następujących producentów :
Mediamatics - DVD Express domyślne dekodery dla karty SkyStar2.
Wydajność dekodera video posiadacze niektórych kart grafiki (np. Ati Radeon 7500) mogą poprawić przez dokonanie w rejestrze następującego wpisu : HKLM/SOFTWARE/Mediamatics/DVD Express/ActiveMovie Decoder/EnableMotionComp : REG_DWORD=1, może to jednak wymagać wyłączenia opcji szybkiego przełaczania kanałów. Natomiast jakość dekodowania video można próbować poprawić używając wpisu : HKLM/SOFTWARE/Mediamatics/DVD Express/ActiveMovie Decoder/UseBobWeave : REG_DWORD=1
Elecard - problemy z Vizją, zalecane wyłączenia opcji "Use Overlay", jedyny filtr z którym bez większych problemów działa PiP, w zestawie zawarty jest również dekoder dźwięku AC3 (np. TVN@Hotbird, Pro7@Astra)
Cyberlink - dekoder video poprawny, w starszych wersjach dekoder audio dla kanałów MONO wykazuje błędy uniemożliwiające jego stosowanie - zdyskwalifikowanyNowe wersje są pozbawione tej wady.
InterVideo - aktualnie filtr Video działa poprawnie ze SkyAVC.ax również z wykorzystaniem akceleracji sprzętowej (testowane z filtrami z zestawu MSI DVDPlayer), natomiast IMHO najlepszy dekoder Audio - pozwala na odtwarzanie również dźwięku AC3
Sonic Solutions - Cinemaster DS Video Decoder - IMHO najszybszy ale nie najlepszej jakości, dobrze współpracuje z dekoderem audio firmy InterVideo
NVidia - działa od wersji 2580 i na niektórych kartach umożliwia wykorzystanie sprzętowego dekodera MPEG