Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:hls_protokol [2021/01/16 15:20] tzukina [Arhitektura HLS protokola] |
racfor_wiki:hls_protokol [2024/12/05 12:24] (trenutno) |
||
---|---|---|---|
Redak 26: | Redak 26: | ||
===== Arhitektura HLS protokola ===== | ===== Arhitektura HLS protokola ===== | ||
- | HTTP Live Streaming koristi | + | HTTP Live Streaming koristi |
Arhitektura servisa u kontekstu HLS protokola uključuje poslužitelja, | Arhitektura servisa u kontekstu HLS protokola uključuje poslužitelja, | ||
Redak 38: | Redak 38: | ||
**Segmenter** dijeli tok podataka u fragmente jednake duljine i također kreira indeksnu datoteku koja sadrži reference na odgovarajuće .ts (// | **Segmenter** dijeli tok podataka u fragmente jednake duljine i također kreira indeksnu datoteku koja sadrži reference na odgovarajuće .ts (// | ||
- | **Distributer** je oblikovan kao standardni internetski poslužitelj koji prima zahtjeve od klijenata i dostavlja sve potrebne resurse koji uključuju .m3u8 playlistu i segmente datoteke ekstenzije .ts potrebne za HLS streaming. | + | **Distributer** je oblikovan kao standardni internetski poslužitelj koji prima zahtjeve od klijenata i dostavlja sve potrebne resurse |
- | **Klijent** šalje | + | **Klijent** šalje |
{{: | {{: | ||
Redak 53: | Redak 53: | ||
Prvo se šalje GET zahtjev kojim se dohvaća sadržaj .m3u8 indeksne datoteke koja sadrži reference na .ts fragmente koji se trenutno mogu dohvatiti sa servera. Zatim se u svrhu dohvaćanja fragmenta šalje GET zahtjev kojim se dohvaća njegova .ts datoteka te odgovor zahtjeva vraća njegov cijeli sadržaj, a nakon što je dobiveni sadržaj prikazan u video playeru, šalje se novi HTTP GET zahtjev za dohvaćanje sljedećeg fragmenta, pri čemu je svaki zahtjev kratka konekcija koja ne čuva stanje. | Prvo se šalje GET zahtjev kojim se dohvaća sadržaj .m3u8 indeksne datoteke koja sadrži reference na .ts fragmente koji se trenutno mogu dohvatiti sa servera. Zatim se u svrhu dohvaćanja fragmenta šalje GET zahtjev kojim se dohvaća njegova .ts datoteka te odgovor zahtjeva vraća njegov cijeli sadržaj, a nakon što je dobiveni sadržaj prikazan u video playeru, šalje se novi HTTP GET zahtjev za dohvaćanje sljedećeg fragmenta, pri čemu je svaki zahtjev kratka konekcija koja ne čuva stanje. | ||
- | Kako bi se filtrirao HLS promet, u Wireshark programskom alatu potrebno je filtrirati sve HTTP poruke koje u sebi sadrže " | + | Kako bi se filtrirao HLS promet, u Wireshark programskom alatu potrebno je filtrirati sve HTTP poruke koje u sebi sadrže " |
Nakon toga je HTTP poruke unutar filtriranog prometa moguće prikazati u listi te je indeksnu datoteku kao i svaki pojedini .ts fragment moguće izvesti i pohraniti za detaljnije proučavanje sadržaja HLS prometa (**Slika 3**). | Nakon toga je HTTP poruke unutar filtriranog prometa moguće prikazati u listi te je indeksnu datoteku kao i svaki pojedini .ts fragment moguće izvesti i pohraniti za detaljnije proučavanje sadržaja HLS prometa (**Slika 3**). | ||
Redak 69: | Redak 69: | ||
Jedna od ključnih prednosti ovog protokola vezana je za njegova svojstva kompatibilnosti. Za razliku od drugih streaming formata, HLS je kompatibilan s iznimno širokim rasponom uređaja i vatrozida. | Jedna od ključnih prednosti ovog protokola vezana je za njegova svojstva kompatibilnosti. Za razliku od drugih streaming formata, HLS je kompatibilan s iznimno širokim rasponom uređaja i vatrozida. | ||
- | Druga ključna prednost je prilagodljivost kvalitete video streama ovisno o mrežnim okolnostima, | + | Druga ključna prednost je prilagodljivost kvalitete video streama ovisno o mrežnim okolnostima, |
- | Glavna mana standardnog HLS protokola koja se svakako mora uzeti u obzir prilikom objave bilo kakvog video sadržaja ili dizajniranja usluge za prijenos video sadržaja je relativno veliko kašnjenje u odnosu na druge streaming protokole. Budući da HLS protokol mora kreirati buffer od 3-4 fragmenta od kojih svaki traje desetak sekundi, to kašnjenje može biti veće i od 30 sekundi, što značajno može pogoršati korisničko iskustvo kod mnogih prijenosa videa. Kašnjenje HLS streama moguće je smanjiti smanjivanjem veličine video fragmenata odnosno segmenata čime se skraćuje njihovo trajanje te se pritom smanjuje i veličina buffera, no i u tom slučaju fragmenti i dalje traju 2-6 sekundi, što ostavlja kašnjenje značajno veće od mnogih drugih protokola, a smanjivanje veličine segmenata također može negativno utjecati na stabilnost prijenosa videa u nešto lošijim mrežnim uvjetima. | + | Glavna mana standardnog HLS protokola koja se svakako mora uzeti u obzir prilikom objave bilo kakvog video sadržaja ili dizajniranja usluge za prijenos video sadržaja je relativno veliko kašnjenje u odnosu na druge streaming protokole. Budući da HLS protokol mora kreirati buffer od 3-4 fragmenta od kojih svaki traje desetak sekundi, to kašnjenje može biti veće i od 30 sekundi, što značajno može pogoršati korisničko iskustvo kod mnogih prijenosa videa. Kašnjenje HLS streama moguće je smanjiti smanjivanjem veličine video fragmenata, odnosno segmenata, čime se skraćuje njihovo trajanje te se pritom smanjuje i veličina buffera, no i u tom slučaju fragmenti i dalje traju 2-6 sekundi, što ostavlja kašnjenje značajno veće od mnogih drugih protokola, a smanjivanje veličine segmenata također može negativno utjecati na stabilnost prijenosa videa u nešto lošijim mrežnim uvjetima. |
Za usporedbu (**Slika 4**), tipična kablovska televizija ima kašnjenje u rasponu od 5 do 10 sekundi, interaktivni game streaming ima prihvatljivo kašnjenje od jedne do maksimalno 5 sekundi, optimizirana verzija HLS-a s niskim kašnjenjem može ostvariti kašnjenje od oko 2 sekunde, a WebRTC (Web Real-Time Communications) protokol teoretski može ostvariti kašnjenje manje od jedne sekunde. | Za usporedbu (**Slika 4**), tipična kablovska televizija ima kašnjenje u rasponu od 5 do 10 sekundi, interaktivni game streaming ima prihvatljivo kašnjenje od jedne do maksimalno 5 sekundi, optimizirana verzija HLS-a s niskim kašnjenjem može ostvariti kašnjenje od oko 2 sekunde, a WebRTC (Web Real-Time Communications) protokol teoretski može ostvariti kašnjenje manje od jedne sekunde. | ||
Redak 80: | Redak 80: | ||
===== Slučajevi korištenja HLS protokola ===== | ===== Slučajevi korištenja HLS protokola ===== | ||
- | Zbog relativno velikog kašnjenja u odnosu na ostale streaming protokole, za bilo koju primjenu koja zahtjeva kašnjenje manje od jedne sekunde, poput video poziva, web konferencija, | + | Zbog relativno velikog kašnjenja u odnosu na ostale streaming protokole, za bilo koju primjenu koja zahtjeva kašnjenje manje od jedne sekunde, poput video poziva, web konferencija, |
Za sve ostale prijenose videa uživo u kojima je visoka kvaliteta i stabilnost bitnija od vremena kašnjenja trebao bi se koristiti HLS protokol. | Za sve ostale prijenose videa uživo u kojima je visoka kvaliteta i stabilnost bitnija od vremena kašnjenja trebao bi se koristiti HLS protokol. | ||
- | Budući da je HLS protokol trenutno najšire rasprostranjeni protokol za streaming medija te ujedno i najpopularniji među kreatorima sadržaja (**Slika 5**), najbolji je izbor protokola za emitiranje u realnom vremenu koji će stream učiniti podržanim za veliku većinu | + | Budući da je HLS protokol trenutno najšire rasprostranjeni protokol za streaming medija te ujedno i najpopularniji među kreatorima sadržaja (**Slika 5**), najbolji je izbor protokola za emitiranje u realnom vremenu koji će stream učiniti podržanim za veliku većinu |
- | Dodatno, rastom potpore Apple Low-Latency HLS protokola, kašnjenje manje od dvije sekunde postaje sve više uobičajeno, | + | Dodatno, rastom potpore Apple Low-Latency HLS protokola, kašnjenje manje od dvije sekunde postaje sve više uobičajeno, |
- | Prilikom prijenosa koji treba biti dostupan na mobilnim uređajima HLS je iznimno važan zbog njegove dobre podrške koja za veliki broj drugih protokola na većini mobilnih uređaja nije dostupna. Također, poželjno je da svi sustavi koji koriste zastarjele i slabo prilagodljive mehanizme prijenosa | + | Prilikom prijenosa koji treba biti dostupan na mobilnim uređajima HLS je iznimno važan zbog njegove dobre podrške koja za veliki broj drugih protokola na većini mobilnih uređaja nije dostupna. Također, poželjno je da svi sustavi koji koriste zastarjele, nesigurne |
{{: | {{: | ||
Redak 96: | Redak 96: | ||
===== Zaključak ===== | ===== Zaključak ===== | ||
- | Ovisnost o dodacima trećih strana za prikaz ili objavu videa u internetskim preglednicima sve je manje učestala, a standardi kojima se uvode različiti streaming protokoli izvorno podržano u preglednicima sve su više prihvaćeni te dolazi do njihove sve šire i jednostavnije primjene. | + | Ovisnost o dodacima trećih strana za prikaz ili objavu videa u internetskim preglednicima sve je manje učestala, a standardi kojima se uvode različiti streaming protokoli izvorno podržani u preglednicima sve su više prihvaćeni te dolazi do njihove sve šire i jednostavnije primjene. |
Različiti slučajevi korištenja nameću različite prioritete te je ponekad bitnije izrazito nisko kašnjenje uz nužnu pretpostavku da je internetska veza dobra i stabilna, a ponekad stabilnost i kvaliteta koji će omogućiti pouzdani i kontinuirani prikaz video streama i u lošijim mrežnim uvjetima, ali uz prihvaćanje neizbježnog kašnjenja. | Različiti slučajevi korištenja nameću različite prioritete te je ponekad bitnije izrazito nisko kašnjenje uz nužnu pretpostavku da je internetska veza dobra i stabilna, a ponekad stabilnost i kvaliteta koji će omogućiti pouzdani i kontinuirani prikaz video streama i u lošijim mrežnim uvjetima, ali uz prihvaćanje neizbježnog kašnjenja. | ||
- | HLS protokol se zbog brojnih prednosti i relativno jednostavne implementacije koristi u slučajevima bitne stabilnosti i kvalitete kad visoka interaktivnost i prijenos u realnom vremenu nisu posve bitni, kao što je prijenos sportskih događaja, no napretkom samog standarda i smanjenjem kašnjenja uz zadržavanje iste razine kvalitete primjene naprednijih verzija tog protokola postaju puno šire te je HLS moguće koristiti i za nešto interaktivnije primjene poput e-gaminga. | + | HLS protokol se zbog brojnih prednosti i relativno jednostavne implementacije koristi u slučajevima bitne stabilnosti i kvalitete kad visoka interaktivnost i prijenos u realnom vremenu nisu posve bitni, kao što je prijenos sportskih događaja, no napretkom samog standarda i smanjenjem kašnjenja uz zadržavanje iste razine kvalitete primjene naprednijih verzija tog protokola postaju puno šire te je HLS moguće koristiti i za nešto interaktivnije primjene poput gaminga. |
Uz vrlo jasnu i javno poznatu arhitekturu i specifikaciju HLS protokola moguće je njegovo lakše proučavanje koje je vrlo zanimljivo sa stajališta mrežne forenzike te koje sudjelovanjem zajednice može dovesti do ideja za daljnja unaprijeđenja i stvaranja novih prilika za široke primjene. | Uz vrlo jasnu i javno poznatu arhitekturu i specifikaciju HLS protokola moguće je njegovo lakše proučavanje koje je vrlo zanimljivo sa stajališta mrežne forenzike te koje sudjelovanjem zajednice može dovesti do ideja za daljnja unaprijeđenja i stvaranja novih prilika za široke primjene. |