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


Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
RDS (Radio Data System)
#1
RDS - Radio Data System je patrně všeobecně známá doplňková služba. Pokud nevíte o co jde, tak docela stručné a výstižné povídání najdete např. v RDS - co je to? Počínaje KOdi 17 byla v něm doplněna podpora zpracování informací z RDS. Pokoušel jsme se z přijímaných streamů získat nějakou informaci, a i když Kodi přítomnost RDS infromací, indikuje, zatím jsem nebyl úspěšný. Zdá se, že míst, která na zpracování informací RDS mají vliv, bude nejen v Kodi (ale v celém řetězci) více. Tak jen stručně zrekapituluji:
  1. Skin (zobrazení RDS) - základní skin Estuary má pro zobrazení RDS informací vytvořenu minimálně jednu sestavu, jejich volba ale nemá ve skinu jednoznačné místo. Pro další zkoumání je důležité mít jistotu, že jsou RDS infromace do KOdi skutečně předávány. Bez toho každá další laborování postrádá smysl
  2. Skin (indikace RDS) - ve skinu je stav, že jsou ve streamu RDS data přítomna indikován. V podstatě odpovídá očekávání. U kanálů, které prokazataleně RDS mají (verifikováno na přijímačích, které RDS zobrazují), se příznak přítomnosti RDS skutečně zobrazí (a naopak).
  3. Live TV & PVR funkce - v nastavení je podpora RDS (i dopravního hlášení) přítomna, dá se vypnout/zapnout
  4. PVR addon - já osobně používám Tvheadend a proto mne v Kodi zajímá pvr.hts klient. Dnes jsem zjistil, že teprve v posledních verzích tohoto pvr addon je podpora RDS přítomna: https://github.com/kodi-pvr/pvr.hts/comm...91e0d19a38.
  5. Druhy zdroje vysílání - tady je to momentálně velká neznámá. Zatím jsme se nikde jasně nedozvěděl, zda je možné RDS kanál vkládat i do streamů mp3 a pokud ano, zda to někdo dělá. To si bude ještě vyžadovat nějaké další pátrání, jak v informacích o problematice na internetu, tak na základě vlastních pokusů. To samé samozřejmě platí i pro digitální vysílání.
  6. Příjem a základní zpracování vysílání (backend server) - to je, v mém případě, Tvheadend backend server. Tvůrci pvr.hts jsou současně i tvůrci Tvheadend, takže existuje-li podpora RDS v PVR addon, takže je pravděpodobné, že bude existovat i v Tvheadend.
  7. Příjem a základní zpracování vysílání (ffmpeg) - i to je pro mne velká neznámá. Příjem radia prostřednictvím OTA/IPTV s sebou nese v některých případech nutnost použití ffmpeg. Jak se k RDS kanálu a jeho datům chová ffmpeg je mi zatím skryto.
Jsem v této problematice prakticky úplně na začátku. Pokud má někdo nějaké další informace, nebo jsem tady na fóru něco přehlédl, budu vděčný za každé další nakopnutí a sdílení informací a dalších znalostí o této problematice. Sám se chystám samozřejmě dělat totéž. I proto jsem to založil jako zcela nové téma. Mým cílem je zajistit přirozené a Kodi zvyklostem odpovídající zobrazení RDS informací.
 
Citovat
#2
Dnes jsem v sestavě HTS Tvheadend 4.2.6-7 ~ LibreELEC Tvh-addon v8.2.113 a Kodi 18 RC5.2 W10 s pvr.hts 4.4.12, skin Estuary Stream-Cinema s rozšířením o testovací sestavu se zobrazení RDS informací. Informace o tom, že na daném kanálu je k dispozici RDS se přenesla až do zobrazení sklinu, ale ani jedna z položek, až na jednu výjimku, neobsahovala žádnou informaci. Tou výjimkou byla položka RDS.RadioStyle, jejím obsahem byla hodnota "uknown". Chabý výsledek. Zajímavé je, že RDS je indikováno pouze na mp3 streamech. Streamy z DVB-T vysílání, i když RDS určitě mají, se v Kodi tváří, že jsou bez něj. Momentálně mám tedy podezření na vlastní Tvheadend server, protože verze, kterou používám pro domácí účely je přeci jen letitá.
[attachment=4734]
To tady fakt není nikdo, kdo má zkušenosti? Takových chytrých lidí a žádná rada?
 
