Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Razlike

Slijede razlike između dviju inačica stranice.

Poveznica na ovu usporedbu

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 konvencijalni internetski poslužitelj kako bi distribuirao audiovizualni sadržaj te zahtjeva specifičnu programsku podršku i arhitekturu kako bi omogućio ispravan prijenos u realnom vremenu u skladu sa zadanim standardom. +HTTP Live Streaming koristi konvencionalni internetski poslužitelj kako bi distribuirao audiovizualni sadržaj te zahtjeva specifičnu programsku podršku i arhitekturu kako bi omogućio ispravan prijenos u realnom vremenu u skladu sa zadanim standardom. 
  
 Arhitektura servisa u kontekstu HLS protokola uključuje poslužitelja, distributera i klijenta (**Slika 1**). Arhitektura servisa u kontekstu HLS protokola uključuje poslužitelja, distributera i klijenta (**Slika 1**).
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 (//transport stream//) fragemente, a pohranjena je s .m3u8 ekstenzijom. **Segmenter** dijeli tok podataka u fragmente jednake duljine i također kreira indeksnu datoteku koja sadrži reference na odgovarajuće .ts (//transport stream//) fragemente, a pohranjena je s .m3u8 ekstenzijom.
  
-**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 potrebne za HLS streaming koji uključuju .m3u8 playlistu i segmente datoteke ekstenzije .ts.
  
-**Klijent** šalje zahtjev te preuzima sve datoteke i resurse te ih sastavlja tako da su korisniku prezentirane kako kontinuirani video. Klijentski program prvo preuzima indeksnu datoteku putem zadanog URL-a, a nakon toga nekoliko dostupnih //transport stream// datoteka čiji slijed program za playback pretvara u kontinuirani video koji će se u konačnici prikazati korisniku.+**Klijent** šalje zahtjeve te preuzima sve datoteke i resurse te ih sastavlja tako da su korisniku prezentirani kao kontinuirani video. Klijentski program prvo preuzima indeksnu datoteku putem zadanog URL-a, a nakon toga nekoliko dostupnih //transport stream// datoteka čiji slijed program za playback pretvara u kontinuirani video koji će se u konačnici prikazati korisniku.
  
 {{:racfor_wiki:hls_streaming_architecture.png?600|}} {{:racfor_wiki:hls_streaming_architecture.png?600|}}
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 "ts" (**Slika 2**). Vidljivo je da postoji jedan odgovor u čijem je tijelu sadržaj tipa application/x-mpegurl i koji ima kod odgovora 206 (Partial Content), a taj odgovor predstavlja indeksnu datoteku .ts fragmenata trenutno dostupnih unutar streama koji kontinuirano pristiže. Nakon odgovora koji sadrži tu datoteku, vide se naizmjenično poruke GET zahtjeva koje dohvaćaju određene datoteke s ekstenzijom .ts te odgovori u čijem je tijelu sadržaj tipa video/mp2t (MPEG transport stream) za svaki od tih fragmenata.+Kako bi se filtrirao HLS promet, u Wireshark programskom alatu potrebno je filtrirati sve HTTP poruke koje u sebi sadrže "ts" (**Slika 2**). Vidljivo je da postoji jedan odgovor u čijem je tijelu sadržaj tipa application/x-mpegurl i koji ima kod odgovora 206 (Partial Content), a taj odgovor predstavlja indeksnu datoteku .ts fragmenata trenutno dostupnih unutar streama koji kontinuirano pristiže. Nakon odgovora koji sadrži tu datoteku, vide se naizmjenično poruke GET zahtjeva koji dohvaćaju određene datoteke s ekstenzijom .ts te odgovori u čijem je tijelu sadržaj tipa video/mp2t (MPEG transport stream) za svaki od tih fragmenata.
  
 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, zbog čega se HLS dodatno ističe među drugim protokolima. Na poslužiteljskoj strani, kreatori sadržaja često imaju mogućnost enkodirati isti live stream u više različitih postavki kvalitete, što uključuje rezoluciju i bitrate video streama. Rezultat je da gledatelji mogu dinamički zahtijevati najbolju moguću opciju kvalitete s obzirom na njihovu mrežnu propusnost i performanse uređaja, odnosno playera u svakom trenutku. Na razini svakog fragmenta videa, kvaliteta se može mijenjati kako bi bila optimizirana za mogućnosti pojedinog korisnika. Primjeice, ukoliko kreator sadržaja objavljuje video visoke definicije kojeg gleda korisnik mobilnog uređaja te korisnik iz područja dobre mrežne pokrivenosti i velike propusnosti prijeđe u područje u kojem kvaliteta usluge značajno degradira, video player će detektirati pad mrežne propusnosti i umjesto fragmenata visoke definicije zahtijevati fragmente niže kvalitete kako bi se kontinuitet videa moga održati.+Druga ključna prednost je prilagodljivost kvalitete video streama ovisno o mrežnim okolnostima, zbog čega se HLS dodatno ističe među drugim protokolima. Na poslužiteljskoj strani, kreatori sadržaja često imaju mogućnost enkodirati isti live stream u više različitih postavki kvalitete, što uključuje rezoluciju i bitrate video streama. Rezultat je da gledatelji mogu dinamički zahtijevati najbolju moguću opciju kvalitete s obzirom na njihovu mrežnu propusnost i performanse uređaja, odnosno playera u svakom trenutku. Na razini svakog fragmenta videa, kvaliteta se može mijenjati kako bi bila optimizirana za mogućnosti pojedinog korisnika. Primjerice, ukoliko kreator sadržaja objavljuje video visoke definicije kojeg gleda korisnik mobilnog uređaja te korisnik iz područja dobre mrežne pokrivenosti i velike propusnosti prijeđe u područje u kojem kvaliteta usluge značajno degradira, video player će detektirati pad mrežne propusnosti i umjesto fragmenata visoke definicije zahtijevati fragmente niže kvalitete kako bi se kontinuitet videa mogao održati.
  
-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 fragmenataodnosno 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, upravljanja kamerama, dronovima ili drugim uređajima u realnom vremenu te primjena u kojima je malo kašnjenje presudno za kvalitetno korisnično iskustvo, HLS protokol je neprihvatljiv, čak i u svojim novijim verzijama koje omogućuju nešto manje kašnjenje poput Apple Low-Latency HLS protokola. Za takve primjene primjereniji je protokol kao što je WebRTC (Web Real-Time Communications).+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, upravljanja kamerama, dronovima ili drugim uređajima u realnom vremenu te primjena u kojima je malo kašnjenje presudno za kvalitetno korisničko iskustvo, HLS protokol je neprihvatljiv, čak i u svojim novijim verzijama koje omogućuju nešto manje kašnjenje poput Apple Low-Latency HLS protokola. Za takve primjene primjereniji je protokol kao što je WebRTC (Web Real-Time Communications).
  
 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 korisnika, pogotovo u slučajevima kad je kvaliteta ključni čimbenik, poput prijenosa javnih smotri i sportskih događaja. +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 gledatelja, pogotovo u slučajevima kad je kvaliteta ključni čimbenik, poput prijenosa javnih smotri i sportskih događaja. 
  
-Dodatno, rastom potpore Apple Low-Latency HLS protokola, kašnjenje manje od dvije sekunde postaje sve više uobičajeno, čine uporaba HLS protokola postaje moguća i za interaktivni streaming, online kockanjee-gaming i mnoge ostale primjene u kojima je takvo kašnjenje prihvatljivo. +Dodatno, rastom potpore Apple Low-Latency HLS protokola, kašnjenje manje od dvije sekunde postaje sve više uobičajeno, čine uporaba HLS protokola postaje moguća i za interaktivni streaming, online live klađenje, gaming i mnoge ostale primjene u kojima je takvo kašnjenje prihvatljivo. 
  
-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 video na Flash playere putem RTMP protokola prijeđu na HLS protokol.+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 i slabo prilagodljive mehanizme prijenosa videa na Flash playere putem RTMP protokola prijeđu na HLS protokol.
  
 {{:racfor_wiki:popularnost_hls_protokola.jpg?600|}} {{:racfor_wiki:popularnost_hls_protokola.jpg?600|}}
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.  
racfor_wiki/hls_protokol.1610810426.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0