• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Anketa: Měli bychom založit subfórum Tvheadend?
Nemáte dostatečná oprávnění, abyste mohl(a) hlasovat v této anketě.
Ano
83.33%
10 83.33%
Ne
16.67%
2 16.67%
Celkem 12 hlas(ů) 100%
* Hlasoval(a) jste pro tuto možnost. [Zobrazit výsledky]

Hodnocení tématu:
  • 2 Hlas(ů) - 3 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Tvheadend a internetová rádia
#1
Lightbulb 
Již pár dní se snažím přijít na kloub internetovým rádiům v Tvheadend backendu a po několika sezeních jsem dospěl do jakési beta-verze praktického používání na instalaci Kodi v podobě LibreELEC 8.0.1. Možná to bude pro někoho zajímavé, proto se o to chci podělit.

Jen bych měl předeslat, že vím, že se dají internetová rádia přijímat daleko jednodušeji několika způsoby, že existují i doplňky pro internetová rádia, ať už ty obecnější (IPTV Simple Client) nebo specializované (např. Play.cz). Sám jsem jich do teď celou řadu používal, ale po zkušenostech, kdy jsem zjistil, že stejně točím dokola několik málo stanic a že nepotřebuji stovky stanic, jsem se rozhodl preferovat řešení, které mi internetová rádia zařadí pod standardní funkci Rádio s jednotným způsobem ovládání a možností využít i takové funkce jako je nahrávání a/nebo timeshift (tady bych chtěl upozornit, že přes veškerou snahu se mi funkci timeshift nepodařilo zprovoznit). EDIT: To už neplatí, v současné době timeshift funguje bez problémů.

Roura

Streamy na internetová ráda se nedají do Tvheadend backendu zadávat přímo, vždy je nutné prohnat je přes rouru a ffmpeg. Existuje několik obecných schémat, jak takový příkaz vypadá, já jsem na základě zkušeností řady uživatelů dospěl k následujícímu obecnému schématu. Nejsem příliš velká odborník na ffmpeg, přiznávám, že některé option mi nejsou úplně jasné, ale důležité je, že to funguje!

pipe://ffmpeg -loglevel fatal -i STREAM -vn -acodec copy -flags +global_header -strict -2 -metadata service_provider=PROVIDER -metadata service_name=SERVICE -f mpegts -mpegts_service_type digital_radio pipe:1

kde je třeba při praktické aplikaci místo dále uvedených symbolických jmen zadat:
  • STREAM: internetový stream, např. pro Evropu 2: http://icecast3.play.cz/evropa2-128.mp3
  • PROVIDER: libovolné textové označení providera (bez mezer). Já tam většinou umisťuji stejný text jako ve STREAM, abych pak na obrazovce v Kodi, když si dám zobrazit Informace o PVR, viděl adresu streamu.
  • SERVICE: libovolné textové označení služb (bez mezer). Já tam většinou umisťuji text názvu stanice.
Pro uvedenou Evropu 2 pak takový zápis (v mém případě) vypadá následovně:

pipe://ffmpeg -loglevel fatal -i http://icecast3.play.cz/evropa2-128.mp3 -vn -acodec copy -flags +global_header -strict -2 -metadata service_provider=http://icecast3.play.cz/evropa2-128.mp3 -metadata service_name=Evropa2 -f mpegts -mpegts_service_type digital_radio pipe:1

