Přenos DVB-T kanálů po IP

Testovací DVB-T sestavaPozemní digitální televizní vysílání DVB-T nabízí uživatelům příjem množství, jak televizních tak rádiových, kanálů v SD a HD kvalitě. Jak ale přijímané kanály vysílat po IP síti?

Se zdražením servisních poplatků satelitního příjmu jednoho z poskytovatelů jsem byl u rodičů nucen zamyslet se nad možnostmi využití ostatních technologií. Satelitní příjem byl zřízen v době přechodu z analogového příjmu na DVB-T. V té době byl v příslušné lokalitě, malá vesnice mezi kopci, tak špatný příjem signálu, že nejlepší variantou bylo DVB-S. Televizní přijímač Samsung LE32B450, tedy zobrazovač pro DVB-S tuner, který jsem v té době zakupoval, podporuje DVB-T, nicméně nikdy nebyl důvod příjem vyzkoušet.

Z možností, které jsou dnes běžně dostupné je příjem po síti Internet nebo příjem DVB-T. Proč tedy nevyzkoušet příjem DVB-T s možností přenosu po IP síti? Před několika lety jsem při přenosu vysílání z MS v ledním hokeji použil utilitu GetStream. Po svém novém systému jsem chtěl o něco více funkcí:

  • Jednoduchá konfigurace přes GUI,
  • webové rozhraní,
  • možnost příjmu programem Kodi (XBMC) a VideoLAN (VLC),
  • možnost načasování nahrávání pořadů a pozdější přehrání (DVR),
  • připojení více přijímačů DVB-T,
  • připojení více uživatelů najednou.

Testování

Hardware

Jako testovací lokalitu jsem zvolil Prahu, protože mám ze společné antény dobrý signál pro většinu přijímaných multiplexů. Při testování se nebudu zabývat přenosem využívajícím multicast.
Poslední rok se aktivněji zajímám o softwarově definovaná rádia (SDR), a proto vlastním několik USB přijímačů založených na Realtek RTL2832/Rafael Micro R820T. Stávající příjem v Praze zajišťuje Pinnacle PCTV nanoStick T2 s podporou DVB-T2.
IP síť je postavena na 100 Mb a 1 Gb prvcích a jednom 5 GHz WiFi AP. Přístup k internetu zajišťuje TP-LINK TL-WR841N/ND v7 s vlastní kompilací OpenWRT. Lokální síť obsluhuje server Raspberry Pi s OS Arch Linux, DHCP, proxy, DNS, … Právě na tomto serveru jsem se rozhodl otestovat možnosti proudového přenosu DVB-T přes IP.
Použitá zařízení pro DVB-T server:

  • Raspberry Pi B, 8 GB SD s Arch Linux, 512 MB RAM, 1 x USB sběrnice, 2 x USB 2 porty, 100 Mbps síť + i2c RTC DS1338
  • 2 x Realtek Semiconductor Corp. RTL2838 DVB-T
  • 1 x PCTV Systems nanoStick T2 290e
  • Genesys Logic, Inc. 4-port hub
  • ASMedia Technology Inc. ASM1051 SATA 3Gb/s bridge
  • 1 TB SATA 3.0, 6.0 Gb/s, Western Digital Red WDC WD10JFCX-68N6GN0
  • aktivní anténní rozbočovač Seebest 8830FL9, zisk 30 dB, šum < 5 dB

Testovací DVB-T sestavaRaspberry Pi slouží jako server zpracovávající přijímaný televizní signál ze společné antény skrze aktivní rozbočovač 8830FL9 pomocí 3 x USB DVB-T přijímačů. Aktivní rozbočovač je důležitý v případě nepříliš silného signálu z televizního rozvodu. Každých jednotlivý metr napáječe (koaxiální kabel) přijímaný signál utlumuje a vnáší do něho nepatrný šum. Pokud signál dále rozbočíme (bez zesílení), jednoduše vydělme úroveň přijímaného signálu počtem výstupů rozbočovače a vyjde nám výsledný signál, který přijímá náš DVB-T tuner. Tato matematika je hodně zjednodušená a slouží pouze pro orientační účely. Proto jsem použil aktivní rozbočovač s integrovaným zesilovačem. Ten je schopen ztráty v rozbočovači kompenzovat.

