Problematika prehrávaňá moderného "zaTLSkuvaného" HLSka na "starom smrade"
Posted: Sat Aug 03, 2024 1:37 am
Uvedení do problematiky:
Zas došla tá časť roka kedy je Wacken, nemecký festival kerý má tak sto rokov, sto rokov sa toť kukáva a sto rokov sa tak ešte robiť bude.
Medzirokmi bola už situácia kedy sa streamy z Wackenu kukávali či čisto na vecách kde tá Telekom stránka išla otvoriť a vedelo to prehrať, alebo volakde kde to bolo najjednoduchšé. Minulý rok sa už probuvalo aj castuvaní na ten kuchynský Android televízor, púšťaní skrz Kodi s playlistami na títo adresy a aj nevím čo šecko ešte.
Tohoroku je ale situácia inakšá. Resp. z časti som to zinakšeu ja. Zakál sa to teda v kuchyni dá našteluvať velice jednoducho a buď to tam otvoriť v browseri, pustiť skrz cast alebo bárjako ináč lebo to je prisprostený Android televízor tak tento raz sa mi zastelo sprobuvať jaké to bude ten stream prehnať a prehrať na obyvačkovej Samsung PS60E6500 plazme. Televízor kategórie "starý smrad" na kerom je Orsay+linux a SamyGO síce ze síte prehrávať ví, ví DLNA (aj keď neuveriteľne problematicky s doslova povymýšlanými chybami keré hádže kedy mu to vyhovuje) a vi prehrávať aj htsp, HLS a rtmp streamy skrz velice šikovnú polskú OnlineTV hovadinu.
Tak som teda išóv póvodne na istotu, otvoreu som stránečku se streamom, ukradol m3u8čku s príslušnou stream adresou, zakačkuval sa na televízor, upraveu príslušnú adresu náhodného programu ve TvList.xml-ku (v tomto prípade CANAL+ na 5. pozícií ze Skylinku), súbor uložeu a prepísav a sprobuval. Toto je v svojej podstate dosť klasický a nudný proces jakým by sa to dalo poríšiť a logika napovedá že to neni ani zrovna volačo čo by zrovna nefunguvalo.
Akurát že to by bol život moc jednoduchý keby šecko takto funguvalo, takže čil realita. Výsledek bol trt. Stream nepustilo, dokonca televízor reštartuvalo a bolo po srande.
Potom som síííce časom došóv na to, že pri HLS streamoch sa má jakože používať inakší identifikátor, a to HLS namísto HTTP, čo toto keď som spraveu tak ma to síce posunulo o kúštek bližší k ideálnemu stavu ale aj tak bol z toho prd keďže sa to čil javilo že to jakkeby loopuvalo načítavaní dokolečka a nič z toho.
V tomto momente som začav upúšťať od "realistických nápadov na istotu" a začav som tápať do riešení keré by mohli funguvať ale sú chaotické a koľkorazy sprosté už len pomysleť:
A to ríšení sa volá:
Ano, zrovna už ten v mojom prípade nie raz šteluvaný (se skúsenosťami minimálne od roku 2016), funkčný a fakt kvalitný a overený TVheadend kerý furt používam aj v roku čil totižto ví "IPTV Network" čo móžeme povedať že je v tomto prípade glorifikuvaný... HTSP wrapper pre M3U8, HLS a streamy podobných rodinék. Samozrejme že ani toto ríšení nebolo bezproblémové, ale o tom potom.
Čil teda k tým šteluvačkám, aby som jakože hlavne ja dobudúcna nezabudol:
Treba najprv dopredu vytvoriť IPTV Network. Je tam ešte aj voláky IPTV Automatic Network kerý fakt nemám čil šajnu že v čom je inakší od toho klasického. Asi to neni nič také extra aby sa ma to dotklo.
Po vytvorení networku treba ísť samozrejme potom do sekcie pridávaňá nového muxu pre tento "IPTV Network". Tu do URL časti nového muxu pre ten daný network stačí strčiť m3u8 adresu, preistotu vypať EPG scan neh to nerobí bordel, postrčiť ešte service name neh to neni také suché a mux uložiť.
A tu sa čil idem priznať k jednému z problémových bodov za kerý v podstate aj tak nemóžem. Aspoň sa to dá zneužiť na taký polopopis ich systému. Ide o to, nemci si streamy poríšili na pseudo-dva spósoby. Majú hlavný index.m3u8 v kerom je automaticky najprv vepchatá reklama na pivo Krombacher a potom to celkovo prehadzuje stream za ten reálny festivalový. Keď som probuval najprv túto adresu tak sa dostaveu dopamínový efekt na mňa lebo danú reklamu som konečne po pokuse o prehratí videl. Tento efekt netrvau ale dlho, lebo som friško narazeu na problém kedy pivoreklama došla na konec a tam aj ostala. TVheadend totižto asi neví tí gymnastické šaškuvačky čo tam v tej M3U8čke sú zežrať a pochopiť. Buď ich teda ríši webplayer na ich strane alebo to iba nejde, alebo.. ja nevím, nejdem do toho rýpať lebo ma to nezaujíma.
V tomto prípade tam teda nesmí ísť tá póvodná adresa, ale tá, čo vyjde po skončení pivoreklamy pre festivalový stream na webplayeri. Táto daná adresa je už ale pokročilejšá lebo obsahuje kopu trackingu, session tokeny a hovadiny. Toto samozrejme znamenalo že keby túto adresu vervem do muxu, uložím, pustím stream a náhodou potom tú póvodnú kartu s póvodným webplayerom zavrem tak po čase tomuto inde pustenému streamu vyprší session token a prestane ísť. (póvodne už ze skúsenosti očakávané a potom aj reálne overené sprobuvaním)
Ve výsledku som to teda spraveu tak jak čil píšem hentam na samom konci. Jedine s tým rozdílom že na serveri kde je TVH server je aj otvorený pomerne moderný browser s obidvoma kartami (čo karta to jeden stream keďže majú dva stage) kde je stream pozastavený ale aspoň to udržuje tí dve špecifické adresy živé. Takto sa ja nemosím báť že by sa mi volačo inakšé uspalo kde tí karty póvodne boli a že by sa to friško dosralo.
Títo stream adresy sú teda vervaté v dvoch samostatných muxoch, tí sú namapuvané jak dve služby a toto je vervaté či už v plugine na plazme, alebo potom neskór úspešne sprobuvané aj na tom smíšnom Androidovom televízori.
Ponaučení na záver:
Určite existuje ríšení na problém keré by išlo lepší, verím tomu. Verím tomu, že teoreticky sa tí pokročilé stream adresy dali voláko osanitizuvať aby ich ten plugin aj zežral namísto toho aby to volade v procese parsuvačék XMLka spadlo, aj keď tam možno aj ten TLS odkaz robeu svoje. S tým sa mi ale, povím pravdu, fakt nestelo zapodívať a radšej som to nakonec spraveu s TVheadendom kerý mám hlavne na satelitné využití. Ve výsledku som potom fakt mohol pustiť ten stream aj na tej kuchynskej Androidovine bez castuvaňá a podobných hovadín. Na druhej strane som prekvapený že ma to za celé tí roky nevedelo napannúť, veď tá IPTV funkcionalita tam je od vekov večných. A ano, keby to bol velice veliký problém tak veznem malinu, vyhodený laptop alebo voláku mašinu, pichnem to HDMIčkom do televízora a pustiím to tam. Ale to by potom zas nebola taká sranda to púšťať na "starom smarade" kerý procesorového výkonu na toto interne má dosť a nepotrebuje mať v HDMIčku napichané nič.
A ešte jedna vec na samý konec:
Počas celého vlákna som popisuval stream adresy jak "zaTLSkuvané". Trik je v tom že pod TLSkom sú iba tí hlavné m3u8 stream adresy keré mimo TLSka nejdú. To že tam nútri sú .ts-ká už iba pod http je vec druhá. Čil to je už jedno, funguvať to funguvalo dobre a z toho čo som očul tak to prehrávalo ešte lepší jak webplayer na iPade pod Safari/Firefoxom kerý sa ľúbeu po čase zaseknúť na amen a inšo jak refresh mu už nepomohol.
Zas došla tá časť roka kedy je Wacken, nemecký festival kerý má tak sto rokov, sto rokov sa toť kukáva a sto rokov sa tak ešte robiť bude.
Medzirokmi bola už situácia kedy sa streamy z Wackenu kukávali či čisto na vecách kde tá Telekom stránka išla otvoriť a vedelo to prehrať, alebo volakde kde to bolo najjednoduchšé. Minulý rok sa už probuvalo aj castuvaní na ten kuchynský Android televízor, púšťaní skrz Kodi s playlistami na títo adresy a aj nevím čo šecko ešte.
Tohoroku je ale situácia inakšá. Resp. z časti som to zinakšeu ja. Zakál sa to teda v kuchyni dá našteluvať velice jednoducho a buď to tam otvoriť v browseri, pustiť skrz cast alebo bárjako ináč lebo to je prisprostený Android televízor tak tento raz sa mi zastelo sprobuvať jaké to bude ten stream prehnať a prehrať na obyvačkovej Samsung PS60E6500 plazme. Televízor kategórie "starý smrad" na kerom je Orsay+linux a SamyGO síce ze síte prehrávať ví, ví DLNA (aj keď neuveriteľne problematicky s doslova povymýšlanými chybami keré hádže kedy mu to vyhovuje) a vi prehrávať aj htsp, HLS a rtmp streamy skrz velice šikovnú polskú OnlineTV hovadinu.
Tak som teda išóv póvodne na istotu, otvoreu som stránečku se streamom, ukradol m3u8čku s príslušnou stream adresou, zakačkuval sa na televízor, upraveu príslušnú adresu náhodného programu ve TvList.xml-ku (v tomto prípade CANAL+ na 5. pozícií ze Skylinku), súbor uložeu a prepísav a sprobuval. Toto je v svojej podstate dosť klasický a nudný proces jakým by sa to dalo poríšiť a logika napovedá že to neni ani zrovna volačo čo by zrovna nefunguvalo.
Akurát že to by bol život moc jednoduchý keby šecko takto funguvalo, takže čil realita. Výsledek bol trt. Stream nepustilo, dokonca televízor reštartuvalo a bolo po srande.
Potom som síííce časom došóv na to, že pri HLS streamoch sa má jakože používať inakší identifikátor, a to HLS namísto HTTP, čo toto keď som spraveu tak ma to síce posunulo o kúštek bližší k ideálnemu stavu ale aj tak bol z toho prd keďže sa to čil javilo že to jakkeby loopuvalo načítavaní dokolečka a nič z toho.
V tomto momente som začav upúšťať od "realistických nápadov na istotu" a začav som tápať do riešení keré by mohli funguvať ale sú chaotické a koľkorazy sprosté už len pomysleť:
- hatepové proxy na ten "TLSkový" HLS stream
- lokálny restream
- janevímčo3, voláka hovadina sa určite probuvala alebo vymýšlala ale šak nešla
- narvať adresu streamu číslo 2 do OnlineTV
A to ríšení sa volá:
- svíťacá hvízdička s menom TVheadend
Ano, zrovna už ten v mojom prípade nie raz šteluvaný (se skúsenosťami minimálne od roku 2016), funkčný a fakt kvalitný a overený TVheadend kerý furt používam aj v roku čil totižto ví "IPTV Network" čo móžeme povedať že je v tomto prípade glorifikuvaný... HTSP wrapper pre M3U8, HLS a streamy podobných rodinék. Samozrejme že ani toto ríšení nebolo bezproblémové, ale o tom potom.
Čil teda k tým šteluvačkám, aby som jakože hlavne ja dobudúcna nezabudol:
Treba najprv dopredu vytvoriť IPTV Network. Je tam ešte aj voláky IPTV Automatic Network kerý fakt nemám čil šajnu že v čom je inakší od toho klasického. Asi to neni nič také extra aby sa ma to dotklo.
Po vytvorení networku treba ísť samozrejme potom do sekcie pridávaňá nového muxu pre tento "IPTV Network". Tu do URL časti nového muxu pre ten daný network stačí strčiť m3u8 adresu, preistotu vypať EPG scan neh to nerobí bordel, postrčiť ešte service name neh to neni také suché a mux uložiť.
A tu sa čil idem priznať k jednému z problémových bodov za kerý v podstate aj tak nemóžem. Aspoň sa to dá zneužiť na taký polopopis ich systému. Ide o to, nemci si streamy poríšili na pseudo-dva spósoby. Majú hlavný index.m3u8 v kerom je automaticky najprv vepchatá reklama na pivo Krombacher a potom to celkovo prehadzuje stream za ten reálny festivalový. Keď som probuval najprv túto adresu tak sa dostaveu dopamínový efekt na mňa lebo danú reklamu som konečne po pokuse o prehratí videl. Tento efekt netrvau ale dlho, lebo som friško narazeu na problém kedy pivoreklama došla na konec a tam aj ostala. TVheadend totižto asi neví tí gymnastické šaškuvačky čo tam v tej M3U8čke sú zežrať a pochopiť. Buď ich teda ríši webplayer na ich strane alebo to iba nejde, alebo.. ja nevím, nejdem do toho rýpať lebo ma to nezaujíma.
V tomto prípade tam teda nesmí ísť tá póvodná adresa, ale tá, čo vyjde po skončení pivoreklamy pre festivalový stream na webplayeri. Táto daná adresa je už ale pokročilejšá lebo obsahuje kopu trackingu, session tokeny a hovadiny. Toto samozrejme znamenalo že keby túto adresu vervem do muxu, uložím, pustím stream a náhodou potom tú póvodnú kartu s póvodným webplayerom zavrem tak po čase tomuto inde pustenému streamu vyprší session token a prestane ísť. (póvodne už ze skúsenosti očakávané a potom aj reálne overené sprobuvaním)
Ve výsledku som to teda spraveu tak jak čil píšem hentam na samom konci. Jedine s tým rozdílom že na serveri kde je TVH server je aj otvorený pomerne moderný browser s obidvoma kartami (čo karta to jeden stream keďže majú dva stage) kde je stream pozastavený ale aspoň to udržuje tí dve špecifické adresy živé. Takto sa ja nemosím báť že by sa mi volačo inakšé uspalo kde tí karty póvodne boli a že by sa to friško dosralo.
Títo stream adresy sú teda vervaté v dvoch samostatných muxoch, tí sú namapuvané jak dve služby a toto je vervaté či už v plugine na plazme, alebo potom neskór úspešne sprobuvané aj na tom smíšnom Androidovom televízori.
Ponaučení na záver:
Určite existuje ríšení na problém keré by išlo lepší, verím tomu. Verím tomu, že teoreticky sa tí pokročilé stream adresy dali voláko osanitizuvať aby ich ten plugin aj zežral namísto toho aby to volade v procese parsuvačék XMLka spadlo, aj keď tam možno aj ten TLS odkaz robeu svoje. S tým sa mi ale, povím pravdu, fakt nestelo zapodívať a radšej som to nakonec spraveu s TVheadendom kerý mám hlavne na satelitné využití. Ve výsledku som potom fakt mohol pustiť ten stream aj na tej kuchynskej Androidovine bez castuvaňá a podobných hovadín. Na druhej strane som prekvapený že ma to za celé tí roky nevedelo napannúť, veď tá IPTV funkcionalita tam je od vekov večných. A ano, keby to bol velice veliký problém tak veznem malinu, vyhodený laptop alebo voláku mašinu, pichnem to HDMIčkom do televízora a pustiím to tam. Ale to by potom zas nebola taká sranda to púšťať na "starom smarade" kerý procesorového výkonu na toto interne má dosť a nepotrebuje mať v HDMIčku napichané nič.
A ešte jedna vec na samý konec:
Počas celého vlákna som popisuval stream adresy jak "zaTLSkuvané". Trik je v tom že pod TLSkom sú iba tí hlavné m3u8 stream adresy keré mimo TLSka nejdú. To že tam nútri sú .ts-ká už iba pod http je vec druhá. Čil to je už jedno, funguvať to funguvalo dobre a z toho čo som očul tak to prehrávalo ešte lepší jak webplayer na iPade pod Safari/Firefoxom kerý sa ľúbeu po čase zaseknúť na amen a inšo jak refresh mu už nepomohol.