• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Zdravím hosta! Přihlášení Registrace


Hodnocení tématu:
  • 2 Hlas(ů) - 5 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Playlist O2TV.CZ script - vývoj a podpora zde ukončena
#1
Úpravou původního addon O2TV Go od Štěpána Orta jsem připravil addon Playlist O2TV, který teď upravuji tak, aby běžel jako trvalá služba Kodi. Byl jsem zároveň požádán, zda by nebylo možné tento addon upravit do podoby, aby běžel zcela nezávisle na Kodi. Ačkoli jsem vždycky tvrdil, že by to problém být neměl, teprve dnes jsem si řekl, že bych to mohl zkusit. Protože jediný Linux, který mám k dispozici je ten z LibreELEC, měl jsme možnosti dost omezené, takže řešení je dosti neumělé. Chybějící knihovny jsem si nemohl nainstalovat a tak jsem je umístil přímo do adresáře scriptu. Celé řešení tak poněkud nabobtnalo, ale co je důležité, funguje.

Popis řešení

Vyšel jsem z připravované verze addon Playlist O2TV, takže skript umožní generovat tři typy playlistu. Hlavní kód je v souboru playlist.py, procedury interface ke službě O2TV je v souboru o2tvgo.py . Do tohoto modulu jsem, kromě drobné úpravy umožňující volbu kvality streamů a dvou oprav chyb, vůbec nezasahoval. Jak už jsem řekl, obsahuje instalace celou řadu knihoven, které by bylo možné za normálních okolností nainstalovat do systému, ale já to udělat nemůžu, ta jsem zvolil tuto cestu. Tady je možná nějaký prostor na optimalizaci, to ale přenechávám zkušenějším.

Skript je možná příliš nafouklý, ale je to tím, že jsem chtěl zachovat funkce původního addon a jistou univerzálnost použití. Pokud někdo bude chtít, může si z něj zbytečnosti odpárat. Největší díl práce, protože vlastní změnu z addon na samostatně bežící script jsem vyrobil při polední kávě, je v popisu parametrů, kterými je možné běh skriptu ovlivnit.

Komu je skript určen

Skript je určen pro ty, kteří mají alespoň základní znalost o Linuxu. Po spuštění skript vygeneruje playlist (pokud mu nastavíte správně parametry) a skončí. Chcete-li ho používat tak, jak je to zamýšleno, musíte si například zajistit, aby se spouštěl periodicky. Kdo tedy neví, co je to cron  jak se používá, tak si se skriptem moc radosti neužije. Musíte také samozřejmě vědět, co si s vygenerovanými playlisty počít. To tady řešit nebudu. Pokud tedy netušíte, jak byste skript mohli spouštět periodicky, raději si počkejte, brzy vyjde addon se stejnými funkcemi a s možností zadat jednoduše v nastavení periodické spouštění, jehož použití bude určeno právě vám. Ten ale bude fungovat pouze v Kodi.

Instalace

Po stažení zip souboru (je umístěn na konci tohoto příspěvku) jej rozbalíte do vybraného adresáře. Toť vše. Nepokoušejte se ho spustit, nejdřív je třeba zadat několik základních parametrů.

Parametry

Všechny potřebné a uživatelem zadávané parametry jsou dostupné v úvodu souboru playlist.py. Zkopíroval jsme je:
Kód:
###########################################################################################################
# Základní parametry
###########################################################################################################
# Přihlašovací jméno a heslo:
_username_ = ''
_password_ = ''
# ID zařízení:
_device_id_ = ''
# Adresář pro vytvářené soubory a případného vlastního skriptu:
# Pozor! Je třeba zadat absolutní cestu!
_playlist_path_ = ''
# Jméno souboru stahovaného playlistu
_playlist_src_ = 'o2tv.generic.m3u8'
# Jméno souboru vytvářeného playlistu
_playlist_dst_ = 'o2tv.playlist.m3u8'
# Jméno souboru skriptu streameru
_playlist_streamer_ = 'streamer.sh'
# Povel pro spuštění ffmpeg
_command_ffmpeg_ = 'ffmpeg'
# Použití streameru
# 0 - bude použit vygenerovaný skript se jménem uloženým v _playlist_streamer_
# 1 - bude použit vlastní script se zadaným jménem. Skript musí být umístěn v cestě uložené v _playlist_path_!
_myscript_ = 0
# Jméno souboru vlastního skriptu streameru - jméno nesmí být shodné se jménem uloženým v _playlist_streamer_!
_myscript_name_ = 'myscript.sh'
# Kvalita streamu
# 0 - pro nižsí kvalitu, zpravidla (maximálně) 1280x720
# 1 - pro vyšší kvalitu, zpravidla 1920x1080
_stream_quality_ = 1
###########################################################################################################

