01.7.2017, 17:43
(Tento příspěvek byl naposledy změněn: 28.10.2018, 14:15 uživatelem JiRo.
Důvod úpravy: Doplnění textu
)
Před časem jsme se tady podělil o zkušenosti z příjmu internetových rádií přes Tvheadend, viz http://www.xbmc-kodi.cz/prispevek-tvhead...tova-radia, a nyní nastal čas, udělat něco podobného s IPTV.
První, co každého napadne, proč pro IPTV používat Tvheadend, když máme jednoduchý a bez problémů fungující IPTV Simple Client. Důvod je ten, že je to právě jen klient. To znamená, že není možné například používat standardní funkce timeshift a nahrávání a vše, co je s nimi v Kodi spojené. Další důvod je, že přesunutím přijmu a zpracování IPTV streamů na Tvheadend backend vyřešíme všechno takříkajíc na jedno místě a příjem televizních programů ze streamů IPTV pak z uživatelského hlediska probíhá úplně stejně, jako z jiného standardního Tv vysílání (DVB-S, DVB_T, ...).
Většinou se předpokládá, že Tvheadend umí s IPTV streamy pracovat běžně a neměl by v tom být žádný problém. Záleží samozřejmě, o jaký stream jde. Tvheadend si dokáže poradit pouze ze streamem z ts kontejneru. Pokud takový stream nemáte, tak ho Tvheadend nedokáže přijmout. V takovém případě je pomoc snadná, podobně jako u internetových rádií (podívejte se na odkaz, který jsem uvedl výše) pomůže "přebalení streamu" do požadovaného formátu kontejneru.
Roura
Příkaz pro přebalení do ts kontejneru je v případě IPTV streamu:
pipe://ffmpeg -fflags +genpts -i STREAM -vcodec copy -acodec copy -f mpegts -mpegts_service_type digital_tv pipe:1
STREAM: váš IPTV stream z původního m3u8 souboru
Pokud chcete větší komfort a víc informací, je možné do kontejneru zabalit i další infromace, které se pak zobrazí v GUI Tvheadend případně na obrazovce v Kodi, když si dáte zobrazit Informace o PVR. Pak příkaz pro zabalení streamu vypadá takto:
pipe://ffmpeg -fflags +genpts -i STREAM -vcodec copy -acodec copy -metadata service_provider=PROVIDER -metadata service_name=SERVICE -f mpegts -mpegts_service_type digital_tv pipe:1
PROVIDER: libovolné textové označení providera (bez mezer), dobré je tam umístit označení providera, např. zapni.tv
SERVICE: libovolné textové označení služby (bez mezer). Já tam většinou umisťuji text jako ve STREAM, abych pak na obrazovce v Kodi, když si dám zobrazit Informace o PVR, viděl adresu streamu.
Je samozřejmě možné, že narazíte na streamy, které poté, co je proženete výše uvedenou "rourou", Tvheadend nepřijme. Pak musí nastoupit analýza streamu, případně metoda pokus-omyl, a pomocí parametrů překódování pro ffmpeg převést obsah streamu do potřebného tvaru. K tomu se vrátím někdy později. Já jsem ale zatím u drtivé většiny IPTV streamů, když už nebyly přímo ve tvaru ts kontejneru, vystačil s výše uvedenou jednoduchou rourou.
Parametrizace TVheadend backend
V této části vás odkážu na už zmiňovaný příspěvek pro příjem internetových rádií. Všechny další kroky jsou totiž shodné. Musíte si vytvořit pomocí Konfigurace -> DVB Inputs -> Network novou síť. Ta může být buď IPTV Automatic Network nebo IPTV Network, a pak podle typu sítě buď zadat odkaz na .m3u8 soubor (u "automatické" sítě) nebo ručně vytvořit a zadat parametry pro jednotlivé MUX-y (u obyčejné sítě).
EPG a Loga
Tady se nic nezměnilo, všechno funguje stejně, jako u internetových rádií.
K EPG jen malá poznámka. Ve své instalaci jsem jen změnil zdroj EPG. Pro programy přijímané z internetu si teď EPG vytvářím sám, pomocí addon WebGrab+Plus, jako zdroj používám sms.cz. To ale s vlastní problematikou Tvheadend a IPTV nijak nesouvisí.
Ukázky z Kodi
EPG ve kterém se potkávají programy z DVB-T a z internetu. Do čísla programu 37 je zdrojem vysílání i EPG DVB-T, od čísla 61 jsou programy i EPG z internetu.
[attachment=2606] [attachment=2607]
Ukázka aktivovaného timeshift u programu z internetu. Funguje to, stejně jako nahrávání, naprosto očekávaně, bez sebemenších problémů.
[attachment=2608]
Známé problémy a nevyřešená témata
V současné době všechno funguje. Kupodivu, ani s rychlostí přepínání kanálů nejsou problémy, jako u internetového rádia. Přepnutí mezi programy cca 1-2 vteřiny.
Závěr
Pokud chcete mít mít při příjmu IPTV stejný komfort jako u běžné Tv, včetně funkce nahrávání a timeshiftu, tak je příjem IPTV přes Tvheadend určený právě pro vás. Pravda, zaplatíte za to poněkud náročnější parametrizací. Velkou výhodu pocítíte v případě, pokud provozujete více klientů. Tam naopak v případě parametrizace a správy klientů čas ušetříte. Vlastně se o klienty nebudete vůbec starat.
Edit 2017-07-03: A na to nejdůležitější jsem zapomněl. Ocení to ti, co mají v domácí síti více uživatelů. Pokud se více uživatelů rozhodne na svých klientech sledovat stejný stream, nebo také v případě, že si jeden uživatel pustí live stream, který se současně i nahrává, tak se ze zdroje z internetu samozřejmě přenáší pouze stream jeden! Rozdělí se až v Tvheadend backendu.
Edit 2018-09-09: Upravené parametry v příkazu pipe://...
První, co každého napadne, proč pro IPTV používat Tvheadend, když máme jednoduchý a bez problémů fungující IPTV Simple Client. Důvod je ten, že je to právě jen klient. To znamená, že není možné například používat standardní funkce timeshift a nahrávání a vše, co je s nimi v Kodi spojené. Další důvod je, že přesunutím přijmu a zpracování IPTV streamů na Tvheadend backend vyřešíme všechno takříkajíc na jedno místě a příjem televizních programů ze streamů IPTV pak z uživatelského hlediska probíhá úplně stejně, jako z jiného standardního Tv vysílání (DVB-S, DVB_T, ...).
Většinou se předpokládá, že Tvheadend umí s IPTV streamy pracovat běžně a neměl by v tom být žádný problém. Záleží samozřejmě, o jaký stream jde. Tvheadend si dokáže poradit pouze ze streamem z ts kontejneru. Pokud takový stream nemáte, tak ho Tvheadend nedokáže přijmout. V takovém případě je pomoc snadná, podobně jako u internetových rádií (podívejte se na odkaz, který jsem uvedl výše) pomůže "přebalení streamu" do požadovaného formátu kontejneru.
Roura
Příkaz pro přebalení do ts kontejneru je v případě IPTV streamu:
pipe://ffmpeg -fflags +genpts -i STREAM -vcodec copy -acodec copy -f mpegts -mpegts_service_type digital_tv pipe:1
STREAM: váš IPTV stream z původního m3u8 souboru
Pokud chcete větší komfort a víc informací, je možné do kontejneru zabalit i další infromace, které se pak zobrazí v GUI Tvheadend případně na obrazovce v Kodi, když si dáte zobrazit Informace o PVR. Pak příkaz pro zabalení streamu vypadá takto:
pipe://ffmpeg -fflags +genpts -i STREAM -vcodec copy -acodec copy -metadata service_provider=PROVIDER -metadata service_name=SERVICE -f mpegts -mpegts_service_type digital_tv pipe:1
PROVIDER: libovolné textové označení providera (bez mezer), dobré je tam umístit označení providera, např. zapni.tv
SERVICE: libovolné textové označení služby (bez mezer). Já tam většinou umisťuji text jako ve STREAM, abych pak na obrazovce v Kodi, když si dám zobrazit Informace o PVR, viděl adresu streamu.
Je samozřejmě možné, že narazíte na streamy, které poté, co je proženete výše uvedenou "rourou", Tvheadend nepřijme. Pak musí nastoupit analýza streamu, případně metoda pokus-omyl, a pomocí parametrů překódování pro ffmpeg převést obsah streamu do potřebného tvaru. K tomu se vrátím někdy později. Já jsem ale zatím u drtivé většiny IPTV streamů, když už nebyly přímo ve tvaru ts kontejneru, vystačil s výše uvedenou jednoduchou rourou.
Parametrizace TVheadend backend
V této části vás odkážu na už zmiňovaný příspěvek pro příjem internetových rádií. Všechny další kroky jsou totiž shodné. Musíte si vytvořit pomocí Konfigurace -> DVB Inputs -> Network novou síť. Ta může být buď IPTV Automatic Network nebo IPTV Network, a pak podle typu sítě buď zadat odkaz na .m3u8 soubor (u "automatické" sítě) nebo ručně vytvořit a zadat parametry pro jednotlivé MUX-y (u obyčejné sítě).
EPG a Loga
Tady se nic nezměnilo, všechno funguje stejně, jako u internetových rádií.
K EPG jen malá poznámka. Ve své instalaci jsem jen změnil zdroj EPG. Pro programy přijímané z internetu si teď EPG vytvářím sám, pomocí addon WebGrab+Plus, jako zdroj používám sms.cz. To ale s vlastní problematikou Tvheadend a IPTV nijak nesouvisí.
Ukázky z Kodi
EPG ve kterém se potkávají programy z DVB-T a z internetu. Do čísla programu 37 je zdrojem vysílání i EPG DVB-T, od čísla 61 jsou programy i EPG z internetu.
[attachment=2606] [attachment=2607]
Ukázka aktivovaného timeshift u programu z internetu. Funguje to, stejně jako nahrávání, naprosto očekávaně, bez sebemenších problémů.
[attachment=2608]
Známé problémy a nevyřešená témata
V současné době všechno funguje. Kupodivu, ani s rychlostí přepínání kanálů nejsou problémy, jako u internetového rádia. Přepnutí mezi programy cca 1-2 vteřiny.
Závěr
Pokud chcete mít mít při příjmu IPTV stejný komfort jako u běžné Tv, včetně funkce nahrávání a timeshiftu, tak je příjem IPTV přes Tvheadend určený právě pro vás. Pravda, zaplatíte za to poněkud náročnější parametrizací. Velkou výhodu pocítíte v případě, pokud provozujete více klientů. Tam naopak v případě parametrizace a správy klientů čas ušetříte. Vlastně se o klienty nebudete vůbec starat.
Edit 2017-07-03: A na to nejdůležitější jsem zapomněl. Ocení to ti, co mají v domácí síti více uživatelů. Pokud se více uživatelů rozhodne na svých klientech sledovat stejný stream, nebo také v případě, že si jeden uživatel pustí live stream, který se současně i nahrává, tak se ze zdroje z internetu samozřejmě přenáší pouze stream jeden! Rozdělí se až v Tvheadend backendu.
Edit 2018-09-09: Upravené parametry v příkazu pipe://...