Protokół MPEG-Dash

By Sebastian Ceglarz4 grudnia, 2020
MPEG DASH protocol

This post is also available in: English

W czasie pandemii zacząłeś częściej korzystać z YouTube, Netflixa czy HBO? Nie Ty jeden! Niemniej, skoro spędzasz sporą ilość czasu, oglądając wideo w sieci, poznaj MPEG-DASH – jeden z najpopularniejszych protokołów przesyłających materiały wideo.

Czym jest protokół MPEG-DASH i kto go wykorzystuje?

Protokół MPEG-DASH to protokół adaptacyjny oparty na technologii HTTP. Jest on wykorzystywany do strumieniowego przesyłania multimediów przez Internet oraz powszechnie stosowany przez platformy VOD. Z protokołu MPEG-DASH korzysta się również podczas transmisji wideo na żywo.

Z MPEG-DASH korzystają m.in.: Netflix, YouTube, HBO, Vimeo czy inne serwisy umożliwiające oglądanie wideo w Internecie.

Jak to się zaczęło? MPEG (Moving Pictures Expert Group) opracował technologię MPEG-DASH jako alternatywę (i konkurencję) dla protokołu HLS (Apple HTTP Live Streaming).

Proces przesyłania strumieniowego przy wykorzystaniu MPEG-DASH realizowany jest w 3 krokach:

  • Kodowanie i segmentacja: podział wideo na segmenty, tworzenie pliku indeksu i kodowanie.
  • Dostarczanie zakodowanego wideo użytkownikowi.
  • Dekodowanie i odtwarzanie: odtwarzacz automatycznie dostosowuje jakość wideo do warunków sieciowych.

MPEG-DASH działa podobnie do HLS. Dzieli wideo na mniejsze fragmenty i koduje je, umożliwiając późniejsze dekodowanie i odtwarzanie materiału na różnych poziomach jakości uzależnionych przede wszystkim od parametrów sieci. Dzięki temu wideo może być strumieniowane i konsumowane niezależnie od urządzenia końcowego czy szybkości transmisji sygnału. Jednocześnie użytkownik może dowolnie zmieniać jakość oglądanego materiału w zależności od własnych preferencji.

Więcej o podobieństwach i różnicach między MPEG-DASH i HLS napiszemy w dalszej części tego artykułu.

Jak działa adaptacyjny bitrate (Adaptive Bitrate Streaming)?

Na pewno wielokrotnie zauważyłeś, że podczas oglądania danego materiału wideo obraz nagle zmienił się z rozpikselowanego na ostry (lub odwrotnie). Dokładnie tym jest adaptacyjne przesyłanie strumieniowe (ABR).

ABR to nic innego, jak metoda strumieniowania multimediów, która umożliwia dynamiczne (adaptacyjne) dostosowywanie jakości wideo (bitrate) do przepustowości łącza sieciowego, pozwalając odbiorcy przełączać się między różnymi jakościami kodowanego wideo.

Technologia ABR wykorzystywana jest do pobierania wideo z jednego źródła i transkodowania materiału źródłowego na kilkanaście różnych wersji jakościowych. Wersje te różnią się rozmiarem, dzięki czemu mogą być dostosowane do odtwarzania bez bufora na różnych urządzeniach oraz przy transmisji wykorzystującej łącza internetowe o zróżnicowanej szybkości.

Dzięki temu widzowie oglądający materiał wideo na ekranie telewizora i dysponujący szybkim łączem internetowym mogą konsumować treść o dużej liczbie klatek na sekundę oraz w wysokiej rozdzielczości. Z kolei użytkownicy smartfonów o słabym łączu mogą oglądać ten sam film w o wiele gorszej jakości.

Wideo dostarczane jest do odbiorcy nie w formie ciągłego strumienia, ale jako seria materiału poszatkowana na segmenty o długości do 10 sekund. Dzięki temu technologia ABR może automatycznie dostosowywać się do szybkości transmisji i opcji rozdzielczości wybranej przez widza. Gdy spada prędkość łącza, jednocześnie ABR zmniejsza jakość materiału. Gdy tempo łącza internetowego przyśpieszy lub gdy widz ustawi wyższą rozdzielczość, ABR zapewni lepszą jakość wideo.

Przy wykorzystaniu technologii adaptacyjnego przesyłania strumieniowego protokół MPEG-DASH zapewnia relatywnie stabilną jakość wideo. Niemniej, okupione jest to początkowym opóźnieniem wynikającym z konieczności pobrania poszczególnych segmentów wideo.

Różnice między HLS i DASH

Pod względem technicznym HLS oraz DASH to podobne technologie. Główna różnica polega na kwestii własności protokołu oraz sposobie dystrybucji jego licencji. Protokół HLS posiadany i wykorzystywany jest przez Apple. Z kolei protokół DASH oparty jest na licencji typu open source.

Zatem protokół HLS wykorzystywany jest przez Apple, jednak na urządzeniach Apple możesz również odbierać sygnały transmitowane w protokole DASH.

O ile standard HLS jasno precyzuje użycie konkretnych kodeków wideo (H.264 i H.265) i audio, o tyle protokół DASH działa niezależnie od wybranych kodeków. Z tego względu jakość materiału przesyłanego przez protokół DASH zależy od użytych kodeków.

Warto również wspomnieć o formacie kontenera. Protokół DASH korzysta z formatu MP4, przy czym HLS stosuje format MPEG-2 lub MPEG-TS. Co więcej, fragmenty wideo w HLS dzielone są na segmenty o długości 2-4 sekund, podczas gdy MPEG-DASH tworzy segmenty o długości 6-10 sekund.

Opóźnienia

Opóźnienia zarówno w MPEG-DASH, jak i w HLS nie są małe i wynoszą ok. 4-5 sekund. Opóźnienie zależy od szybkości strumieniowania. Obecnie w celu ograniczenia opóźnienia DASH zaczął wykorzystywać technologię CMAF, a HLS zmodyfikował swój protokół, implementując rozszerzenie HLS o niskiej latencji.

Wsparcie dla MPEG-Dash w Storm

Storm Streaming server wspiera zarówno klasyczny protokół MPEG-DASH, jak i HLS, LL-HLS i CMAF, dzięki czemu w zależności od potrzeb i wyborów technologicznych jest w stanie podołać każdemu projektowi video-streamingowemu. Zapraszamy również do zapoznania się z naszym autorskim protokołem Storm, który oferuje zdecydowany skok jakościowy redukując opóźnienia do poziomu 1 sekundy.


Tags: ABR, Apple HLS, CMAF, HBO, MPEG, MPEG Dash, Netflix, Vimeo, YouTube