###########################################################################################################
# Parametry vytvářeného playlistu
###########################################################################################################
# Typ playlistu
# 1 - pro IPTV Simple Client
# 2 - pro Tvheadend
# 3 - pro Tvheadend@
_playlist_type_ = 3
# Parametry v řádku EXTINF
# Parametr tvg_name - používá se pro Typ playlistu = 1
# 0 - nepoužije se
# 1 - přebírá se ze jména kanálu
_channel_epgname_ = 0
# Parametr tvg_id - používá se pro Typ playlistu = 1, 2, 3
# 0 - nepoužije se
# 1 - přebírá se ze jména kanálu
_channel_epgid_ = 0
# Parametr group-titles - používá se pro Typ playlistu = 1, 2, 3
# 0 - nepoužije se
# 1 - Použije se text: O2TV
# 2 - použije se text z proměnné _channel_groupname_
_channel_group_ = 0
_channel_groupname_ = ''
# Parametr tvg_logo - používá se pro Typ playlistu = 1, 2, 3
# Typ loga, případně cesta pro umístění souborů slogem
# 0 - nepoužije se
# 1 - přebírá se ze zdroje
# 2 - místní umístění, pro cestu se použije obsah proměnné _channel_logopath_
# 3 - internetové umístění, pro url se použije obsah proměnné _channel_logourl_
# 4 - logo od @marhycz na Github
_channel_logo_ = 0
_channel_logopath_ = ''
_channel_logourl_ = ''
# Konvence jména souboru - používá se pro Typ loga = 2 a 3
# 0 - nazevsouboru.png
# 1 - nazevsouboru.jpg
# 2 - Název souboru.png
# 3 - Název souboru.jpg
_channel_logoname_ = 0
# Kvalita @marhycz loga - používá se pro Typ loga = 4
# 0 - 640x640
# 1 - 1024x1024
_channel_logogithub_ = 0
###########################################################################################################

###########################################################################################################
# Samples of messages in playlist.log
###########################################################################################################
# RRRR-MM-DD HH:MM:SS Download done with result EXIT:AuthenticationError , DOWNLOADED:-1, SKIPPED:-1
# - přihlášení k účtu neproběhlo korektně, zkontrolujte _username_ a _password_
# - hodnoty -1 u stažených/přeskočených kanálů znamenají, že se stahování vůbec nespustilo
# RRRR-MM-DD HH:MM:SS Download done with result EXIT:NoPurchasedServiceError , DOWNLOADED:-1, SKIPPED:-1
# - seznam služeb vašeho účtu je prázdný
# - pravděpodobně nemáte zaplacenou vámi objednanou sližbu
# RRRR-MM-DD HH:MM:SS Download done with result EXIT:TooManyDevicesError , DOWNLOADED:-1, SKIPPED:-1
# - překročili jste limit 4 identifikovaných a registrovaných zařízení
# - upravte počet registrovaných zařízení na https://www.o2tv.cz/sprava-zarizeni/
# RRRR-MM-DD HH:MM:SS Download done with result EXIT:OK , DOWNLOADED:11, SKIPPED:0
# - generace playlist proběhla v pořádku
# - SKIPPED je počet kanálů, pro které v době stažení playlist nebyl k dispozici žádný stream
###########################################################################################################
Většina z nich je v souboru instalace nastavená tak, že vygeneruje smysluplný obsah. Většina, až na několik, které je třeba zadat před 1. spuštěním:
  • _username_ - přihlašovací jméno do O2TV
  • _password_ - přihlašovací heslo do O2TV
  • _device_id_ - device id, které získáte z nastavení addon Playlist O2TV nebo z původního addon O2TV. Od verze 0.0.3 není bezpodmínečně nutné device id zadávat. Script si ho umí vygenerovat a uložit do souboru, odkud si ho při každém další spuštění přečte.
  • _playlist_path_ - cesta k adresáři, do kterého budou ukládány generované playlitsy a v případě generace plylistu typu Tvheadend@, který získává streamy přes vložený script, také tento skript
