13.5.2018, 11:10
Už delší dobu se potkávám s různými názory a požadavky, co a jak by kdo chtěl v Kodi v oblasti zobrazování a zpracování lineárního televizního vysílání implementovat. A velmi často je z toho cítit nepochopení samotných principů Kodi v této oblasti. Proto nahodím jen pár zásadních hesel, aby bylo zřejmé, o co v Kodi v této oblasti jde. Částečně možná dubluji infromace v Tvheadend rozcestník od @marhycz a v dalších příspěvcích, které jsou ale už dost specifické a speciální, ale podle mne je občas asi dobře, vrátit se ke kořenům. Zejména pro nováčky, kterým je tento post věnován především
Live TV
Live TV je interní funkce Kodi.
Směrem k uživateli nabízí základní funkce:
PVR Klienti
Jsou to tzv. addons, tedy nemusí být nutně (ale mohou a některé i jsou) vytvářeny týmem Kodi. Na rozdíl od ostatních addons jsou ale specifické, a to v tom, že pro ně nexistuje podpora (rozhraní, funkce a knihovny) v Python), jako pro ostatní doplňky. Tyto addons musí být napsány v nějakém vyšším jazyce (nejlépe v C, či právě v C, pro který Kodi poskytuje příslušné knihovny a funkce obsahující příslušná rozhraní k Live TV). A co je hlavní, tyto addons musí být s Kodi (jeho knihovnami) přeloženy. Znamená to, kromě mnoha dalších věcí, že každá verze instalace pro každý cílový systém (Windows, a to zvlášť pro 16 i 32, Linux, LibreELEC, ...) každého addon PVR klienta, je nepřenositelná na jinou verzi ani na jiný systém.
PVR Servery
Nejsou součástí Kodi a pokud s ním nějak "interagují", tak jen prostřednictvím PVR klientů, kterým poskytují svá data (live streamy, EPG, obrázky s logy kanálů, atp.) a funkce, které PVR klienti přes standardní rozhraní "propojují" s Live TV funkcí Kodi. PVR klient a PVR Srever vytváří klasickou vazbu klient - server. Někdy je ta vazba zřejmá, jindy méně. Obsah vazby (ne vždy musí vazba obsahovat všechny nabízené možnosti) zároveň určuje, jaké funkce s ohledem na vlastní TV vysílání budou v Live TV k dispozici.
Jak mohou takové typické dvojice klient - server vypadat ukážu na třech případech:
Tvheadend
Existuje celá řada video doplňků, které umí přijímat lineární vysílání z IPTV/OTA zdrojů. Takovým příkladem je O2TVGO nebo iVysílání. Stěžejní funkcí takových doplňků je transformovat datovou strukturu serverů do jednoduchých seznamů Kodi, vkládat do nich adresy streamů, a také (velmi často) řešit někde požadovanou autentizaci. Některé z nich mají i další funkce, umí například zobrazovat a vybírat data z archivu, atd. Na rozdíl od PVR addon však data (vč. streamů) neposkytují dál Live TV, ale používají a přehrávají je přímo. V podstatě vytváří s "mateřským" serverem také dvojici klient - server, ale s tím, že prezentační vrstvu, kterou je u předchozích PVR addon funkce Live TV Kodi, zajišťují sami, pouze s využitím přehrávače Kodi. Výhodou takovýchto addon je to, že jsou psané v Python, což umožňuje značnou přenositelnost (jsou -li napsané správně, tak absolutní) mezi jednotlivými instalacemi, a do značné míry, i verzemi Kodi.
Video
Asi by v tomto přehledu měla padnout i tato možnost. Kodi ji umí nativně a tak je vhodné ji uvést taky. Kodi umí přehrávat streamy, pokud jsou ve vhodných formátech (v kontejnerech a kódování). Stačí pro to jediné. Stream, tedy jeho adresu uložit do souboru s příponou strm. Pak stačí složky s takovými soubory přidat jako soubor a od té doby si můžete obsah živých TV streamů přehrávat jako každé jiné video. Komfort a další funkce jdou samozřejmě stranou. Jedinou výhodu toto řešení přeci jen má. Rychlost spuštění přehrávání streamu je absolutně bezkonkurenční ze všech výše uvedených metod.
Live TV
Live TV je interní funkce Kodi.
Směrem k uživateli nabízí základní funkce:
- sledování TV vysílání - přehrávání jeho streamů prostřednictví přehrávače Kodi,
- timeshift,
- přehrávání nahrávek - dtto jako u streamů,
- zobrazení loga kanálu,
- správu nahrávek (mazání, správu příznaků typu sledováno, aktuální pozice přerušeného sledování nahrávek),
- správu časovačů nahrávání,
- zpracování a zobrazení EPG,
- správu kanálů a skupin kanálů.
PVR Klienti
Jsou to tzv. addons, tedy nemusí být nutně (ale mohou a některé i jsou) vytvářeny týmem Kodi. Na rozdíl od ostatních addons jsou ale specifické, a to v tom, že pro ně nexistuje podpora (rozhraní, funkce a knihovny) v Python), jako pro ostatní doplňky. Tyto addons musí být napsány v nějakém vyšším jazyce (nejlépe v C, či právě v C, pro který Kodi poskytuje příslušné knihovny a funkce obsahující příslušná rozhraní k Live TV). A co je hlavní, tyto addons musí být s Kodi (jeho knihovnami) přeloženy. Znamená to, kromě mnoha dalších věcí, že každá verze instalace pro každý cílový systém (Windows, a to zvlášť pro 16 i 32, Linux, LibreELEC, ...) každého addon PVR klienta, je nepřenositelná na jinou verzi ani na jiný systém.
PVR Servery
Nejsou součástí Kodi a pokud s ním nějak "interagují", tak jen prostřednictvím PVR klientů, kterým poskytují svá data (live streamy, EPG, obrázky s logy kanálů, atp.) a funkce, které PVR klienti přes standardní rozhraní "propojují" s Live TV funkcí Kodi. PVR klient a PVR Srever vytváří klasickou vazbu klient - server. Někdy je ta vazba zřejmá, jindy méně. Obsah vazby (ne vždy musí vazba obsahovat všechny nabízené možnosti) zároveň určuje, jaké funkce s ohledem na vlastní TV vysílání budou v Live TV k dispozici.
Jak mohou takové typické dvojice klient - server vypadat ukážu na třech případech:
Tvheadend
- klientem je PVR addon Tvheadend HTSP Client, serverem Tvheadend Server
- server může být umístěn kdekoliv v síti, do které vidí Kodi, tedy i na stejném stroji, na kterém běží Kodi, ale i v tom případě s ním komunikuje pouze prostřednictvím síťových služeb
- server poskytuje klientovi prakticky všechny funkce, které umí využívat Live TV
- server dokáže přijímat vysílání DVB-T, T2, C, S a také IPTV/OTA, v co počítám i internetová rádia
- pokud jste se setkali s LibreELEC/OpenELEC mohli jste zjistit, že existuje addon Tvheadend Server. Nenechte se mýlit. O addon Kodi se v tomto případě nejedná. Jeho autoři pouze využili infrastrukturu Kodi k tomu, aby sobě (a hlavně nám) zajistili jednoduchou správu instalace Tvheadend serveru. Ten je pochopitelně přeložený s LibreELEC/OpenELEC, takže je na něm závislý. Nikoliv tedy na Kodi), na kterém pracuje zcela nezávisle.
- důležitá poznámka. Tvheadend server dokáže v oblasti příjmu a zpracování IPTV/OTA streamů minimálně to, co IPTV Simple Client, přidává k tomu ale možnost dalších funkcí - timeshift, nahrávání a také neméně podstatnou funkci jakéhosi "hubu", který uspokojuje požadavky místních klientů (a nejen Kodi) na streamy tak, že pokud se objeví požadavek na současné přehrávání stejného streamu z více klientů, směrem od jeho zdroje (IPTV/OTA serveru) se stream přijímá pouze jeden. Jakou to má výhodu na zatížení internetového připojení nebo v těch případech, kdy provider IPTV/OTA omezuje počet aktuálně připojených zařízení, ani není třeba připomínat. Například v případě O2TV se Tvheadend server jeví jako jedno připojené zařízení, přitom může streamy poskytovat libovolnému počtu dalších klientů (samozřejmě, jen co mu výkon a komunikační infrastruktura povolí).
- klientem je PVR addon Zapni.tv, serverem veřejný server provozující tuto OTA službu
- klient využívá ty funkce serveru, které jsou obecně k dispozici (neznám přesně současný seznam, které v současné době klient nabízí, addon nepoužívám ho) a převádí je do funkcí Live TV
- dá se zjednodušeně napsat, že serverovými službami jsou ty služby, které má k dispozici (a zaplacené) aktuálně přihlášený uživatel
- klientem je PVR addon, serverem jednotliví poskytovatelé streamů, tedy jejich servery
- adresy streamů, které chce (může) uživatel sledovat, se do klienta dostávají prostřednictvím tzv. playlistu, ten obsahuje, kromě identifikace a adresy streamu, také řadu doplňujících informací, např. logo streamu (kanálu) nebo identifikaci streamu (kanálu) pro EPG
- klient umí zpracovávat EPG ve formátu xmltv a dokáže je přes identifikaci v playlistu spárovat s daným streamem (kanálem) a předat je ve správném tvaru Live TV
- vzhledem k omezeným funkční možnostem na straně směrem k serveru (serverům) - pouze spuštění a zastavení přehrávání vybraného streamu a vložené funkci načítání EPG, jsou možnosti v LiveTv zásadně omezeny. Chybí nahrávání, timeshift a vše co s nimi souvisí.
Existuje celá řada video doplňků, které umí přijímat lineární vysílání z IPTV/OTA zdrojů. Takovým příkladem je O2TVGO nebo iVysílání. Stěžejní funkcí takových doplňků je transformovat datovou strukturu serverů do jednoduchých seznamů Kodi, vkládat do nich adresy streamů, a také (velmi často) řešit někde požadovanou autentizaci. Některé z nich mají i další funkce, umí například zobrazovat a vybírat data z archivu, atd. Na rozdíl od PVR addon však data (vč. streamů) neposkytují dál Live TV, ale používají a přehrávají je přímo. V podstatě vytváří s "mateřským" serverem také dvojici klient - server, ale s tím, že prezentační vrstvu, kterou je u předchozích PVR addon funkce Live TV Kodi, zajišťují sami, pouze s využitím přehrávače Kodi. Výhodou takovýchto addon je to, že jsou psané v Python, což umožňuje značnou přenositelnost (jsou -li napsané správně, tak absolutní) mezi jednotlivými instalacemi, a do značné míry, i verzemi Kodi.
Video
Asi by v tomto přehledu měla padnout i tato možnost. Kodi ji umí nativně a tak je vhodné ji uvést taky. Kodi umí přehrávat streamy, pokud jsou ve vhodných formátech (v kontejnerech a kódování). Stačí pro to jediné. Stream, tedy jeho adresu uložit do souboru s příponou strm. Pak stačí složky s takovými soubory přidat jako soubor a od té doby si můžete obsah živých TV streamů přehrávat jako každé jiné video. Komfort a další funkce jdou samozřejmě stranou. Jedinou výhodu toto řešení přeci jen má. Rychlost spuštění přehrávání streamu je absolutně bezkonkurenční ze všech výše uvedených metod.