Linux E X P R E S

Facebook

Jak na sledování digitální televize (příklad z praxe)

dvtb.jpg

Nebude to jednoduché, možná to bude i bolet, ale při troše štěstí a spoustě získaných zkušeností bude výsledek jistě stát za to. Pokud jsme vás neodradili, můžete se v následujícím článku dočíst, jak na sledování digitální televize v Linuxu.


Situace s televizními kartami se ani během posledních let prakticky nezlepšila, a tak, pokud hledáte nějakou televizní kartu do počítače, která by vám navíc fungovala v Linuxu, musíte obvykle ještě před její koupí zapátrat na internetu a pak při troše štěstí získáte takový kus hardwaru, který vám bude dobře sloužit a neskončí jen jako kousek čehosi nepraktického vzadu v šuplíku.

Jak zjistit, zda je televizní karta podporovaná v Linuxu? UTFG :) Jinak řečeno, zkuste zadat do vyhledávače (Google) název zařízení spolu se slovem Linux, Debian, Ubuntu či jinou linuxovou distribucí a podívat se, zda a jak někomu funguje či nefunguje. Obvykle se při tom vyplatí sáhnout po zařízení, které se prodává již delší dobu a nejedná se o nějakou horkou novinku, na kterou vývojáři nestačili zareagovat a přidat její podporu do jádra.

Testovací USB TV karta

Pro svá testování jsem si zakoupil USB TV kartu HD DVB-T Mars. USB TV kartu jsem zvolil z toho důvodu, že je snadno přenositelná a můžete ji používat jak v notebooku, tak ve stolním počítači. Svojí velikostí přitom odpovídá klasickému USB flash disku, s tím rozdílem, že do ní z boku můžete zasunout anténní kabel. Ke kartě je dál dodáván dálkový ovladač a prutová anténa. Obojí se v mém případě však ukázalo jako nepoužitelné (na dodanou anténu jsem nic nechytil a ovladač nefungoval). Nicméně zakoupené zařízení je to nejlevnější, co jsem sehnal, a tak jsem s jeho koupí vztaženo k praktické funkčnosti nadmíru spokojen.

Na USB TV kartě je shora umístěno jakési čidlo, které jsem zprvu pokládal za blikající LED diodu. Protože však dosud ani neblikla, bude se zřejmě jednat o IR čidlo dálkového ovladače. TV kartě budiž přičtena k dobru podpora HD vysílání. Doslova před pár týdny se HD vysílání stalo dostupným i pro mě, a tak jsem tuto vlastnost velmi ocenil a mohl vyzkoušet HD televizi na počítači v praxi.

USB TV karta Evolve HD DVB-T Mars USB TV karta Evolve HD DVB-T Mars

Instalace potřebných ovladačů

V mém případě se jednalo o koupi naslepo, tzn. předem jsem netušil, zda bude, nebo nebude karta v Linuxu fungovat. Už kdysi jsem takto kartu kupoval a musím říci, že se to ve své době dalo obejít instalací novějších ovladačů umístěných mimo standardní distribuční jádro a i nyní mě v tomto vývojáři nezklamali (v opačném případě obvykle stačí nějakou dobu počkat, než se ovladače objeví). Pro nalezení toho správného postupu jsem do vyhledávače Google zadal výpis příkazu lsusb, resp. řádku týkajícího se výše uvedené USB TV karty.

ID 048d:9006 Integrated Technology Express, Inc.

Tato informace byla pro vyhledávač Google dostatečná a po několika kliknutích jsem objevil postup, jak USB TV kartu zprovoznit v Linuxu. Postup zprovoznění se přitom podobal tomu, který jsem znal už z dřívějška. Tzn. bylo potřeba sáhnout po nejnovějších ovladačích, které jsou zatím mimo aktuální (distribuční) linuxové jádro. Ke zprovoznění karty je potřeba provést následující:

Stáhnout firmware (přímý odkaz) od výrobce a rozbalit ho. Dále ze staženého souboru vytáhnout potřebné informace a nakopírovat je tam, kde jim rozumí:

dd if=dvb-usb-it9135.fw ibs=1 skip=64 count=8128 of=dvb-usb-it9135-01.fw
dd if=dvb-usb-it9135.fw ibs=1 skip=12866 count=5817 of=dvb-usb-it9135-02.fw
sudo cp *.fw /lib/firmware

Nakonec je potřeba stáhnout a nainstalovat poslední ovladače V4L:

sudo apt-get install git linux-headers-$(uname -r) build-essential patchutils libproc-processtable-perl
git clone git://linuxtv.org/media_build.git
cd media_build
./build
sudo make install

To by mělo stačit a v mém případě také stačilo znovu zastrčit USB TV kartu do počítače a ta začala fungovat. Pokud by vám to hned nefungovalo, doporučuje se provést restart počítače a pak pokračovat dál.

Základem je kvalitní signál

Protože mi přiložená anténka nefungovala (může se lišit podle místa, kde se nacházíte), zkusil jsem také anténní rozvod paneláku. Zde se sice nějaký ten šum objevoval, ale s nulovým výsledkem. Je zajímavé, že klasické televizi stačí leccos, zatímco TV tunery jsou náchylné na všechno možné. Po zakoupení směrové antény a zábavě spojené s její instalací se mi objevilo několik HD kanálů.