Ostatní parametry již není bezpodmínečně povinné zadávat nebo měnit. Záleží samozřejmě na kontextu. Pokud budete chtít generovat odkaz na soubor s logem, cestu, kde se tyto soubory nachází zadat budete muset.

Spuštění

Pokud zadáte (a správně) výše uvedené parametry, měl by skript vygenerovat soubory podle vaší volby. Díky tomu, že jsem z původního kódu pro addon vypáral všechny věci týkající se Kodi, nemá skript žádnou interakci, ani kontroly. Po spuštění playlist buď vygeneruje nebo ne. Zatím. Plánuji v další verzi doplnit do něj informační a chybové hlášky, které se budou zapisovat do vlastního souboru logu.

Co skript generuje

Podle nastavení se generuje jeden ze tří typů playlistu:
  • Typ 1 - určený pro IPTV Simple Client
  • Typ 2 - určený pro Tvheadend
  • Typ 3 - určený také pro Tvheadned (já ho značuji jako  Tvheadend@), ale s tím, že v playlistu je místo adres streamů volání dalšího scriptu (říkám mu streamer), který teprve spustí přehrávání příslušného streamu. Použití tohoto typu playlistu zajistí, že i při změnách adres streamů (resp. tokenů v nich), to nebude v Tvheadend identifikováno jako změna a nespustí se proces nové generace služeb a mapování k porgramům. 
Jaké soubory tedy skript generuje:
  • o2tv.generic.m3u8 - to je jakýsi "čistý" playlist, obsahující pouze jména kanálů a adresy streamů
  • o2tv.playlist.m3u8 - playlist obsahující další vložené informace podle typu playlistu a aktuálního nastavení, v případě Typu 3 pak obsahuje místo adres streamů volání streameru
  • stream.sh - standardní streamer, který zajistí pro Typ 3 vazbu mezi o2tv.playlist.m3u8 a o2tv.generic.m3u8
  • stream.sh.sample - kopie stream.sh jako vzor, ze kterého si můžete vytvořit vlastní verzi streameru a tu použít míst generovaného. Musíte ho ale přejmenovat a nastavit pro použití vlastního streameru parametry
  • device_id - soubor s uloženým device_id
  • playlist.log - soubor logu skriptu  
Použití playlistu

Je to sice důležité, ale nehodlám se tomu v tomto postu nějak zvlášť věnovat, jak playlisty použít. Na to najdete odpověď v příslušných fórech. Ať už IPTV Simple Client nebo Tvheadend. Kdo neví, jak playlist použít, by měl začít tam a teprve potom se zajímat, jak si je tímto scriptem vygenerovat.

Mé dosavadní zkušenosti a způsob provozu
  • provozuji ho na LibreLEEC 8.2.5, které běží na Intelu,
  • playlist typu 3 používám v Tvheadend 4.2.3-20, který běží na stejném stroji jako Kodi,
  • otestoval jsme i Playlist typu 2 na stejném Tvheadend,
  • netestoval jsem Playlist na IPTV Simple Client, protože ho neprovozuji. Ale podle zběžné vizuální kontroly je vygenerovaný playlist bez viditelných chyb. Já ale předpokládám, že script bude využíván zejména v Tvheadend, jeho používání v IPTV Simple Client mi připadá poněkud krkolomné.
Známé chyby a omezení
  • momentálně nejsou známy
To-Do
  • momentálně nepředpokládám žádné další rozšiřování funkcí
Vaše názory

Čekám na vaši zpětnou vazbu a názory.

Ke stažení

Aktuální verze verze Playlist O2TV, verze 0.0.4

