2016-02-14

Set-top-box k O2TV pro další televizi zdarma

Dostal se ke mně zajímavý úkol: Jeden z klientů, kterému se starám o IT infrastrukturu mě požádal o konzultaci k zakoupení dalšího O2TV přijímače k další televizi, kterou má doma. Technicky nebylo možné koupit jednoduše a draze nový tuner, ale sestavil jsem jiné řešení, které bylo zdarma. Protože se z toho vyvinul docela zajímavý projekt, tak by byla škoda se o něj nepodělit se svými čtenáři.

Pokud si nechcete přečíst poutavou omáčku, skočte na technické řešení níže, na konci je pak nějaké souhrnné zamyšlení.

Nejprve uvedení do problematiky: O2TV je placená služba společnosti O2, která vám zprostředkuje příjem televizního signálu prostřednictvím jejich internetového připojení, které jede nejčastěji přes technologii VDSL. V principu tedy přijímáte televizní signál přes telefonní dráty. (což je samo o sobě docela legrační)



Platí se to jako služba a podle mě je to příšerně drahé na to, jak je to zbytečné. Běžné pozemní digitální vysílání (DVB-T) se dá dneska i v železobetonové zástavbě chytnout na anténu za 50 Kč namísto měsíčních 400 Kč za O2TV. (pokud tedy vůbec sledujete televizi) Jenže, pokud jste sportovní fanda, tak vám nic jiného nezbude, protože O2 zakoupila všechna vysílací práva na český, anglický a já nevím ještě jaký fotbal, takže už to nebude vysílat veřejně Česká televize a musíte si pořídit tuto službu, což je i popisovaný případ, proč si klient pořídil O2TV.

Doma má běžný xDSL modem ze kterého je rozveden internet ethernetem po celé obrovské prvorepublikové vile. Zažil jsem si tam horké chvilky už s touto kabeláží, neboť původně to (ne)jelo jen na modemu a WiFi repeateru. Po přepracování se mi podařilo dostat na 3 routery (už byly koupené) s AP pro zajištění konektivity v domě. Proč to zmiňuji? Modem leží v obýváku a hned vedle je hlavní TV ke které je připojený O2TV tuner, takže s první instalací nebyl vůbec problém. 



Jenže se objevila potřeba připojit i druhou televizi v patře (každý přece rád sleduje filmy z postele), ale z důvodu technického řešení je potřeba tuner připojit do prvního modemu, což bylo nějakých 30 metrů daleko. Tento drobný detail mi také málem unikl, naštěstí mám s modemy od O2 bohaté zkušenosti a tak jsem se rozpomněl na barevné značení portů.



Proč to tak je? O2TV neteče k vám domů stejným virtuálním okruhem jako internet (což ovšem neznamená, že ho nezpomaluje, protože dráty jsou jenom jedny). Řešeno je to pomocí technologie ATM (popisoval jsem je tady), která končí právě v modemu, kde je hranice mezi "velkým internetem" a vaší lokální sítí. TV tuner se potřebuje dostat k tomuto okruhu, který je v prvním modemu, přičemž vysílat televizní okruh dále do sítě rozumně nelze.

Takže co s tím? Oficiálním řešením je opravdu natáhnout další ethernetový kabel přes 4 místnosti a patro. Tento návrh však není paní domu povolen, prý už je tam kabelů dost a navíc AP s WiFi je nedaleko. Majitel se naštěstí rozvzpomene, že dostal od O2 přihlášení do O2TV GO a hned je jasno, kam další vývoj povede. O2TV GO je webové rozhraní k televiznímu vysílání nezávisle na poloze uživatele. Je tedy možné sledovat TV na mobilu či notebooku. Otázka zní, jak dostat obraz do televize, aby byl alespoň částečně zachován princip televizního přístroje.



Technicky