Citovat
#3
Protože Kodi přehrávač by měl mít dekódování RDS informací zvládat. Zkusil jsem předat stream radia přímo přehrávači a skutečně, informace o přehrávané skladbě se objevila. Víceméně to potvrzují, i zkušenosti z přehrávání streamů s RDS přes IPTV Simple Client případně přes některé addons, které přehrávání internetových radií umožňují. Při těchto způsobech žádné zpracování neprobíhá, vždy se pouze jen dál předává adresa streamu. Zdá se tedy, že problém je třeba skutečně hledat především na straně Tvheadend, případně ffmpeg.

[EDIT] Moje chyba. Kodi přehrávač RDS dekódování neprovádí. Ten dojem jsme získal při testování IP rádií, kde se při přehrávání některých streamů objeví název přehrávané skladby. Ten se ale do Kodi dostává jiným mechanismem, přímo ve streamu. Ono to funguje tak, že tyto informace do streamu většinou vkládají ty stanice, která mají i RDS, protože tam ten mechanismus mají na straně vysílání vybudovaný.

Další pokusy, které jsme dělal na finální verzi Kodi 18. Analyzoval jsme všechny interní informace (proměnné gui rozhraní) do kterých Kodi ukládá informace týkající se RDS, ve všech kombinacích a typech streamů. Žádný, tedy základní RDS, RadioText ani RadioTextPlus, neobsahuje žádná data... To je zatím vše. Sad
 
Citovat
#4
Využiji tohoto opouštěného vlákna, které založil "vyštvaný" @Client, abych pokračoval s ideou řešení, které jsem nazval RDS Client. O co jde.

V PVR Kodi přehrávaná rádia nedokáží přijmout a zpracovat RDS infromace, byť Kodi pro jejich zobrazení podporu evidentně nabízí (viz předchozí příspěvky od @Client). Inspirován řešením @Saros pro příjem stanice Evropa2 (viz Evropa 2 (1.1.0)) jsem se rozhodl navrhnout řešení, které by RDS (s jistou omezenou funkčností) bylo možné do Kodi dostat. Předpokládám, že řešení by obešlo funkce Live TV & PVR a stalo se tak víceméně jejich nezávislou nadstavbou, ale pokud možno co nejtěsněji integrovanou, volitelně i cestou úpravy skinu.

Idea je následující
  • realizačně by šlo o nový addon, typu service & script
  • část service bude zajišťovat funkce:
    • monitorování zda je v PVR spuštěno přehrávání rádia
    • pro právě přehrávanou stanici najít zdroj RDS
    • pro právě přehrávanou skladbu stáhnout její RDS data
    • po dobu přehrávání stanice monitorovat zdroj RDS a při změně skladby načíst nová data
    • načtená data RDS budou ukládána do proměnných Kodi (tzv. properties) k dalšímu použití, typicky budou ukládána data (případně pouze pro některé zdroje):
      • název sklady
      • jméno interpreta
      • obrázek (cover alba/singlu)
      • čas začátku a konce skladby
      • délka skladby
      • slova (lyrics)
      • název pořadu
      • čas začátku a konce pořadu
      • jména moderátorů
      • fotografie moderátor
  • část script bude  zajišťovat funkce
    • po spuštění zobrazí okno a v něm informace z výše uvedených proměnných Kodi
    • parametrizací scriptu bude možné vybrat, zda se okno zobrazí trvale nebo jen po zvolený čas
    • použití scriptu bude možné v každém skinu bez nutnosti jeho úprav. Zobrazení by mělo být univerzální (default), případně odpovídající výchozímu skinu (Estuary). Bude ale samozřejmě možné, jako u každého addon tohoto typu, tam zobrazení odpovídající přesně danému skinu, vytvořit.
  • kromě toho by, díky tomu, že RDS data by byla dostupná v proměnných Kodi, bude možné, po příslušné úpravě skinu, zaintegrovat je do zobrazení odpovídjících funkcí PVR daleko těsněji a přirozeněji. Toto je část, kterou já osobně, protože skiny upravuji, budu preferovat.