Změny oproti předchozí verzi 0.0.3
  • Změna způsobu autentizace vyvolaná změnami na straně O2TV - připravil @croma, kterému tímto děkuji za vynikající práci.
  • S ohledem na nejasnou a měnící se situaci na straně O2TV ponechávám dispozici i předchozí verzi.

.zip   playlist.o2tv-0.0.4.zip (Velikost: 958,64 KB / Stažení: 74)

Starší verze script Playlist O2TV 0.0.3

Změny oproti předchozí verzi 0.0.2
  • odstraněna chyba při spuštění scriptu v případě nezaplacené služby. Tato chyba je i v původním addon Štěpána Orta. Nyní je stav, kdy nemáte v seznamu žádné kanály (nemáte zaplacenou službu) ošetřen a tato událost je zaprotokolována.  
  • doplněno protokolování významných stavů běhu skriptu, spuštění, ukončení, chyby, informace o počtu stažených/přeskočených kanálů,
  • doplněny kontroly a protokolování chyb autentizace, překročení limitu současně používaných zařízení, nezaplacené služby,
  • doplněna generace ID,
  • odstraněna volba volání wget a proměnné pro nastavení parametrů, které s tím souvisely,
  • s ohledem na kompatibilitu s addon Kodi se stejnými funkcemi jsem změnil název dvou proměnných související s použitím vlastního skriptu streameru, jsou to proměnné _myscript_ a _myscript_name_.

.zip   playlist.o2tv-0.0.3.zip (Velikost: 958,46 KB / Stažení: 242)

Upozornění!

Další práce na scriptu převzal @pavuucek, najete ho na Github [Only registered and activated users can see links Click here to register]. V tomto vlákně už podporu nehledejte, nebudou se zde už ani objevovat nové verze.
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#2
funguje krásně. kloubouk dolu :)
 
Citovat
#3
@francis Na čem to pouštíš?
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#4
DEBIAN JESSIE,

jak píšeš ohledně id. zadal jsem tam původně jak doporučuješ. Zkusil jsem tam zadat potom můj vlatní popis. debian-jessie-srv a playlist vygenerovalo a fugnuje to. k čemu se to id pužíva v tom playlistu?
 
Citovat
#5
@francis Id identifikuje zařízení. Podle id server O2TV zařízení identifikuje a registruje. Pokud se pod svým účtem k serveru připojíš s id, které server ještě nemá registrované, obsadí další pozici z maximálně 4, které máš k dispozici. Id se generuje tak, aby bylo unikátní. Případ, že by se současně objevovalo stejné id z více ip adres, může vést k nějaké restrikci ze strany provozovatele služby. Není tedy vhodné s tím příliš laborovat.

BTW Výjimka v programu, která vznikne při pokusu o překročení limitu registrovaných zařízení je jedna z těch, které zatím nejsou ve verzi 0.0.2 ošetřeny. Tak opatrně... 1 Jinak registrovaná zařízení se dají na stránce O2TV spravovat a případnou nevhodnou registraci zrušit. Viz: [Only registered and activated users can see links Click here to register]
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#6
Dnes jsme u Playlist O2TV script zjistil jedno omezení.

Pro playlist typu3 (Tvheadend@) nelze pro streamer použít metodu wget. Stream zasílaný prostřednictvím wget Tvheadend neidentifikuje. Důvod mi není známý. Zatím to nehodlám řešit, protože metoda prostřednictvím ffmpeg funguje. Parametr _streamer_method_ tedy může být nastaven pouze na hodnotu 0 (metoda ffmpeg).

Musím se přiznat, že jsem použití wget u O2TV nestačil otestovat. Streamy od O2TV Tvheadend běžně rozpozná, takže mi nepřipadalo nutné použití streamování přes wget testovat. Wget používám s následujícími parametry:

wget -q -O - <STREAM>

Je možné, že někde dělám chybu. Když pustím script z konzole, nějaká data z něj trvale "padají". Poradí někdo?