Analýza mě zavedla k bezplatné linuxové nástavbě XBMC nyní zvanou KODI se kterou jsem si už dříve hrál. Jde o software na principu Windows Media Center, tedy maximálně zjednodušené ovládání vhodné pro obrazovky televizí. Do tohoto prostředí existuje doplněk video.o2tvgo od vývojáře Štěpána Orta, který zajistí připojení O2TV, zbývá jenom domyslet, jak to celé zprovoznit.



Hledal jsme vhodné zařízení. Protože jde o pilotní projekt, který je určen k uživatelskému testování, tak jsem vybral jako hostitele starý notebook Lenovo 3000 C200 zde ve verzi s Intel Core 2 Duo a díky vykuchání jiného notebooku i s 3 GB RAM namísto původních 512 MB. Protože podkladovým operačním systémem je Kodibuntu a jiné, tak je soustava dost dobře přenositelná i na jiné platformy než x86-64, zejména tedy ARM o tom ale později.



Instalaci linuxové OS zvládne i "slepice, pokud nasypete zrní kolem enteru". Pokud si soustavu přepnete do čestiny (System => Settings => Appearance => International => Language), tak zvládnete přidat také O2TV doplněk z flash disku (Systém =>Nastavení => Doplňky => Instalovat doplněk ze zip souboru), tím by mohla být soustava hotova, zbývá ji jen připojit k TV za pomocí VGA kabelu na obraz a propojky dvou 3,5 mm jacků pro zvuk. Pokud máte k dispozici HDMI, tak to bude lepší volba. Jak jistě tušíte s vyladěním je práce více.




Připojení Kodi k WiFi

Ať jsem hledal jak jsem chtěl, v menu jsem neviděl možnost připojit pomocí WiFi. Pro nastavení WiFi se totiž musíte přihlásit v desktopovém prostředí, tedy opustit XMBC rozhraní. Popisují to následující obrázky:



Rozhraní Kodi zavřete v levém dolním rohu tlačítkem vypnout, dále pokračujete možností "ukončit", tím dojde k odhlášení.



Na další obrazovce přepnete v pravém horním rohu rozhraní Kodi na Lubuntu kam se přihlásíte stejným jménem a heslem, jako jste zadali při instalaci.



Po naloadování plochy najdete v pravém dolním rohu ikonu připojení k síti, kde si vyberete svou WiFi síť do které se za pomocí průvodce přihlásíte.



Po dokončení se odhlásíte přes tlačítko vypnout (opět pravý dolní roh) možností odhlásit se.



Na přihlašovací obrazovce se přepnete do rozhraní Kodi a přihlásíte jménem a heslem. Teď už bude XBMC přihlášeno přes WiFi. Změny provedete opět tímto postupem, protože zde chybí správce z prostředí.

Dálkový ovladač

Jednou z podmínek soustavy bylo, že princip zůstane podobný běžnému TV přístroji ovládání, tedy nesmí zůstat pouze na notebooku. Naštěstí to v XMBC už vyřešili, stačí si stáhnout aplikaci z Google Play, případně AppStore a mít připojený notebook a telefon ke stejné lokální síti (přes mobilní internet to nepojede).



Komu by se nechtělo (nemohl) instalovat aplikaci, tak lze zapnout ovládání přes webové rozhraní. Poté stačí naťukat v mobilu (opět ve stejné síti) IP adresu notebooku http://0.0.0.0:8080, ovládání je takto krkolomnější, zato pojede všude.




Bez chytrého telefonu se ale dá obejít zakoupením nějakého hardwarového ovladače. Proč to ale komplikovat...

Automatické spuštění TV

Je poněkud nepohodlné, když je při každém zapnutí notebooku nutné se doklikat ke spuštění doplňku. Naštěstí v Kodi lze autostart skriptem spustit rovnou doplněk. Zde už se ale zachází do linuxové podstaty systému. Pokusím se to popsat tak, aby to zvládl i laik.



Ze zapnutého Kodi proveďte klávesovou zkratkou CTRL + ALT + F1 přepnutí do konzolového zobrazení. (zpátky CTRL + ALT + F7) Zde se přihlásíte stále stejným jménem a heslem.