Zdroje RDS

Zdroje RDS, to jsou v tomto případě web-y a jejich API, které takové informace v reálném čase nabízí. Kupodivu je jich pro české stanice poměrně dost. Až se ale řešení dostane do produkční fáze, nebude smaopzřejěm porblém doplnit i zdroje jiné, primárně samozřejěm slovenské. Ať už @Saros nebo @martinchromy mě ve výše zmíněném tématu navedli na několik z nich. Ne všechny zdroje mají shodnou kvalitu informací, ale to, co je podstatné, tzn. název přehrávané skladby, jejího interpreta a obrázek (většinou cover alba/singlu) nabízí snad všechny. Některé navíc ještě další příjemné bonusy, které mohou realizaci zjednodušit, to je například čas začátku a konce přehrávané skladby, případně zlepšit potenciálně informační i vizuální dojem, to jsou například informace o moderátorech aktuálního pořadu nebo jejich fotografie nebo v jiném případě i slova přehrávané skladby (lyrics).

Dosavadní pokusy

Protože nejsem zručný programátor (či spíše nejsem programátor vůbec), začal jsem pro mne tím jednodušším. Jednak testem zdrojů RDS a pokusy o načtení odpovídajících dat. Naštěstí jsou data vesměs poskytována ve formě json, takže zpracovat je jednoduchým sh scriptem bylo záležitostí pár minut. Druhou částí mých pokusů byla úprava skinu tak, abych si mohl odzkoušet, co, jak a kde by bylo možné z RDS dat zobrazit. Všechno ostatní, tzn. jak vlastní addon je zatím tedy pouze ve stadiu úvah.

Abych vás trochu navnadil, zopakuji tady to, co jsme už prezentoval ve výše zmíněném tématu. Je to výsledek pokusů jednoho sobotního odpoledne. Trvale běžící sh script po svém spuštění načítá RDS data pro stanici Evropa 2 a ukládá je do příslušných proměnných. Ve skinu Estuary jsem upravil jak stránku full screen přehrávání hudby (MusicVisualisation.xml), tak zobrazení na Home stránce (include.xml, tam konkrétně v definici include name="TopBar"). První pokusy dopadly takto:
       
Výsledek není špatný, a protože Evropu 2 poslouchám často, tak nechávám script, který data RDS načítá, běžet  trvale (spouštím ho po startu mého CoreELEC) a budu dlouhodobě sledovat, zda opravdu stojí za to se tím zabývat.

Mezitím mi @martinchromy poslal další možné zdroje RDS a zdá se, po ověření jejich dlouhodobé stability, že by se asi výše uvedená idea skutečně vyplatila realizovat.

Právě teď jsem získal i názor jednoho kamaráda, který si toto testovací řešení implementoval také (včetně úpravy skinu Estuary), že by se mu líbilo, kdyby stránka s RDS daty zobrazená při přehrávání, odpovídala svým rozložením stránce zobrazené při přehrávánmí hudby. Protože si myslím, že je to správný názor, přidal jsme novou verzi tohoto zobrazení. Je vidět, že tady asi bude ještě velké pole působnosti a tvořivosti, už jenom proto, že jsou zdroje RDS, které nabízí i další informace. Zobrazit je vhodným způsobem, to už bude jen taková třešnička na dortu.
   

