Kodowane kanały telewizji satelitarnej w dowolnej aplikacji DVB

Ten wpis został napisany dawno temu i może być już nieaktualny.

Sasc-ng jest programowym modułem warunkowego dostępu (SoftCAM) nowej generacji, przeznaczonym dla systemów linuksowych. Pozwala na oglądanie kodowanych kanałów za pomocą dowolnej aplikacji, posiadającej wsparcie dla DVB, bez modyfikacji jej kodu źródłowego. Dekrypcja odbywa się w tle i jest przezroczysta dla programu DVB, który traktuje wszystkie kanały jak FTA. Uwaga: Poniższy opis jest dosyć stary. Aktualniejsze informacje znajdziecie w poście "Instalacja sasc-ng w Ubuntu 10.10". Źródła sasc-ng zawierają moduł jądra (dvbloopback), który odpowiada za utworzenie wirtualnego adaptera DVB. Program sasc-ng jest mostem pomiędzy wirtualnym, a prawdziwym urządzeniem. Wszystkie żądania przekazywane są do karty DVB, a wyniki wysyłane są spowrotem do wirtualnego urządzenia. Jeżeli zostanie wykryty kanał kodowany, strumień jest najpierw przepuszczany przez sc lub FFdecsa w celu dekrypcji (sasc opakowuje sc, aby działoo niezależnie i bez użycia VDR). W ten sposób na wirtualny adapter wysyłane są tylko czyste dane. Aplikacje DVB powinny korzystać właśnie z tego urządzenia. Sasc-ng można pobrać z repozytorium svn. Instalacja sprowadza się do kompilacji programu i modułu jądra. W katalogu sc_files powinny znaleźć się pliki związane z sc (utworzyłem linki symboliczne do tych używanych z VDR).

~/ $ svn co http://OpenSVN.csie.org/sascng sasc-ng
~/ $ cd sasc-ng/
~/sasc-ng $ export DEFAULT_PORT='"/dev/ttyS0",0,0,0'
~/sasc-ng $ make
~/sasc-ng $ make module
~/sasc-ng $ ln -s /video/plugins/* ./sc_files/

Eksport zmiennej DEFAULT_PORT ma na celu ustalenie domyślnie używanego przez sc interfejsu smartcard (w tym przypadku podpięty pod COM1 programator PHOENIX). Po kompilacji trzeba załadować moduł‚ i uruchomić sasc-ng. Obie operacje muszą być wykonane z uprawnieniami użytkownika root.

~/sasc-ng % insmod dvbloopback.ko
~/sasc-ng % ./sasc-ng -j 0:1

Opcja '-j 0:1' wskazuje na numery odpowiednio prawdziwego (0) i wirtualnego urządzenia (1). Wszystkie aplikacje, które mają korzystać z sasc-ng muszą używać urządzenia wirtualnego. Dodatkowo wszystkie kanały powinny być oznaczone jako niekodowane. Od tej pory to sasc-ng będzie odpowiedzialne za dekrypcję, a aplikacji DVB to w ogóle nie będzie obchodzić. Do oglądania telewizji możemy użyć nawet zwykłego mplayera:

~/ $ mplayer -dvbin card=2 dvb://"TVN"

W przypadku VDR dobrze jest wybrać w 'Ustawienia' -> 'DVB' -> 'Aktualizuj kanały' opcje inne niż 'Nazwy i PIDy', czy 'Tylko PIDy'. W przeciwnym razie VDR oznaczy nam odpowiednie kanały jako kodowane i przy próbie ich nastawienia wyświetli komunikat 'Kanał niedostępny'. W pliku channels.conf trzeba zmienić CAID każdego z kanałów na 0. VDR należy uruchomić z opcją -D, wskazującą na urządzenie wirtualne. Pomysł jest na prawdę dobry, jednak prace nad implementacją nadal trwają. Kod jest wysoce eksperymentalny, często mało elegancki i pełny błędów. Lista możliwości zmienia się z każdym dniem, dlatego po więcej szczegółów najlepiej udać się na stronę wiki projektu i forum dvbn. Strona wiki stanowi systematycznie uzupełniananą dokumentację, a na forum można znaleźć najświeższe informacje dotyczące programu oraz rozwiązania na potencjalnie napotkane problemy.

Jakub Zalas

Jakub Zalas

Architekt, Programista, Trener