K ffmpeg x wget obecně. Myslel jsme si, že pokud není třeba měnit kontejner, je lepší použít wget. Že bude docházet k menšímu zpoždění při přepínání kanálu. Ukázalo se ale, že se u ffmpeg, při správné skladbě a nastavení parametrů, dá zpoždění minimalizovat na rozumnou míru. Kromě toho se mi zdá (omlouvám se za ten laický názor, nejsem v této věci žádný velký odborník), že ffmpeg má přeci jen pro procházející streamy "větší pochopení" než wget. Wget jen sype přijímaná data, zatímco ffmpeg moc dobře ví, co dělá a jak se má k těmto datům chovat. Při použití wget jsem měl pocit nižší stability toku dat, která se projevovala větším množstvím drobných poruch, zatímco ffmpeg jakoby ta data "žehlil". Moc dlouho jsem to netestoval, možná to byla jen náhoda, ale každopádně ve všech přijímaných streamech, které jsme kdy přijímal a přijímám, teď používám zásadně ffmpeg.

V součastné době celkem úspěšně používám následující skladbu parametrů ffmpeg pro TV streamy:

ffmpeg -re -fflags +genpts -loglevel fatal -i <STREAM> -probesize 32 -c copy -f mpegts -mpegts_service_type digital_tv pipe:1

Jaký je váš názor na téma ffmpeg x wget?
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#7
JiRo: O2TV Go někde dokáže sypat nepřerušovaný datový stream..? Ano, nezkoušel jsem osobně, ale obecně vypozorováno jsem měl za to, že se přehrává výhradně přes playlist s několikavteřinovými chunky...
 
Citovat
#8
@mobilemanic No jo, to mi nedošlo. Někdy si prostě očividné věci nespojím dohromady. Teď se mi rozsvítilo, v requstech je uvedený streaming protocol HLS, to jsem na vědomí vzal. Ale to, že když je to HLS, tak wget ty chunky nedokáže seřadit, to už ne. Někdy fakt dělám kraviny. Ta snaha vyvolat diskusi na téma wget x ffmpeg je pak v kontextu tohoto vlákna a O2TV zcela nesmyslná. Díky za upozornění, ten wget z toho vypářu...  10 No, to je zase den...
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#9
V Ubuntu po instalaci Pythonu2 funčkní generování, teď to jdu zkusit hodit do TVH.

Tak ať dělám, co dělám, Tvheadend@ mi nejede. Dal jsem pozor, abych měl vybráno ffmpeg a když připojím generic playlist, tak mi TVH skončí s "FAIL" při načítání Muxů. A když připojím vygenerovaný playlist napřímo, tak se normálně načte. Zkontroloval jsem i streamer.sh, zda-li opravdu je správně a vypadá, že ano. Tak nevím, kde mám chybu, jestli nějaká oprávnění či něco jiného. Jdu testnout typ 2.

Typ 2 ok. Dneska už na to kašlu, zkusím laborovat zítra, proč to nešlo.
Teď mi došlo, že jsem neřešil ffmpeg vůbec, takže asi víme, kde je zádrhel, se stydím..  19
Tak stejně nic, tak zítra.
Ok, nedalo mi to.. Stydím se podruhé, já zapomněl dát chmod na streamer.sh, si připadám jak blbec dneska.
 
Citovat
#10
@Mrak No je vidět, že chybí pořádný popis...  10 Není ono třeba v Linux zadat plnou cestu ffmpeg? Párkrát jsme viděl, že někdo píše ve skriptech /usr/bin/ffmpeg. Ve skriptu Playlist je na to pamatováno v parametrech. Default je tam teď _command_ffmpeg_ ='ffmpeg'.
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#11
To je v pohodě, já ještě editoval původní příspěvek a jak jsem napsal, chyba je mezi klávesnicí a židlí. Dneska mám vymeteno a ani základy mi nedojdou.
Takže varianta ffmpeg při Tvheadend@ funguje. Akorát to zdržení přepínání není pro mě, mám radši skoro okamžité přepnutí jako při druhé variantě.
 
Citovat
#12
@Mrak Jaké je to zpoždění přepínání?
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#13
To, co už tu je na fóru několikrát, že při přepnutí kanálu to trvá cca 5s například, dle situace kvůli ffmpeg pravděpodobně.
 
