• 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
Tvheadend a placená IPTV - idea řešení
Jak už jsme napsal. Původní skript (parse.sh), který jenom prohledával stažený a upravený playlist jsem poněkud rozšířil a přesunul do něj i volání ffmpeg. Z parse.sh je teď streamer.sh, jehož úkolem je podle jména programu v playlistu Tvheadend najít ve staženém playlistu adresu streamu a tu předhodit jako parametr ffmpeg, který pak už zajistí posílání streamu z této adresy na vstup Tvheadend.
Kód:
#! /bin/sh
ffmpeg -re -fflags +genpts -loglevel fatal -i $(grep -A 1 "$*$" .../playlist.m3u8 | head -n 2 | tail -n 1) -probesize 32 -c copy -f mpegts -mpegts_service_type digital_tv pipe:1
 
Citovat
JiRo /mobilemanic:
Dal by se udělat script (příkaz) jen na zkopírování tokenu. Například vyhledat token v playlistu1 mezi určitými dvěma slovy a doplnit ho do playlistu2 mezi dvě určitý slova v čísle řádku?
Příklad streamu: 
http://IP:80/joj/token/playlist.m3u8
Důvod: Token lze použít pro vícero programů....
Děkuji....
 
Citovat
@otava5 Jo jo, to by se určitě dal. Je to například jen otázka vhodného použití tradiční squadry programů sed, grep, awk, atp. plus případně regulárních výrazů, pokud půjde o nějakou složitější a obecnější strukturu. Takovým manipulací se ale vyhýbám, to už je pro mne příliš...
 
Citovat
(Ne)stabilita Kodi při použití wget v Tvheadend

Zatím je to jenom hypotéza, ktará si vyžádá nějaké zkoumání. Pokud s tím ale někdo máte zkušenosti anebo vás něco napadá, přivítám vaše názory.

Používám dva playlisty od placených služeb (Zapni a Sledování) v Tvheadend. Oba zasílám na server ve formě streamů, Zapni přes ffmpeg a Sledování přes wget. Všiml jsem si, že při rychlém přepínání kanálů na klientovi Kodi dochází občas k jeho pádu. A nemusí jít vždy o skutečné přepnutí, ale jen o tzv. "instantní listování" (stisknu a držím Ch+/Ch- na DO, běží stále posledně spuštěný program, na nový se přepne až po zastavení listování) ve full screenu Tv. Ono při takovém způsobu přepínání kanálů IPTV občas dojde, ale od doby, co jeden ze zdrojů posílá data do Tvheadend přes wget, tak k tomu pádu dojde při listování přes jeho kanály téměř vždy, a většinou hned po rychlém přepnutí 2-3 kanálů.

Aby bylo jasno, nežádám o pomoc při analýze, tu si provedu zatím sám, až se k tomu dostanu. Spíše mě zajímá váš názor na to, jak to, že způsob zasílání streamů na server může mít takový vliv na funkci klienta. U serveru bych se tomu nedivil, je jasné, že to, čím na něj streamy posílám vliv mít může. Wget je "tupý rychlík", zatímco ffmpeg moc dobře ví, co přes něj prochází a k datům se tak chová s patřičnou péčí. Ale u klienta? Toho by přeci to, jakým způsobem se streamy dostávají na server nemělo vůbec zajímat, ne?

Zkusil jsem různé kombinace zdrojů a to, čím je zpracováván a vychází mi to tak, že pokud přepínám zdroje ze Sledování je u něj tendence k pádu o něco málo větší, jak u kanálů ze zdroje Zapni (mimochodem, při přepínání kanálů ze zdroje DVB-T vysílání UPC to nespadne nikdy). Ale když přepínám kanály, jejichž streamy prochází přes wget, je rychlost a četnost pádu významně větší. V podstatě to spadne skoro vždy a hned po pár přepnutích. V případě rozdílu četnosti pádů závislém na typu zdroje podezření mám. Vypadá to na to, že za to může větší počet kanálů s chybějícím EPG u jednoho zdroje. V případě rozdílu závislým na použití wget nebo ffmpeg zatím tápu.

Zajímal by mě tedy názor zkušených. Neuniká mi něco?
 
Citovat
Pokud někdo požaduje implementaci Sledovani.TV v TVH, tak se koukněte na
https://github.com/krejcipetr/sledovanitv

Trošku jsem změnil skript od JiRo, doplnil EPG.
Dalši info v README.md
 
Citovat
Byl by velký problém to upravit pro Ubuntu server? Zatím je to ušité na míru XElec, kde je user root a hlavni složka /storage , navíc se motají přístupová práva k souborům. Zkouším si s tím hrát půl dne, bez úspěchu. Už jen vygenerování souboru config.json si něco vzalo - dokud jsem soubor nevytvořil ručně a nepřipravil v něm závorky, tak skript sledovanitv-register.sh sice zařízení zaregistrovalo, ale do souboru nic nezapsalo. Snažím se postupovat podle návodu, ale stále mám soubory v "cache" prázdné, takže další skripty nic nedělají a tvheadend nedostává žádná data.
 