To mě tolik nadchlo, že jsem se rozhodl pořídit zesilovač signálu, ale ten způsobil zesílení všeho (signálu i šumu), na což zakoupená USB karta zareagovala tak, že jsem najednou nechytal vůbec nic. Zajímavé přitom bylo pozorovat, co na to klasická televize. Té se to naopak očividně líbilo, a tak jsem začal směrovou anténou chytat signál i ze směrů opačných, než byla pozice vysílače, prakticky jsem mohl anténu otočit kamkoliv a televizi to nevadilo. To mě znovu svedlo k hledání toho optimálního (pokud možno čistého signálu) a po koupi držáku na balkón jsem konečně mohl nasměrovat anténu směrem na vysílač, v mém případě to byl vysílač Krásné.

Po nasměrování antény na vysílač a jejím umístění na vhodnější pozici jsem zesilovač signálu sundal, ukázal se jako zbytečný, ba dokonce nežádoucí (nadměrné zesílení signálu je přinejmenším nežádoucí a nese s sebou zesílení šumu a nerovnoměrné zesílení jednotlivých kanálů).



Jak na ladění kanálů

K ladění kanálů lze použít nástroj w_scan, který lze ve výchozím nastavení spustit bez dalších parametrů. To se bohužel postupem času ukázalo jako nedostatečné, a takto spuštěný příkaz nakonec naladil pouze čtyři kanály České televize bez čehokoliv dalšího. Čím to bylo způsobeno, doposud nevím, ale nakonec jsem dospěl k názoru, že se kvalita nastavení i produkce jednotlivých kanálů liší dle poskytovatele, který daný kanál (nebo skupinu televizních kanálů) provozuje, a tak je prostě w_scan nemusí zachytit.

O poznání lepších výsledků dosáhlo spuštění programu w_scan s následujícím parametrem:

w_scan -F

Parametr -F přitom zapíná long filter timeout, což bychom snad mohli přeložit jako dlouhou čekací dobu odezvy na určité frekvenci. Teprve po zadání příkazu s tímto parametrem jsem se dozvěděl i o dalších běžně vysílaných televizních kanálech.

Jak na přehrávání televize

Pokud vám výše uvedený příkaz ukáže nějaké dostupné televizní kanály, pak máte téměř vyhráno a můžete si nechat vytvořit soubor se seznamem kanálů pro jeden z populárních přehrávačů. Nejprve jsem sáhl po oblíbeném přehrávači VLC, tzn. zadal příkaz:

w_scan -F -L > televize.xspf

Výstupem je soubor (seznam titulů) určený speciálně pro přehrávač VLC. Ten spustíte např. zadáním vlc televize.xspf nebo otevřením přímo z uživatelského rozhraní VLC, případně poklepáním na soubor, pokud je správně přiřazena asociace programu k typu souboru.

Bohužel byl v mém případě tento seznam nekompletní. Tzn. že program w_scan ve skutečnosti našel větší počet kanálů, než bylo v souboru televize.xspf uvedeno. Čím to je způsobeno, nevím, ale tuto chybu lze obejít ruční úpravou souboru na základě informací získaných od jiných uživatelů. Tzn. použil jsem wiki stránky českého Ubuntu a informace o sesbíraných digitálních kanálech zde uvedených.

Obecně totiž platí, že televize sice mohou vysílat na různých (jiných) frekvencích, ale jejich kódové označení zůstává stejné. Tzn. ČT 1 má stále kód 257, Nova má kód 513, Prima family má 773 atp. Na základě těchto informací stačí změnit pouze vysílací frekvenci daného kanálu a zbytek zůstává stejný. Pro úplnost a televizní vysílač Krásné přidávám kompletní soubor televize.xspf.

Abych zkusil také něco jiného, nechal jsem si vygenerovat soubor channels.conf pro přehrávání v mplayeru. Tento soubor vytvoříte zadáním příkazu:

w_scan -F -X > channels.conf

Vytvořený soubor je dál třeba umístit do adresáře ~/.mplayer. V mplayeru přehrajete své oblíbené televizní kanály zadáním příkazu:

mplayer "dvb://CT 1"

Resp. CT 1 nahraďte názvem televizního kanálu podle vytvořeného souboru channels.conf.

Pozor! Mplayer v aktuální verzi má problémy s přehráváním HD televizí. Jinými slovy, přehrávání HD televizí nefunguje. To se může lišit podle použité linuxové distribuce i verze přehrávače mplayer.

Nejen VLC a mplayer můžete použít k přehrávání digitální televize v Linuxu. Přehrávání digitální televize v jiných přehrávačích ale nechám na vás. Pro podrobné informace o použití příkazu w_scan můžete zadat:

w_scan -H

Co dál

Dál mě napadá, že bych chtěl televizi nahrávat (mencoderem nebo přes VLC), pozastavovat její přehrávání (klasicky mezerníkem či jiným obvyklým tlačítkem), streamovat televizi dál do sítě (že by se na to hodil opět přehrávač VLC?) nebo sledovat více kanálů najednou (tady bych asi potřeboval buď nějaký chytřejší kus HW s více tunery, pokud se takový vůbec dělá, nebo víc těchto USB televizních karet). Těch věcí, co se dá v takové situaci dělat a k čemu všemu kartu použít, je jistě víc a určitě ne každý se v tomto okamžiku spokojí „jen“ se sledováním televize. Odpovědi na tyto a další otázky však nechám na vás nebo na některém z příštích článků.

Diskuze (45) Nahoru