Citovat
#14
@Mrak Ráno jsem si něco poměřil. Hodně záleží na kvalitě vysílání. Porovnával jsme si dva sportovní kanály, jede na nich smyčka. Jeden jede aktuálně 1024x 576, tam po přepnutí najede do 1sec. V Tvheadend se objeví stream za méně jak 0,5 sec. Druhý kanál, jede ve full HD, tam je to o něco pomalejší, ale stále se to vejde do 2 sec. K optimalizaci ffmpeg volání pro HLS protokol jsem zatím nic moc nenašel. Je asi pravda, že to zpoždění záleží více než u jiných protokolů na aktuální situaci v síti, zatížení a z toho plynoucí latence. Použití metody 2 určitě přepínání zrychlí, odpadne jeden článek v řetězci, ale pokud bude zatížení sítě narůstat, naroste zpoždění zahájení přehrávání i tam. Je otázka, za kolik ti stojí problémy plynoucí z opakovaného vytváření služeb a mapování programů. Ale řešit se to dá. Je to spíše o organizaci a způsobu provozování klientů, protože tam se ty problémy projeví nejvíc. Já to tak provozoval rok a fungovalo to +- bez problémů. Na straně Tvheadend serveru se to zautomatizovat dá celkem dobře. Jak generace playlistu, mapování, tak aktualizace epg. Co nevyřeší nikdy, to budou konflikty s aktuálně běžícím klientem nebo nahráváním. Tam to zaskřípe vždy. To při použití metody Tvheadend@ ne.
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#15
@JiRo Jasný, v případě vytížení v síti budou znát odezvy, ale nepředpokládám, že by se koukalo na více, jak třech zařízeních max.
S tím, jakou metodu budu používat, ještě laboruju, beztak stále jen testuju v hyper-V. I zkouším googlit, jestli lze nějak obejít nefunkčnost wget, ale zatím bez úspěchu. Ani nefungovalo laický nápad, kdybych měl pro každý kanál zvlášť soubor m3u, na který bych se přímo odvolával u metody 3. Což jsem původně myslel, že odkázat se v m3u na m3u, ve kterém je další m3u, by nemusel být takový problém, ale skončilo to FAILem  1 
Jinak bych tedy mapování, EPG atd. měl beztak naplánované na noční hodiny, kdy nikdo TV nesleduje a klienti by byli vypnutí. Ještě budu zkoumat. Ale samozřejmě varianta Tvheadend@ s wget by byla nejlepší.  1 A pořád je lepší Tvheadend@ s ffmpeg, logicky, i když pomalejší.
 
Citovat
#16
@Mrak To ti asi uniklo, viz post od @mobilemanic (který se ve streamech vyzná) výše a moji reakci na ni. Nefunkčnost wget neřeš, wget lze opužít pouze v případě jednoho nepřerušovaného datového streamu. V případě HLS protokolu tedy použít nejde. To byl můj úlet, neuvědomil jsme si, že O2TV používá tento protokol. Dneska večer snad vydám novou verzi doplněnou podle To-Do v 1. příspěvku a tam už wget vůbec nebude. 

Jinak k tématu typ 3 Tvheadend@ ANO/NE. Pokud to plánuješ provozovat tak, jak píšeš, tak by použití typu 2 nemuselo být takovou komplikací. V podstatě tak to mám i já. Probouzím LibreELEC s Tvheadendem ve 3 ráno, stáhnu playlisty a dám Re-run internal graber. Vlastní generaci EPG (webgrab++) dělám jindy. Každý den si nahrávám Události a Branky body vteřiny, takže to EPG grabuji v 19:00... Ono mi taky trvá pěkně dlouho...
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#17
JiRo / Mrak : můžu Vám poslat video a ukázku prodlev ffmpeg Antik/přímý link O2 OTT v TVH - kde ČT2 je přímý link,ČT1 je ffmpeg a ČT1(T2) je z USB tuneru




::: Raspberry 1B + Hifiberry DAC = piCorePlayer 3.5.0 (Logitech Media Server 7.9) / 3x Beelink Mini MXIII-II 2GB/16GB LibreELEC 8.2 v NAND ::: Soukromý TVHeadend Server :::
 