Edit 2021-12-06
Další drobná úprava zadání, ověřená na zárodku service addon service.rds už přímo v Kodi. Stav služby může nabývat 5 hodnot:
  1. služba neběží
  2. služba běží, není spuštěno rádio
  3. služba běží, rádio přehrává stanici, není nalezen zdroj RDS nebo zdroj nemá platná data
  4. služba běží, rádio přehrává stanici, je nalezen zdroj RDS, čeká se na načetní dat
  5. služba běží, rádio přehrává stanici, jsou k dipsozici platná data RDS
Doplnil jsme si stavový řádek skinu informací o výše uvedených stavech RDS. Počínaje stavem 2 se zobrazí text RDS, s barvou postupně pro stavy 2, 3, 4 a 5 - bílá, červená, žlutá a zelená. Pro ladicí a testovací účely se ještě pro stavy 4 a 5 zobrazuji text názvu stanice + volitelně kód služby a kód stanice, pod kterými se RDS data hledají.
       
 
Citovat
#5
Zdravím
Bude možné přihlásit se jako betatester?
 
Citovat
#6
@martinchromy Až se k tomu dostanu a dodělám to jako addon, tak to vyhodím ven. Žádné betatestování nebude. Buď to bude chodit nebo to ven nedám. 1
 
Citovat
#7
Při hraní si s addone-em se zabývám také zdroji RDS dat. Díky @Saros a @martinchromy mám momentálně jeden výborný, jeden dobrý a jeden ucházející zdroj RDS dat:
  1. https://radia.cz - pro mne nejlepší zdroj, adresace kanálů pomocí číslem v URL. V adrese kanálu sice není jeho název, ale to je paradoxně výhodnější, protože se dá porvést jednoduchý automatický scan. V datech je název, umělec, obrázek, čas začátku a konce skladby + případně další informace. V seznamu kanálů, který jsem si vytvořil, je vidět poměrně hodně kanálů, které sice obsahují data, ale nneí u nich uveden název kanálu.
  2. https://rds.actve.net - obsahem nejrozsáhlejší nabídka, obsahuje nejen to co předchozí, ale ještě i informace o přehrávaném pořadu moderátorovi, včetně jeho fotografií. V jendom případě ze 4 v záznamu chybí jedna položka, což komplikuje Adresuje je názvem kanálu, zatím mám adresy pouze 4 kanálů, na další se snažím přijít náhodnými zadáním, ale zatím jsme nebyl moc úspěšný. Budu pokračovat dál, případně se pokusím dostat se k údajům přes aplikace, které tento zdroj používají.
  3. https://onair.play.cz - s adresací je to podobné jako u předchozího zdroje, velmi omezený rozsah informací, skladba, autor a obrázek, s největší slabinou, kterou je, že není uveden nebo se nedá spočítat čas konce přehrávání skladby. To má smalozřejmě vliv na efektivitu řešení v addon, protože to znamená soustavné periodické načítá dat ze zdroje.
Pokud někdo má nějaké další zdroje RDS dat nebo u těch uvedených (ad. 2 a 3) má nějaké bližší infomace, podělte se prosím.
 
Citovat
#8
Informace v RDS službách, které poskytují dříve uvedné služby jsou občas skutečně netypické. Tedy ve smyslu jejich strategie zpracování. Například některé stanice ČRo (zdroj dat radia.cz ) používají RDS následovně:
  • běží nějaký pořad, v RDS je název pořadu, čas začátku a konce jsou časy začátku a konce pořadu,
  • v rámci daného pořadu hraje skladba, v RDS je název skladby, čas začátku a konce jsou časy začátku a konce této skladby a dokonce občas čas konce skladby chybí,
  • po skončení skladby se informace v RDS vrátí na ty původní, vztažené k pořadu.
Tohle samozřejmě zásadně mění způsob zpracování, kdy infromace o času začátku a konce skladby používám k tomu, abych počet dotazů na serveru služby omezil na rozumnou velikost. To za tohoto stavu možné 100% není a vede to k častějšímu používání periodických dotazů. Co to udělá se službou RDS, to se ukáže.