Seebest 8830FL9 je čínský levný rozbočovač, který ale svoji práci zastane bez problému. Bohužel nemám vybavení na změření charakteristik, a proto nejsem schopen opravdu objektivně posoudit kvalitativní parametry. Na příslušném obrázku si lze ale všimnout jedné maličkosti, na posledním výstupu rozbočovače není nic připojeno. To je samozřejmě špatně, protože pokud zde není přijímač, měl by být výstup zakončen odporem o velikosti impedance výstupu. V mém případě tedy 75 ohmů. Vadí to něčemu? Ano i ne. Na správně „nezaterminovaném“ konci se nám část signálu odráží a s určitým fázovým posunem se nám vrací zpět do soustavy. V případě přijmu DVB-T je to zanedbatelné část. Pokud by se jednalo o vysílač, odražený signál by nám mohl natropit hodně nepříjemností a dokonce zničit výstupní zesilovač před takto nezakončeným výstupem. Proto se v IT technice např. u SCSI sběrnic používají terminátory (dříve i u 10BASE2). Více viz termíny VSWR, SWR, PSV, ČSV.
Pevný disk je použit pro uložení nahraných pořadů. Bohužel Raspberry Pi B neobsahuje SATA řadič. SATA/USB převodník, který má propustnost cca 20 MBps, využívá stejnou USB sběrnici jako vše ostatní (síť, DVB-T přijímače). Poznámka pro zapamatování: využít základní desku s několika nezávislými USB sběrnicemi, ne jako v případě Raspberry Pi několik portů na stejné sběrnici:
# lsusb

Software

Hlavní stránka TVheadendVýběr vhodného programového vybavení byl zaměřen pouze na vlastní DVB-T aplikaci, která musí pracovat na Arch Linux pro ARM. Podle výše uvedených požadavků jsem se rozhodl vyzkoušet TVheadend, který podporuje jak DVB-T, tak DVB-S a DVB-C. Pro Arch Linux je v repositáři AUR ve verzi 3.4.27-2. Jedná se o poněkud starší vydání, ale novější stabilní zatím není. Nicméně se pilně pracuje na zatím vývojové řadě 3.9 (budoucí 4).
Instalace nevyžaduje žádnou databázi a veškeré konfigurační soubory jsou ukládány do domovského adresáře uživatele hts, který má jako skupinu zcela logicky nastaveno video. Já jsem tento adresář přemístil na pevný disk. Hlavním důvodem je častý zápis datových souborů a to souborové systémy umístěné na SD kartě nemají rady. Tedy, těm je to jedno, ale kartě se zkracuje životnost.
Po startu TVheadend v Arch Linux pomocí systemctl start tvheadend.service, by měli být otevřeny dva síťové porty. 9981 pro webové rozhraní (HTTP), 9982 pro datový proud obsahující obrazová a zvuková data z příslušného kanálu (HTSP). TVheadend propaguje tyto dva porty také jako služby Avahi (implementace ZeroConf).

Tvheadend - multiplexyTVheadend vyžaduje pro příjem DVB-T jednoduchou konfiguraci počínající definováním kmitočtů (lze najít na internetu, nebo vyhledat utilitou w_scan, dostupnou opět v AUR) přijímaných multiplexů a následnou propagací nalezených kanálů. Pro každý DVB-T přijímač je nutné nadefinovat konkrétní kmitočty zvlášť. To může být užitečné pro případ, že chceme konkrétním přijímačem zpracovávat pouze některý multiplex. Nic nám ale nebrání vybrané definice multiplexů kopírovat k dalším zařízením.
Vyhledání kanálů utilitou w_scan (zkrácený výpis):

Pro příklad, z následujícího textu nás zajímá kmitočet nalezeného multiplexu, tedy 602000 kHz (602 MHz):

Pokud máme kanály vyhledány, nastavíme EPG (programového průvodce). K některým pořadům nalezne Tvheadend EPG přímo v datovém toku, některé nám ale zůstanou bez označení. Tuto situaci můžeme alespoň částečně, bohužel ne úplně, eliminovat nastavením dalšího zdroje dat.

Vytvoříme soubor /usr/bin/tv_grab_file s obsahem:

Po restartu démona Tvheadend ve webovém rozhraní na kartě Configuration > Channel/EPG > EPG Grabber v sekci Internal Grabber > Modul vybereme XMLTV: tv_grab_file grabber a nastavíme Grab interval.

Klient Kodi

