HLS vs. DASH: Cum funcționează de fapt protocoalele de streaming
Înainte de streaming, vizionarea unui videoclip online presupunea descărcarea întregului fișier înainte de redare. Un videoclip de 500 MB trebuia să ajungă integral pe dispozitiv, chiar dacă vă interesau doar primele 30 de secunde. Protocoalele de streaming rezolvă această problemă: împart videoclipul în segmente mici, care se redau în timp ce restul se descarcă.
Segmentare: elementul de bază al streamingului
Să luăm HLS (HTTP Live Streaming, creat de Apple), cel mai răspândit protocol: serverul împarte videoclipul în numeroase fișiere mici, numite segmente, de obicei de 2–10 secunde, în format MPEG-TS sau fMP4. Generează și un fișier de listă de redare (.m3u8), care indică ordinea și adresele segmentelor. Playerul preia întâi lista, apoi descarcă segmentele pe măsură ce sunt necesare: termină unul, îl preia pe următorul, aproape fără așteptare.
Rata de biți adaptivă: de ce redarea nu se blochează într-o rețea slabă
HLS și DASH (Dynamic Adaptive Streaming over HTTP, promovat de Microsoft și alții) pregătesc mai multe seturi de segmente ale aceluiași videoclip, la rezoluții și rate de biți diferite, de exemplu 1080p, 720p și 480p, indicate într-o listă principală. Playerul monitorizează în timp real viteza de descărcare și cantitatea de date din buffer: crește rata de biți când conexiunea este bună și o reduce când aceasta se degradează, menținând redarea continuă. Acesta este streamingul cu rată de biți adaptivă (ABR), motivul pentru care imaginea devine automat mai neclară când mergeți cu metroul.
De ce descărcarea unui link m3u8 eșuează atât de des
Descărcarea directă a unui URL .m3u8 oferă doar câțiva KB de text: lista de redare, nu videoclipul. Pentru a salva videoclipul, un instrument trebuie să analizeze lista, să descarce fiecare segment și să le îmbine în ordine. De aceea, multe programe de descărcare nu acceptă videoclipuri HLS sau cer un pas separat de îmbinare a segmentelor. TakeVid include detectarea segmentelor și îmbinarea automată, astfel încât rezultatul este un fișier complet, gata de redat.
- HLS: creat de Apple, folosește liste .m3u8, este acceptat nativ de iOS/Safari și gestionează atât transmisiile în direct, cât și conținutul la cerere
- DASH: standard deschis cu manifeste .mpd, folosit pe scară largă de YouTube, Netflix și alții
- Ambele folosesc HTTP obișnuit, funcționează bine cu CDN și domină streamingul actual