Citovat
Nakonec to nebylo tak složité! Tedy pokud jde o přehrávání kanálů. Když se přeskočí část s EPG, tak to jde celkem snadno. Potřebné soubory jsem zkopíroval do složky /home/hts/sledovanitv/ , na mém serveru uživatel hts zatím neměl složku .cache, tak jsem ji jako sudo vytvořil a pak změnil vlastníka na hts ( sudo chown hts .cache ). Důležité bylo vytvoření souboru config.json . Ten jsem vytvořil ručně a zadal údaje, které mám pro daný počítač již přidělené (doposud jsem pro sledovanitv v tvheadend používal skript z http://jirka.rames.info/iptv-tvheadend/sledovanitv.cz/ ). Skript sledovanitv-register.sh nefungoval, nevim proč. Potom už bylo možné v tvheadendu založit novou síť, a v ní vytvořit muxy pro každý kanál ( URL: pipe:///home/hts/sledovanitv/sledovanitv-playback.sh název_kanálu ). Název kanálu se zjistí po příhlášení do sledovanitv.cz a při pojezdu myší nad programem se ukáže na konci odkazu. EPG zatím nechám být - již mi funguje wg+ . Velký dík uživateli krejcipetr za sepsání a zveřejnění skriptů!
 
Citovat
(09.11.2019, 23:24)Kosmik Napsal(a): Nakonec to nebylo tak složité! Tedy pokud jde o přehrávání kanálů. Když se přeskočí část s EPG, tak to jde celkem snadno. Potřebné soubory jsem zkopíroval do složky /home/hts/sledovanitv/ , na mém serveru uživatel hts zatím neměl složku .cache, tak jsem ji jako sudo vytvořil a pak změnil vlastníka na hts ( sudo chown hts .cache ). Důležité bylo vytvoření souboru config.json . Ten jsem vytvořil ručně a zadal údaje, které mám pro daný počítač již přidělené (doposud jsem pro sledovanitv v tvheadend používal skript z http://jirka.rames.info/iptv-tvheadend/sledovanitv.cz/ ). Skript sledovanitv-register.sh nefungoval, nevim proč. Potom už bylo možné v tvheadendu založit novou síť, a v ní vytvořit muxy pro každý kanál ( URL: pipe:///home/hts/sledovanitv/sledovanitv-playback.sh název_kanálu ). Název kanálu se zjistí po příhlášení do sledovanitv.cz a při pojezdu myší nad programem se ukáže na konci odkazu. EPG zatím nechám být - již mi funguje wg+ . Velký dík uživateli krejcipetr za sepsání a zveřejnění skriptů!

Protoze jste nebyli sami, kdo mel problem s config.json, tak jsem config.json doplnil do gitu a upravil skript registrace tak, aby si soubor pripadne vytvoril.
CoreElec 9.2.1
MeCool KIII Pro
 
Citovat
Photo 
Dobrý den,

asi od vánoc používám toto řešení, dnes však přestalo pracovat.
Muxy zůstaly, ale služeb je nula. Namapovaných taktéž. Zařízení je stále na webu sledovánítv vidět.
Po smazání a spuštění registrace je možné ho opět přidat.
Při vytvoření sítě a spuštění skenování to vypíše tuto chybu:

spawn: Nepodarilo se prihlasit null
spawn: jq: error (at: 1): null (null) has no keys
iptv: unknown playlist format for network 'IPTV_265'

Díky za radu.

PS: jsem amatér, ale něco jsem zkoušel a vypadá to, že zrušili API pro VLC. Nové MUXy to najde, ale nic nenascanuje.
 
Citovat
(28.1.2020, 16:43)Tklf Napsal(a): Dobrý den,

asi od vánoc používám toto řešení, dnes však přestalo pracovat.
Muxy zůstaly, ale služeb je nula. Namapovaných taktéž. Zařízení je stále na webu sledovánítv vidět.
Po smazání a spuštění registrace je možné ho opět přidat.
Při vytvoření sítě a spuštění skenování to vypíše tuto chybu:

spawn: Nepodarilo se prihlasit null
spawn: jq: error (at: 1): null (null) has no keys
iptv: unknown playlist format for network 'IPTV_265'

Díky za radu.

PS: jsem amatér, ale něco jsem zkoušel a vypadá to, že zrušili API pro VLC. Nové MUXy to najde, ale nic nenascanuje.

toto mi to nedela. ale narazil jsem na zmenu url v playlistu, kdy si pridali tecku do url a tim ho znehodnotili.

upravil jsem to a dal na git
CoreElec 9.2.1
MeCool KIII Pro
 
Citovat
Díky za rychlou reakci. Zítra během dne snad vyzkouším. Ještě jednou dík.

Edit: 5.2.2020
Tak sem to nastavil na dva boxy, ale po uplynutí času pro re-fetch playlistu se mi vymažou muxy a dojde k obnovení playlistu. Nastavil sem to schválně na kratší čas (10 minut) abych si to vyzkoušel a je to tak, ovšem aby nebylo záhady málo, tak se to nestane po každém uplynutí těch 10 minut, ale třeba až za tři, nebo 4 cykly, pak je chvíli klid a za nějaký pokus se situace opakuje.
 
Citovat
(16.10.2017, 20:00)matchboxx Napsal(a): @JiRo existuji ruzna software napr xtrem codes, astra cesbo, stalker atd ,ktere umoznuji vytvorit svuj vlastni portal do ktereho se umisti playlist z backendu a ten se potom zada do pristroje treba pres stalker, playlisty se aktualizuji a nabizeji epg a dalsi sluzby k jednotlivym kanalum a funguje to bez problemu

Ahoj a jak se propojim Stalker s TVheadendem? Pri autorizaci Stalkera zadavam MAC, adresu kanalu a adresu EPG. Kde to najdu v TVheadendu?
 
Citovat
(26.7.2017, 23:23)mobilemanic Napsal(a): ad 1. přesně tak, curl nebo wget do cronu, podle potřeby... wget např. neumí SOCAT, což je blbé při stahování EPG dat, která se přes SOCAT dají do TVH nalít úplně nejlépe, tedy je potřeba použít curl, který to umí... na samotné stažení playlistu mám radši wget, přijde mi jednodušší ale to je asi o zvyku :)

ad 2. node-ffmpeg-mpegts-proxy je zbytečná, jediné co dělá je, že spouští ffmpeg, takže pak máš všechno na dvou místech a vzniká v tom nepořádek... jednodušší je přepsat obsah node-ffmpeg-mpegts-proxy do pipe://, vypadá to třeba takhle:

pipe://ffmpeg -re -fflags +genpts -i http://adresa.tld/neco.m3u8 -f mpegts -vcodec copy -acodec copy pipe:1

Má to několik výhod, občas i nějaká nevýhoda:

- s node-ffmpeg-mpegts-proxy máš dvě místa na konfiguraci, děláš všechno dvakrát

- node-ffmpeg-mpegts-proxy vkládá input parametr -re (číst vstup konstantní rychlostí dle datového toku) a nejde to obejít, je to tam v kódu natvrdo, musela by se ta proxy trošinku upravit. Když to máš v pipe:// upravíš si příkaz dle potřeby (používám při připojení různých OTT kanálů z internetu, kde některé dodávají data nárazově a pokud to nestíháš číst, tj. s parametrem -re, tak má kanál záseky).

- HTTP(S) klient v tvheadendu není na všech konfiguracích vždy stabilní, někdy bezdůvodně v náhodných intervalech ukončuje spojení i když zdrojový stream by normálně jel dál... Přes pipe:// se tohle neděje a datový tok je narozdíl od integrovaného HTTP(S) klienta v TVH 100% stabilní (pokud nechci pipe://ffmpeg, tak je vždy bezpečnější použít alespoň "pipe://wget -O - -q http://adresa.serveru.tld")

- nevýhodou přímé konfigurace v TVH může být odcizení adresy streamů v případě hacku TVHeadendu, např. donedávna tam byl nepěkný bug, kdy DEBUG konzole šla zobrazit komukoliv včetně non-admin uživatelů a byl tam vidět výpis integrovaného ffmpegu kam se kanál připojuje. Použitím node-ffmpeg-mpegts-proxy je tohle riziko efektivně eliminováno, obzvlášť pokud je ta proxy vidět pouze v intranetu. Ale to je asi tak jediné, jinak je to spíše pro zlost

- výhodou node-ffmpeg-mpegts-proxy může naopak být to, pokud chci těch TVH připojit víc a nechci jako "switch" použít další "full heavy" tvheadend, lze celkem nenáročně za tímto účelem použít node-ffmpeg-mpegts-proxy, určitě má menší paměťovou a výkonovu stopu než celý velký TVHeadend.

---

Je potřeba promyslet, co bude výhodnější pro "IPTV automatic", jedna z těch variant bude snazší, jen v tuto chvíli nevím která.

A ještě poznámka mimo, TVHeadend umí HLS playlisty nativně, i bez ffmpegu/proxy... Moc dobře mi to ale nefungovalo, spojovalo to segmenty špatně, vznikala mezi nimi viditelná pauza což je na rozumné koukání nepoužitelné. Ale nevím jak je to v posledních verzích, možná to už opravili, pak by snad nebylo potřeba vůbec nic, jen stáhnout playlist a nechat TVH ať to zpracuje. Moc tomu nevěřím, ale za zkoušku by to možná taky stálo :)

Ahojky, nemas nejaky script co by mi prave obalil vygenerovany playlist parametrama ffmpegu??? potrebuji pred a za... Diky za info Bajtik
 
Citovat
Ahoj, nemáte někdo skript pro Vodafone TV v TVheadendu (klidně do zprávy)? Děkuji.
 
Citovat
  


Přejít na fórum:


Prochází: 2 host(ů)