Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Ako streamovat video do prehliadaca

node
verified
rating uzivatele
(5 hodnocení)
20. 8. 2020 19:47:17
Mam vlastny RTMP server kam streamujem z OBS. RTMP je Adobe protokol ktory vyuziva FLV kontajner a dnes uz vyhradne len AAC a H264 kodeky.
Chcem tento stream proxnut aby ho bolo mozne pozerat v prehliadaci, nazivo, nativne cez video element. Stream mam rozkuskovany na asi 2 sekundove videa, ktore oddelujem podla GOP(aktualne 2) a bufferujem ich v ramke, odkial si ich prehlaidac moze tahat a mat tak aktualne video.
Prakticky tieto videa tvoria jeden suvisly celok, aj ked su samostatne.
Problem s html videom je ten, ze aktualne nema podporu streamovania. Skusal som nacitat videa na pozadi a menit src atribut, lenze tam vznika "lag" a video neposobi ako jeden celok.
Takze ostava iba Media Source rozsirenie pre prehliadace. Ten mi umoznuje pouzit buffer a donho streamovat. Problem je ze takato forma vyzaduje fragmentovane MP4 kontajnery, pripadne upravene TS videa. Dnes sa bezne pouziva HLS, ktore standardne pouziva TS videa a projekt hls.js tieto interne upravi, tak aby ich mohol nasackovat do tohto bufferu a je to dnes standard.
Problem je ten, ze ja nemam staticky playlist, takze hls.js/HSL ako take je pre mna nepouzitelne, nakolko nema podporu pre pridavanie videi z vonku. HLS je dobre na pzoeranie filmov a podobne, ale nie na zive streamovanie. A hls.js moze clovek len dodat url na playlist a skript robi vsetko sam. Kedze ide o video stream tak neexistuje finalny playlist, len neustale doplnovany zoznam url na rozkuskovane videa.
Takze hladam nejake riesenie v cistom js. Ako som pisal, fuguje tu iba podpora fragmentovanych mp4 kontajnerov, no mam s tym problem lebo nie su dobre kniznice. Respektive nieco pouzitelne je, ale pakety ktore mam z RTMP neviem spravne nasackovat do tohto fMP4 formatu aby to media source zobral.
Tak by ma zaujimalo ake alternativy este su o ktorych zatial neviem? Rozmyslal som nad tym media source ze ci by donho neslo tlacit len pakety priamo z rtmp, kedze ide o aac a h264 flv-dekodovane pakety ktore sa aj tak len zapisuju do mp4 suboru ktoremu sa doplni len header. Cize keby som do media source zapisal len mp4 header, a tlacil don rovno pakety, ci by to nejak fungovalo? Myslel som ze fragmentovane mp4 vyzaduje segment index ale vraj nie a videl som video ktore media source prehral a video nemal sidx takze mozno by tu slo nieco zbuchat. Nemate s tym niekto skusenosti?
PS: ono v principe ja nepotrebujem uplne streamovat do toho media sourcu. Keby sa len dalo nejak poriesit to ze si na pozadi stiahnem video a dodam ho cez media source video elementu aby to prehral suvoslo bez toho spominaneho lagu. To by bolo najidealnejsie.
20. 8. 2020 19:47:17
https://webtrh.cz/diskuse/ako-streamovat-video-do-prehliadaca/#reply1460743
skorozacatecnik
verified
rating uzivatele
21. 8. 2020 08:08:13
To by mě taky zajímalo :)
Řešil jsem to asi před 2 lety a bylo tenkrát snazší předělat videa na fragmentovaný (nebyl to stream, ale problematika myslím stejná, jen já to tlačil pře WS).
21. 8. 2020 08:08:13
https://webtrh.cz/diskuse/ako-streamovat-video-do-prehliadaca/#reply1460742
node
verified
rating uzivatele
(5 hodnocení)
21. 8. 2020 16:09:55
tak som zistil ze na zive streamovanie sa nepouziva hls/dash ale webrtc+media stream. takze si to momentalne studujem :)
..
no tak do webrtc sa v ziadnom pripade pustat nejdem. na to nebudem mat nervy a cas. takze by som rad ostal s media source a nejak tam tlacil mp4...
...
tak webrtc je skor na komunikaciu medzi prehliadacmi na priamo(video hovory a podobne). takze povodny koncept je spravny len v principe ide o to ze treba vytvorit fragmentovane mp4 a na tom som momentalne zaseknuty. z toho co som cital by malo stacit poslat mp4 header(ftype moov) a potom len doplnat jednotlive segmenty(moof mdat) a je z toho "stream". len ako pisem, som zaseknuty na tom lebo som nesiel iba jednu fmp4 kniznicu a nie je to teda ziadna lahoda s tym robit a vsetko je len pokus-omly. anyway, asi tak. na webe je plno informacii o media source a fragmentovanych kontajneroch, takze myslim ze zahada je vyriesena.
inak hls.js robi prakticky toto iste. vezme TS kontajner, vytiahne z neho data, vytvori fragemntovany mp4 kontajner a tak to posunie do media source. cize princip rovnaky len sa to deje priamo v prehliadaci.
tu je nejake info, hlavne aj s nalinkovanymi specifikaciami kontajnerov https://github.com/w3c/media-source/issues/216#issuecomment-612043164
21. 8. 2020 16:09:55
https://webtrh.cz/diskuse/ako-streamovat-video-do-prehliadaca/#reply1460741
Lukas Kuna
verified
rating uzivatele
22. 8. 2020 20:35:16
V HLS pro živý přenos v zásadě žádný problém není.
22. 8. 2020 20:35:16
https://webtrh.cz/diskuse/ako-streamovat-video-do-prehliadaca/#reply1460740
Pro odpověď se přihlašte.
Přihlásit