Stručně řečeno, vždy když budete chtít v Tvheadend použít adresu streamu internetového rádia z internetu, musíte ji „obložit“ podle uvedeného příkladu. Podle typu streamu se může měnit parametry pro -acodec. Já momentálně používám prosté kopírování streamu tedy "-acodec copy" (dík za upozornění @marhycz, který mě poučil. Původně jsem používat překódování do aac, tedy "-acodec aac", které je zbytečné, protože Kodi umí přímo dekódovat i mp3.

Parametrizace TVheadend backend

Vytvoření sítě

Existují dvě možnosti, jak internetová rádia do Tvheadend backendu dostat. Vždy je třeba definovat v části Konfigurace -> DVB Inputs -> Network novou síť. Ta může být buď IPTV Automatic Network nebo IPTV Network. Rozdíly nejsou zásadní, ale pro práci poměrně důležité.

IPTV Automatic Network

Tato síť dokáže, po zadání odkazu na existující m3u8 playlist (ten si musíte připravit předem) z tohoto playlistu vygenerovat pro každou stanici jeden mux.
[attachment=2492] [attachment=2493]

IPTV Network

U této sítě se žádný odkaz na definici streamů nedefinuje. Pokud ji použijeme, musíme si každý mux poctivě vytvořit ručně a parametry streamu do něj zadat.

Mux-y

Ať už budou vytvořeny automaticky nebo je budete vytvářet ručně (Konfigurace -> DVB Inputs -> Muxy), bude to hlavní, co určuje vazbu na internetový stream uvedeno v položce URL. V případě automatického vytvoření se tam přenesou hodnoty ze souboru m38u, v případě ručního vytvoření je tam zadáte ručně.
[attachment=2494] [attachment=2495]

m3u8

Soubor má tradiční strukturu, s jednou změnou. Místo internetového streamu musí obsahovat kompletní řetězec, počínaje pipe://… Jak takový soubor může vypadat, uvidíte v přiloženém souboru.
[attachment=2496]

EPG

EPG se samozřejmě v internetových streamech nepřenáší. Mám v plánu dostat ho alespoň do některých strem-ů z wepg.cz. Zatím jsem se k tomu nedostal, ale neočekávám v tom nějaký zvláštní problém. Kromě toho, samozřejmě, že těch EPG nebude asi mnoho. Myslím, že jsem tam zatím viděl jen Evropu 2…

Loga

V mém provozovaném Tvheadend backendu odkazuji na loga stanic přes názvy služeb, takže není problém do adresáře, kde jsou loga umístěna přidat nová s odpovídajícími názvy. Funguje to očekávaně a bez problémů.

Ukázky z Kodi

Hlavní obrazovka (skin Estuary Easy – moje vlastní modifikace) vybraná položka Rádio:
[attachment=2497]

Radio kanály, je vidět seznam, v horní části jsou DVB-T rádia, která mají EPG, takže jsou u nich vidět i právě vysílané programy. Je vidět že se nahrávají celkem tři programy, jeden z DVB-T (CRo JAZZ), dva z internetových streamů (CRo SEVER, Blaník). Zároveň se jeden (Blaník) současně i přehrává:
[attachment=2498]

Stránka přehrávané stanice, navoleny Detaily o PVR. Jsou vidět zobrazené obsahy z m3u8 souboru (Služba a Poskytovatel):
[attachment=2499]

Známé problémy a nevyřešená témata

Jak už jsem napsal, jsem ve fázi "beta-testování". Tzn. mám to v provozu na produktivním systému. LibreELEC 8.0.1 + Tvheadend backend provozuji na Asrock Beebox (4 jádro Intel J3160, 4 GB RAM - zdánlivě zbytečně moc, ale já mám do RAM směrován Timeshift).

Zatím jsem přišel na několik problémů, nevím, zda jsou způsobeny moji neznalostí nebo prostě jen tím, že tak je to tak v Tvheadend zařízeno:
  • Z jedné sítě může být současně přehráván pouze jeden mux – to pokládám za hodně velké omezení. Je možné, že je to jen důsledek špatně nastavených parametrů. Budu v tomto směru ještě laborovat. Jsem přesvědčený, že se mi to při prvních testech tak nechovalo, ale ruku do ohně za to nedám. 1 Zatím jsme to obešel tím, že mám nainstalovány dvě automatické sítě, odkazují se do stejného m3u8 souboru. Není problém nainstalovat těch sítí víc. Programy z jednotlivých stanic se samozřejmě sloučí, takže v Kodi je vidíte jen jednou. EDIT: Počet současně přehrávaných muxů na jedné síti není nijak v Tvheadend omezen. Samozřejmě je vhodné počet omezit, pokud se obáváte přílišného zatížení komunikace. K tomu složí parametry sítě Maximální počet vstupních streamů: a/nebo Maximální šířka pásma (Kbps):. Oba parametry se dají použít současně.
  • Nefunguje timeshift, při prvních testech mi to snad taky fungovalo (ale opět, nejsem si tím 100% jistý). Budu se tomu snažit taky přijít na kloub. EDIT: Jak už bylo napsáno výše, timeshift v současné době funguje.
  • Přepínání programů nefunguje nijak bleskově. Backend má sice nastaveno prediktivní ladění, ale to se zřejmě s ohledem na výše uvedené omezení neuplatní. Ale není to bůhvíjak strašné, řádově sekundy…
A na závěr…

Byl bych rád, pokud by se nám podařilo na téma Tvheadend rozjet diskusi i na tomto fóru. A nejen k tomu dnešnímu tématu, i když to mě osobně teď zajímá asi nejvíce. Zajímají mě zkušenosti s tím, čemu jsem se dnes věnoval a taky bych přivítal nějaké rady a nápady na toto téma.

Popis není úplně detailní, takže rád odpovím na případné dotazy. Ale každý, kdo Tvheadend používá asi bude vědět, jak s tím naložit. Pokud ne, klidně se ptejte...  6

Přemýšlím, zda by nestálo za to založit pro Tvheadend zvláštní subfórum. Těch příspěvků, které se tomuto skvělému kousku SW věnují je i tady už docela dost. Co říkáte?

EDIT 2017-05-07 21:41 Na základě upozornění @marhycz jsem změnil parametr volání ffmepg. Není třeba překódovat streamy mp3, takže místo původního "-acodec aac" je nyní "-acodec copy". Opravil jsem to i v příkladu přiloženého m3u8 souboru.

EDIT 2018-05-06 23:09 Na základě upozornění @otava5 a @mobilemanic jsem opravil některé nepřesnosti, které vznikly v rané fázi používání Tvheadend.
 
Citovat
  


Příspěvků v tématu
Tvheadend a internetová rádia - od JiRo - 07.5.2017, 14:34
Tvheadend a internetová rádia - od Tklf - 25.2.2020, 14:46
Tvheadend a internetová rádia - od beitlj - 25.6.2020, 18:44

Přejít na fórum:


Prochází: 1 host(ů)