MPEG-DASH - Dynamic Adaptive Streaming over HTTP ===================================================== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is MPEG-DASH?** MPEG-DASH, or Dynamic Adaptive Streaming over HTTP, is a video streaming protocol that enables smooth delivery of media content over the internet by adapting to the viewer’s network conditions. It works by dividing video into small segments at various quality levels and delivering them over standard HTTP. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why MPEG-DASH is Useful?** * Adapts video quality dynamically based on real-time internet speed. * Minimizes buffering and playback interruptions. * Uses standard HTTP servers, making it easy to implement and scale. * Compatible with multiple devices and platforms without requiring plugins. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works?** * Video is encoded into segments – Each segment is available in multiple bitrates (quality levels). * Client requests an MPD file – The Media Presentation Description lists all available segments and qualities. * Client selects segments – Based on current bandwidth, the client downloads the best-quality segment it can play smoothly. * Playback adapts – The client continuously monitors network conditions and switches quality up or down as needed. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is MPEG-DASH used?** * Video streaming services – Such as YouTube, Netflix, and others. * Live event broadcasting – For sports, concerts, and news. * E-learning platforms – To deliver adaptive video lectures. * Enterprise training – For scalable and efficient video delivery in corporate environments. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI layer does this protocol belong to?** * It defines how video content is requested and delivered using HTTP. * It uses application-level logic to adapt to changing network conditions. * It operates on top of standard web protocols like HTTP and TCP. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`MPEG-DASH Version&RFC Details ` * :ref:`MPEG-DASH Basic Setup on Ubuntu using IPv4 ` * :ref:`MPEG-DASH Basic Setup on Ubuntu using IPv6 ` * :ref:`MPEG-DASH Protocol Packet Details ` * :ref:`MPEG-DASH Usecases ` * :ref:`MPEG-DASH Basic Features ` * :ref:`MPEG-DASH Feature : Adaptive Bitrate Streaming ` * :ref:`MPEG-DASH Feature : Segmented Media Delivery ` * :ref:`MPEG-DASH Feature : MPD File ` * :ref:`MPEG-DASH Feature : Codec Agnostic ` * :ref:`MPEG-DASH Feature : Transport over HTTP ` * :ref:`MPEG-DASH Feature : Multi-Device Support ` * :ref:`MPEG-DASH Feature : DRM Integration ` * :ref:`MPEG-DASH Feature : Live and On-Demand Support ` * :ref:`MPEG-DASH Feature : Multi-Language and Subtitles ` * :ref:`MPEG-DASH Feature : Open Standard ` * :ref:`Reference links ` .. _MPEG-DASH_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _MPEG-DASH_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _MPEG-DASH_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _MPEG-DASH_step5: .. tab-set:: .. tab-item:: MPEG-DASH Version&RFC Details .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_RFC_Details.csv :widths: 10,10,10,30,40 :header-rows: 1 .. _MPEG-DASH_step19: .. tab-set:: .. tab-item:: MPEG-DASH Basic Setup on Ubuntu using IPv4 * Setup .. _MPEG-DASH_step20: .. tab-set:: .. tab-item:: MPEG-DASH Basic Setup on Ubuntu using IPv6 * Setup .. _MPEG-DASH_step6: .. tab-set:: .. tab-item:: MPEG-DASH Protocol Packet Details **MPD File Packet** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Protocol_Packet_1.csv :widths: 10,20,30,10 :header-rows: 1 **Initialization Segment Packet** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Protocol_Packet_2.csv :widths: 10,20,30,10 :header-rows: 1 **Media Segment Packet** **Segment Index Packet** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Protocol_Packet_4.csv :widths: 10,20,30,10 :header-rows: 1 **Adaptation Set Info Packet** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Protocol_Packet_5.csv :widths: 10,20,30,10 :header-rows: 1 **Representation Info Packet** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Protocol_Packet_6.csv :widths: 10,20,30,10 :header-rows: 1 **DRM/Encryption Info Packet** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Protocol_Packet_7.csv :widths: 10,20,30,10 :header-rows: 1 .. _MPEG-DASH_step7: .. tab-set:: .. tab-item:: MPEG-DASH Usecases .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Usecases.csv :widths: 10,20,30 :header-rows: 1 .. _MPEG-DASH_step8: .. tab-set:: .. tab-item:: MPEG-DASH Basic Features .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Features.csv :widths: 10,10,30 :header-rows: 1 .. _MPEG-DASH_step9: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Adaptive Bitrate Streaming **Adaptive Bitrate Streaming - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-1_Adaptive_Bitrate_Streaming_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step10: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Segmented Media Delivery **Segmented Media Delivery - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-2_Segmented_Media_Delivery_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step11: .. tab-set:: .. tab-item:: MPEG-DASH Feature : MPD **MPD - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-3_MPD_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step12: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Codec Agnostic **Codec Agnostic - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-4_Codec_Agnostic_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step13: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Transport over HTTP **Transport over HTTP - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-5_Transport_Over_HTTP_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step14: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Multi-Device Support, **Multi-Device Support, - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-6_Multi-Device_Support_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step15: .. tab-set:: .. tab-item:: MPEG-DASH Feature : DRM Integration **DRM Integration - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-7_DRM_Integration_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step16: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Live and On-Demand Support **Live and On-Demand Support - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-8_Live_and_On-Demand_Support_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step17: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Multi-Language and Subtitles **Multi-Language and Subtitles - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-9_Multi-Language_and_Subtitles_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step18: .. tab-set:: .. tab-item:: MPEG-DASH Feature : Open Standard **Open Standard - Testcases** .. csv-table:: :file: ./MPEG-DASH/MPEG-DASH_Feature-10_Open_Standard_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _MPEG-DASH_step21: .. tab-set:: .. tab-item:: Reference links * Reference links