Zadejte příkaz ls -la a podívejte se, zda-li se ve vaší složce nachází skrytá složka .kodi, pokud ano pokračujte příkazy 
cd .kodi/userdata/
nano autoexec.py
otevře se textový editor (a automaticky se vytvoří soubor)  do kterého vepíšete následující dva řádky
import xbmc
xbmc.executebuiltin('RunAddon(plugin.video.o2tvgo)')
zkratkou CTRL + O soubor uložíte a CTRL + X zavřete. Po restartování vás tak přivítá automaticky spouštěný doplněk O2TV. Ještě by to chtělo, aby se po spuštění rovnou také zapnula nějaká TV stanice, protože takto to zůstane viset na seznamu stanic, což není příliš pohodlné. (na této úpravě pracuji)

Účet superuživatele

Protože už jsme dostali do terminálového prostředí, budeme potřebovat oprávnění roota pro některé operace. Je to naštěstí snadné, přihlaste se běžným uživatelem a pak si v interaktivním režimu nastavte toto další heslo. Příkaz zní: 
sudo passwd root

Nastavení napájení

Jelikož nechci, aby mi při přehrávání TV svítil displej notebooku, který navíc nelze za pomocí funkčních tlačítek na klávesnici zhasnout, tak bych chtěl, aby se při sklopení víka alespoň neuspal a přehrávání dále běželo. To je možné snadno nastavit. Přihlašte se účtem superuživatele a pokračujte příkazem: 
nano /etc/systemd/logind.conf
kde změňte následujcí řádky
HandleLidSwitch=ignore
HandePowerKey=hibernate
případně i nějaké jiné podle svých preferencí a opět uložte pomocí CTRL+O a ukončete CTRL+X, pro aplikování změn proveďte restart notebooku.




Nastavení hlasitosti

Zdálo se mi, že notebook má při každém spuštění poměrně nízkou hlasitost a nepamatuje si její zvýšení. Tak jsem na to šel bez servítek a při každém spuštění se hlasitost nastaví natrvdo na 90% maximální. Jemnou regulaci lze stejně provádět na televizi ovladačem nebo pomocí mobilního telefonu.



Pod právem superuživatele si otevřete konfigurační soubor příkazem 
nano /etc/rc.local
a před řádek exit 0 vepište příkaz 
amixer set 'Master' 90%

Nastavení obrazovky

Poslední věc, kterou zbývá udělat před definitivním spuštěním do provozu je připojit televizi a nastavit správné rozlišení obrazu, což může být trochu problém zejména s ohledem na to, že pravděpodobně také používáte nějaké staré zařízení jako přehrávač.



V ostrém provozu mi usnadňuje to, že starší televize LG 42 PJ350 má stejné maximální rozlišení jako notebook (1024x768). V testovacím prostředí mám však TV s FullHD, kde mi vadilo rozplácnutí obrazu. Problém je prostá duplikace obrazu na více cílů, kterou provádí Kodi. Naštestí lze nastavit, že LCD TV je zdroj primární a podle té se deformuje obraz na monitoru počítače, kde to nevadí. Tak jak na to?
Systém => Nastavení => Systém =>Video výstup => Monitor
kde VGA1 je výstup na televizi v požadovaném rozlišení a LVDS1 je DVI rozhraní obrazovky notebooku. V nabízených možnostech jste limitováni tím, co umí grafická karta notebooku.




Praktické zkušenosti

Jsou zatím příliš krátké, ale největší obtíže dělá probuzení soustavy dálkovým ovladačem - na WiFi to je docela problém. Dále spuštění stále obsahuje poměrně hodně kroků: otevřít notebook, zapnout jej, zapnout TV, přepnout vstup, vybrat kanál, zavřít notebook, otevřít aplikaci, což jak cítíte není moc pohodlné, navíc doplněk O2TV není také softwarově úplně dodělaný, což komfortu nepřidává.

Budoucnost projektu

V průběhu oživování mě napadlo postupně mnoho myšlenek, jak projekt posunout dále. Pokud odmyslíme softwarovou implementaci O2TV doplňku v Pythonu, pak je největší možnost pokroku v hardwaru na kterém běží a související architektuře.