Kodi - TVKodi (dříve XBMC) je multimediální centrum, které lze provozovat pod OS Windows, GNU/Linux a MacOS. Kromě přehrávání videí, zvukových souborů, zobrazování obrázků a počasí dokáže pro nás to hlavní, Kodi umí výborně spolupracovat s Tvheadend a bez problémů podporuje EPG a nahravání pořadů.

Nejprve je ale nutné aktivovat/nainstalovat příslušný zásuvný modul a provést jeho konfiguraci. V té je potřeba zadat IP adresu/hostname serveru a příslušné HTTP a HTSP porty, tedy 9981 a 9982.

Zhodnocení z závěr

Po několika měsících používání se nevyskytl žádný větší problém a k předchozímu stavu v Praze jsem se už nevrátil. A jaký vlastně předchozí stav byl? DVB-T2 přijímač v PC i7 s Windows 8.1 a Windows Media Center. Dnes místo WMC používám Kodi a mohu sledovat TV na několika zařízeních najednou. Jen se musí počítat s tím, že pokud jsou v provozu dva a více DVB-T multiplexy a nahrávání pořadu, Raspberry Pi a jeho USB na to vše nestačí a obraz občas „kostičkuje“. Procesor zvládá, ale ta zpropadená USB sběrnice, kde jsou veškeré periférie, nestíhá. Ono Raspberry Pi s Tvheadend pouze přesměrovává datový tok programového kanálu z multiplexu přes síťové rozhraní uživateli, a proto není procesor tolik vytížený.
Následující verze Tvheadend by měla umět transkódovat datový tok za použití, co se týká propustnosti, lepšího kodeku. Na to již ale Raspberry Pi nestačí je bude potřeba výkonnější procesor s pokud možno integrovanou podporou kódování multimediálního obsahu.

U rodičů je aktuální konfigurace jiná. Původní polské síto s továrně instalovaným předzesilovačem SWA-3 (předzesilovač lze nalézt na Aliexpress) a koaxiálním kabelem se vzduchovým dielektrikem jsem vyměnil za novou, léty prověřenou, anténu Color Klasik a celoměděným kabelem Draka 1.13/4.8 F PE. O anténě se asi nemá cenu rozepisovat. Draka 1.13_4.8 F PEKoaxiální kabel Draka je venkovní kabel odolný vůči UV záření. Vnější průměr je obvyklých 6,8 mm a katalogový útlum cca 17 dB/862 MHz/100 m. Dielektrikum je pěnový PE. Stínění tvoří Cu fólie opletená Cu vodičem s krytím 40 %. Kabel je kvalitativně srovnatelný s oblíbeným Belden H125.
K přijímacímu systému měli být připojeny tři DVB-T přijímače (dva televizory + jeden počítač). Jako rozbočovač jsem použil již zmíněný Seebest 8830FL9. Poslední výstup je využit pro sledování pořadů přes místní domácí WiFi síť. Místo Raspberry Pi mám ale na této lokalitě instalován Alix 3d3 s instalovanou miniPCI WiFi kartou MIKROTIK R52n-M, která zprostředkovává přístup do sítě Internet (Alix tedy slouží primárně jako internetová brána). Samozřejmě nechybí 1 TB pevný disk se SATA/USB převodníkem a jeden přijímač Realtek Semiconductor Corp. RTL2838 DVB-T.
Jako v případě lokality v Praze se zatím s uvedenou konfigurací nedostavil žádný problém.
Color Klasik - instalacePoužitá anténa, s příjemným ziskem 10 – 15 dB, nepotřebuje pro stabilní příjem zesilovač. Pokud ale chceme přijímat méně silný a kvalitní signál, bez nízkošumového zesilovače se neobejdeme. Při výběru antény si ale musíme rozmyslet, zda je pro nás podobný typ vhodný. Vysoký zisk je totiž vykoupen (v mém případě je to pozitivum) úzkým vyzařovacím diagramem a malými postranními laloky. Nebudeme tedy moci, jako v případě síta, přijímat několik vysílačů najednou. Na druhou stranu, kdo by chtěl mít v playlistu pětkrát Novu, kde je pouze jedna funkční…

Zdroje informací o pokrytí DVB-T

Aplikace ČTÚ:

Související

Radiové obvody a jejich vlastnosti – rozhraní
DVB-T přes IP pomocí TVheadend

1 komentář u „Přenos DVB-T kanálů po IP

  1. Pingback: Jak se loví letadla aneb Přijímáme ADS-B | brichacek.net

Leave a Reply