Mé zkušenosti příjmem televizního signálu začínají už u analogu, kde jsem používal do dnes nepřekonaný tvtime. Nová verze, s pohodlnou podporou DVB, se nikdy neobjevila a poslední byla vydána v roce 2005. Už tenkrát jsem si pohrával s myšlenkou streamovat TV do domácí sítě, ale s analogem to nebylo tak jednoduché jako později s digitálním vysíláním.
O pár let později jsem si pořídil domácí server, který se potichu v rohu staral o sdílení dat. Po malých hardwarových úpravách jsem ho naučil DVB-S a začal používat MythTV. Kdo někdy MythTV zkoušel, ví, že to není úplně jednoduché, zvlášť u satelitu, kde se musí řešit dekódování přes dvbloopback a podobné věci. Navíc MythTV je velmi dobré pro dálkový ovladač a televizi, ale už méně pro koukání na PC, kde jsem nakonec s TV trávil nejvíce času. Rok na to jsem objevil Tvheadend, který přesně splňoval mé požadavky a v tomto článku vám řeknu, jaké to jsou. Možná ho pak začnete používat také.
Porovnání s MythTV
Zmínil jsem MythTV, na které nemám moc dobré vzpomínky, ale jde spíše o nevhodné použití, než že by byl problém v něm. MythTV je dobré v těchto případech:
- Máte hodně TV karet na více počítačích
- Z nějakého důvodu chcete streamovat analogový signál
- Primární cíl je obrazovka televize
Musíte však počítat s tím, že:
- Konfigurace není zrovna jednoduchá
- Dekódování už vůbec ne
U MythTV je především problém s komplexní architekturou, která má obrovské možnosti, ale komplikuje nasazení. Uživatel nejprve musí nastavit backend, případně více backendů, a k němu nebo k nim jeden či více frontendů. Backend se stará o příjem TV signálu a případně o nahrávání. Frontend je pak to, s čím komunikuje uživatel, resp. přes co se na televizi dívá. Pro komunikaci mezi backendy se používá vlastní protokol a MySQL databáze, což je další mínus, které konfiguraci nedělá jednoduší. Navíc spojení k databázi musí mít i frontend. Když se MythTV podaří nasadit, slouží dobře, má hodně pluginů a pokud se poperete s jeho frontendem, budete spokojeni.
Pokud ale nechcete strávit celé dny konfigurací MythTV, můžete zkusit alternativu, která funguje trochu jinak a pro potřeby běžné domácnosti je mnohem vhodnější. Jeho hlavní přednosti obecně i proti MythTV jsou:
- Žádná databáze
- Webové rozhraní pro konfiguraci (ladění kanálů i nahrávání)
- Možnost koukat na TV přes web (VLC plugin)
- Konfigurace je snadná a na pár minut
- Umožňuje dekódovat signál pomocí karty bez patchování jádra
- HTTP/RTSP stream signálu do sítě
Na Tvheadend je super především to, že od vás nebude požadovat tolik času. Stačí ho nainstalovat, přidat DVB tuner, vybrat lokalitu a on si sám začne hledat kanály. Když má hotovo, můžete nalezené kanály namapovat do seznamu s kanály a vesele se koukat kdekoli ve vaší síti i v jejím blízkém okolí (3–6 Mbit datový tok) s přehrávačem, který zvládá přehrávat stream přes HTTP. Dobře funguje například VLC nebo Mplayer (včetně jeho nadstaveb). Pokud vyloženě nenarazíte nějaké problémy s kompatibilitou vaší DVB karty, zabere vám konfigurace maximálně hodinu.
Nová verze Tvheadend nevyšla už dva roky, ale to zas tolik nevadí, protože na něj vývojáři nezapomněli a můžete použít aktuální zdrojové kódy zveřejněné na Githubu, do kterých něco přibývá něco nového každou chvíli. Jedním z rozdílů mezi poslední stabilní verzi a git repositářem je forma streamu. Zatímco stará používala RTSP protokol, ta nová už jede na HTTP. Nejsem schopen posoudit, který protokol je lepší, protože na lokální síti jely oba. S RTSP jsem měl problémy kvůli spolupráci s knihovnami v aktuálním Ubuntu, kvůli čemuž jsem nakonec přešel na git verzi.
Na rozdíl od MythTV není uživateli vnucován žádný frontend, a tak má možnost výběru. Dnes se jako nejlogičtější možnost jeví multimediální centrum XBMC, na které se proti MythTV lépe kouká a podle mého názoru se i líp ovládá. Další možností je multimediální centrum Showtime, které je vyvíjené stejnými lidmi jako Tvheadend. Stejně dobře ale můžete použít čisté odkazy na jednotlivé kanály a vytvořit si playlist třeba ve VLC.
Stejně jako MythTV, umí Tvheadend i nahrávat. Konfigurace nahrávání se provádí z webového rozhraní a je možné využít EPG nebo třeba regulární výrazy. Můžete si nadefinovat víc úložišť, parametry pro nahrávání a také post-script, kterým můžete dokončené nahrávky překódovat do úspornějšího formátu.
Na jedné frekvenci u DVB-S i T vysílá hned několik kanálů, a tak se nabízí možnost koukat (nebo nahrávat) víc kanálů najednou. To samozřejmě závisí na počtu tunerů, případně zda jsou oba kanály na jednom multiplexu/transpondéru. Tvheadend tuto situaci umí řešit a snaží se vytěžit z dostupných zdrojů maximum. Jediným limitem je výkon počítače, kde Tvheadend běží a kapacita připojení do sítě. Na mou instanci Tvheadend používám Celeron 1.2 GHz s 384 MB RAM na MiniITX desce a každý kanál si vezme přibližně 25 % CPU. Bez cukání mohu sledovat tři kanály najednou nebo 2 nahrávat a na další se koukat. Protože mám jen jednu DVB-S kartu, tak samozřejmě v rámci jednoho transpondéru.
Instalace
Na instalaci není nic složitého a protože Tvheadend nemá moc závislostí, doporučuji použít spíše git verzi. Balíčky jsou dostupné pro Debian a Ubuntu. Ostatní distribuce jsou „odsouzeny“ ke kompilaci.
$ git clone https://github.com/andoma/tvheadend.git
$ cd tvheadend
$ ./configure
$ make
# ln -s /cesta/ke/zdrojákům/build-linux/tvheadend /usr/bin/
Pokud chybí nějaká závislost, během procesu se o ní dozvíte. Na spouštění na pozadí můžete použít třeba nedávno recenzovaný Supervisor. Než tak uděláte, je potřeba pro Tvheadend nastavit uživatele a nastavit heslo pro interního superusera. Začneme systémovým uživatelem, pod kterým Tvheadend poběží a nezapomene ho dát do skupiny video.
# adduser tv
# usermod -G video a tv
A pak pod ním spustíme Tvheadend s parametrem -C.
# su tv
$ tvheadend-git -C
Tím vytvoříme základní konfiguraci a bude také vytvořen uživatel bez hesla, který dostane přístup odkudkoli. Pokud chcete použít trochu zabezpečení, je možné vytvořil superuživatele, který bude mít přístup ke všemu, ale pod heslem. K tomu stačí vytvořit soubor ~/.hts/tvheadend/superuser a do něj nakopírovat následující obsah.
{
"username": "root",
"password": "nehashovane_heslo"
}
Pokud chcete zůstat u superuživatele, smažte toho, který se vytvořil společně s konfigurací:
$ rm ~/.hts/tvheadend/accesscontrol/*
Teď už by měl Tvheadend naběhnout.
$ ~/tvheadend-git -u tv -g video
A v prohlížeči se můžete připojit k jeho webovému rozhraní. To najdete na adrese vašeho serveru a portu 9981. Pokud máte Tvheadend na lokálním počítači, je to http://localhost:9981/.
Webové rozhraní
Webové rozhraní pro konfiguraci DVB karet, nahrávání je napsáno pomocí frameworku ExtJS a jak jste možná postřehli, spouští se společně s daemonem. Pro přidání DVB karty nemusíte dělat nic speciálního, jen běžte do Configuration->TV Adapters, vyberte svůj adaptér a po kliknutí na Add DVB Network by Location vyberte oblast, ve které se nacházíte, případně satelit, na který máte nasměrovanou parabolu. Tvheadend začne okamžitě skenovat všechny transpondéry a multiplexy, které se tímto krokem přidaly a v záložce Services se začnou postupně objevovat nalezené kanály. Druhou možností, jak dosáhnout minimálně stejného, ale spíše lepšího výsledku, je použít záložku Multiplexes a naklikat do ní parametry multiplexů nebo transpondéru ručně. Tvheadend se pak nebude zdržovat těmi, co nepotřebujete nebo dokonce mít nemůžete. Až bude vše hotové, klikněte na tlačítko Map DVB services to channels, čímž namapujete nalezené služby do seznamu kanálů, který najdete v záložce Channels.
To by mělo pro základní nastavení stačit. V záložce Electronic Program Guide si můžete procházet program jednotlivých kanálů a pokud máte VLC plugin do svého prohlížeče, můžete se na jednotlivé kanály koukat přímo z prohlížeče. Další možností je nastavit na vybraný pořad nahrávání.
Závěr
Tvheadend není v porovnání s MythTV tak komplexní, za to se lépe nastavuje, pokud máte dekódovací kartu, umí dekódovat šifrované kanály, konfigurace je otázkou několika kliknutí a televizi máte k dispozici na všech přehrávačích, které si poradí se streamem. Má i velmi dobrou podporu pro nahrávání a umí nahrávat i pořady na základě zadaného regulárního výrazu. Mezi další možnosti Tvheadend je podpora pro IPTV, ale protože IPTV nemám, nemohu podporu vyzkoušet. Měl by si dobře poradit s jakoukoli linuxem podporovanou DVB kartou, a to jak pro kabel, tak pro satelit či anténu. Je možné i spravovat uživatele, kteří se mohou na televizi dívat, nebo jim i povolit plný či omezený přístup do webového rozhraní. V kombinaci s dobrým frontendem dokáže Tvheadend konkurovat MythTV i na televizích.