Začal bych asi od Raspberry PI, které je pro toto použití jako dělané. Ještě vhodnější je Raspberry PI Zero, se svou velikostí totiž může zůstat viset na kabelech za TV. Evolucí by pak mohla být nějaká HDMI tyčinka jako Intel Compute Stick či Chromecast a podobné. (u nich už bohužel cena roste nahoru) A co takhle nechat běžet Kodi na NASu, Turrisu či jinde a přenášet přes DLNA pouze obraz? To už je ale opravdu výživné "scifi"...



Všemi těmito úpravami vlastně přidávám chytrost do hloupých televizí, ale co když už chytrou televizi máte? (já ji nemám, nemohu otestovat) Záleží, co v ní běží za systém. Největší výhodou by bylo do ní nativně dostat XBMC alias Kodi, jenže to může být problém (minimálně kvůli záruky). Většina chytrých televizí ovšem podporuje instalaci Android aplikací. Bohužel je zde problém v tom, že v katalozích aplikací se nacházejí jen očesané verze O2TV GO bez možnosti přijímat živé vysílání. V mobilní aplikaci pro telefony to jde - že by stačilo APK nainstalovat na TV? Obávám se, že to bude také docela oříšek. 



Vzhledem k tomu, kolik se mi doma povaluje již jinak nevyužitelného hardwaru, je pro mě zajímavá právě možnost jejich zužitkování jako rozhraní pro chytré televize. Dokonce jsem zvažoval nasazení operačního systému Windows 8 Embedded jako podkladu, ale u nich už roste výpočetní náročnost, kterou většinou nemám. Navíc celý systém by bylo komplikovanější dotvarovat do potřebné funkcionality - přeci jenom Kodi už je na tento účel přizpůsobeno z výroby.

Závěr

Celý článek pojednává o tom, jak poměrně složitě zprovoznit televizi na televizi. Řeší problém druhé a každé další televize pro službu O2TV. Jak jste jistě v úvodním tónu vycítili, moc se mi to takto nelíbí. Předně nemám rád IPTV, která spotřebovává internetové pásmo, za další se za ní musí platit a pak je tu to hrozné zpoždění


To už je pak jako ten známý vtip o tom, kdo a jak jásá pří vstřelení gólu ve fotbale, podle toho jak se dívá na televizní přenos. Až dosud nejprve jásali diváci analogového vysílání, po nich příjemci digitálního vysílání, a následně diváci IPTV, pak bouchá šampaňské a teprve pak se začínají radovat také diváci satelitní televize.

Ještě jsem neobjasnil, jak je to s tím zdarma. Všechna použitá řešení jsou založena na otevřeném software - tedy nemusí se za ně platit. Notebook či jakýkoliv kus výpočetního železa doma možná najdete také a O2TV není započítaná do nákladů. Protože používáte své přihlašovací údaje, tak se nedopouštíte ani ničeho nezákonného. Paráda, ne?


Pokud jste dočetli až sem, tak vás asi tato problematika zajímá - budu rád, pokud mi do diskuse přidáte svůj pohled na věc nebo svá kritéria a omezení při stavbě podobné soustavy. Jestli jste se jenom zasekli na postupu výše, pokusím se vám s pomoci se zprovozněním. Nejlepší bude, pokud se můžete podělit o zkušenosti s provozováním. 

1 komentář :

  1. Pro RPi jsem našel parádní OS včetně KODI - www.osmc.tv
    na rozdíl od ostatních dstr nepadá a je velice svižný.
    A když už v TV běží něco, co by stálo za povšimnutí, tak doplněk pro KODI - sledovanitv je taky OK - i když placený /já ho mám jako favour zdarma/
    A ovládání OSMC přes HDMI CEC je k nezaplacení - jeden ovladač na všechno.

    OdpovědětVymazat

Dotaz, připomínka, oprava?
(pokud máte problém s vložením příspěvku, vyzkoušejte to v prohlížeči Chrome)