Tohle například u takové Evropy 2 ze zdroje rds.actve.net funguje vcelku bez problémů a očekávaně. Tedy pokud pomineme to, že občas se data na novou skladbu nepřepnou. To ale nemá vliv na způsob zpracování, resp. strategii řízení přístupů k serveru služby. I tady to samozeřejmě vede v tomu, že se přejde na cyklické dotazy. Například v případě, kdy nedojde k přepnutí dat na přehrávanou skladbu v uvedený čas nebo dokonce vůbec (i to se stává) nebo při vstupu moderátora, reklamních přestávkách nebo zprávách, kdy v RDS zůstávají data naposledy hrané skladby, často po poměrně dlouhou dobu. Ale takhle RDS prostě funguje.

Jak to funguje je vidět v logu Kodi. Nejdříve se přehrává stanice Frekvence 1 (je v datové struktuře addon-u, která popisuje zdroje RDS zadaná pod alias F 1), pak jsem přepnul na Evropu 2. Jsou tam vidět chvíle, kdy se data začnou načítat periodicky (s periodou 5 s) po proběhnutí doby anoncovaného konce skladby.
   

No a když jsme se už zmínil o těch datech, tak ještě krátce k datové struktuře, která by měla pomoci řídit načítání dat z akceptovaných zdrojů. Akceptace znamená, že pro každý takový zdroj bude existovat modul, ve kterém bude probíhat jeho dekódování. Zatím mám tu datovou strukturu definovanou a naplněnou přímo v datech kódu addon, je ale jasné, že ve finále tohle bude mimo, v json souboru. Předpokládám default data uložená v adresáři addon a uživatelsky definovatelná, uložená v uživatelsky dostupném (zadaném) adresáři, kterou se ta default doplní/přepíše.
Kód:
channels = {'Evropa 2': ('actve', 'evropa2'),
            'F 1': ('actve', 'frekvence1'),
            'Frekvence 1': ('@', 'F 1'),
            'Radio DANCE radio': ('actve', 'danceradio'),
            'Radio Bonton': ('actve', 'bonton'),          
            'CRo RADIOZURNAL': ('radio', '273'),
            'CRo RADIO WAVE': ('radio', '274'),
            'CRo VLTAVA': ('radio', '275'),
            'CRo JAZZ': ('radio', '276'),
            'CRo RADIO JUNIOR': ('radio', '277'),
            'CRo PLUS': ('radio', '278'),
            'CRo DVOJKA': ('radio', '279'),
            'CRo D-DUR': ('radio', '280')}

services = {'actve': 'https://rds.actve.net/v1/metadata/channel/%s?coverSize=600',
            'radio': 'https://data.radia.cz/data/pravehraje/new-%s-currentnext.json'}

Tak už se blíží zveřejnění části service, které plánuji to v novém roce. Vizualizace bude zatím možná jen na upraveném skinu Estuary-Easy. Tu úpravu samozřejmě popíšu pro ty, kteří jsou schopni si skin Estuary upravit sami.
   
Pokusím se co k tomu udělat i "univerzální" vizualizaci ve formě script části s default definicí souboru skinu, která by byla použitelná na jakémkoliv skinu, případně by se pro tam další vybrané skiny doplnila vizualizace ve shodném tvaru, ale to si ještě nějaký další čas vezme. Pak je ještě varianta zápisu RDS dat do datových struktur PVR, ale to je tak trochu alchymie a je otázka, zda tohle vůbec půjde nějak snadno udělat.
 
Citovat
#9
JiRo: Jak práce pokračují ? Daří se... je třeba nějaká pomoc?
 
Citovat
#10
@martinchromy: Smázni, prosím, tu šílenou zbytečnou citaci. Stačí přeci adresát zavináčJiRo a tvůj dotaz. Od adresace mu dojde upozornění.
 
Citovat
#11
zdravím
Je tento počin někde ke stažení ?
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)