Citovat
#18
(29.5.2018, 8:35)Mrak Napsal(a): ...laický nápad, kdybych měl pro každý kanál zvlášť soubor m3u, na který bych se přímo odvolával u metody 3...

Člověče, to je tak jednoduchá myšlenka a přitom tak geniální. Jsem v práci, takže si to nemohu ověřit v TVH, ale ve VLC to funguje. Narychlo jsem si zkusil tři playlisty za sebou a VLC to v pohodě to schroupal a pustil soubor z třetího z nich. Ale co funguje ve VLC nemusí ještě fungovat v TVH... 10. Ty ostatně píše, že ti to nefungovalo... Hmm, to je škoda.
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
#19
@JiRo Jasný, už chápu, jsem zas četl pořádně už. Tak grabovat na sedm dní, jestli se nepletu, pro xxx kanálů, je docela brutál, mi stačí, že dva dny dopředu trvají pro 70 kanálů dost dlouho.
Jo, přehrávače tenhle způsob zvládají (můj poskytovatel internetu to totiž takhle provozuje, jeden výchozí playlist, aby lidé nemuseli řešit jeho aktualizaci v případě změn a na druhý odkazuje).
Bohužel v TVH se mi to při krátkém testování nepovedlo, tak buď opět dělám někde chybu a nebo to TVH nezvládá. Určitě to klidně zkuste někdo ještě, třeba přijdete na nějaké řešení.

@otava5 Ano, přesně stejné zkušenosti mám já. Přímý link je prakticky okamžitý, ffmpeg má zpoždění. Tuner jsem nezkoušel, ten jsem odpojil, jakmile jsem získal OTT. Navíc mi zlobí, najednou se přestane hlásit a zasekne mi i spouštění PC, jak je připojen v USB, očividně PC čeká na nějakou odezvu a nic.

Tak teď jsem spustil HTPC, zkouším programy a nějakým záhadným způsobem je přepnutí okamžité. Ale když to zkusím přímo ve virtuálu, kde běží TVH, spustit KODI, tak dochází k tomu, co ukázal @otava5.
 
Citovat
#20
@Mrak Vyzkoušel jsem u kamaráda na Kodi 17.3 pod W10 nainstaloval Playlist O2TV addon, který generuje shodné playlisty jako script a zkoušeli jsme zpoždění přepínání na IPTVSimple Client. Má připojení UPC 150 Mbit/sec, čekal jsem svižné přepínání. Ale bylo to úplně stejné, jako na mém Tvheadend s ffmpeg. Průměrně do 1-2 občas i 2 - 3 sec, občas ale také pod 1 s.

Když už jsme tam byl, tak jsem mu nainstaloval Tvheadend Clienta  a připojil se k mému domácímu TVheadend a zkoušel přepínat kanály tam. Překvapivě špatný výsledek byl u DVB-T. Špatný a docela zajímavé chování. 1. snímek se sice objeví téměř hned <<1 sec, pak je ale prodleva 1-3 sec a teprve potom se stream rozjede. Jako další zdroj pro Tvheadend používám Sledování.cz (taky přes ffmpeg). Ve zpoždění přepínání kanálů ze Sledování jsou velké rozdíly. Většina se přepne do 1 sec, ale jsou takové, kde to trvá i 5 sec. Přepínání kanálů O2TV jde v podstatě stejně rychle jako při jejich příjmu přes IPTV Simple Clienta. Neměl jsem čas na nějakou podrobnou analýzu, ale vychází mi z toho, že ffmpeg sice nějakou desetinu sekundy přidá, ale že by byl hlavním a jediným důvodem extrémních zpoždění, tak to s jistotou tvrdit nemohu.
Client/TV Server: Asrock Beebox+LE 8.2.5+Tvheadend 4.2,  Clients: RPi 2+LE 8.2.5 2xW10+Kodi 17.6, Android Mobile+TVHClient+Yatse NAS: Asustor.
Máte-li nějaké dotazy, nepište mi SZ, na to je fórum. Pomůžete i ostatním!
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)