Streaming/Media Protocols ========================== .. toctree:: :maxdepth: 1 :hidden: :includehidden: DASH DLNA HLS MPEG_DASH RTMP RTP RTSP RTCP Streaming and media protocols enable adaptive streaming, live broadcasts, and multimedia content delivery over IP networks. This section covers protocols for real-time video/audio communication, on-demand streaming, and media control. .. list-table:: :widths: 20 60 20 :header-rows: 1 * - Protocol - Description - Use Case * - DASH - Adaptive bitrate streaming using HTTP. Segments media for client-side quality adjustment. - YouTube, Netflix adaptive streaming * - DLNA - Media-sharing protocol suite for consumer devices in home networks. - Home media streaming * - HLS - Apple’s segmented HTTP streaming protocol, supports live and VOD. - Apple devices (Safari, iOS, Apple TV) * - MPEG-DASH - Standards-based, codec-agnostic adaptive streaming protocol. - OTT platforms, web streaming * - RTMP - Low-latency streaming over TCP, originally developed for Flash. - OBS, Twitch, Facebook Live * - RTP - Real-time transmission of audio/video, often paired with VoIP. - IP telephony, conferencing * - RTSP - Media control protocol (play, pause, etc.) for streaming sessions. - IP cameras, surveillance * - RTCP - RTP’s companion for reporting QoS metrics and synchronization. - Media performance monitoring .. tab-set:: .. tab-item:: DASH (Dynamic Adaptive Streaming over HTTP) **RFC:** ISO/IEC 23009-1 **Main Features:** - Adaptive bitrate streaming over HTTP - Segments media into time-aligned chunks - Client selects best quality based on network speed - Compatible with modern video players and CDNs **Use Cases:** - YouTube, Netflix, Vimeo adaptive video delivery - Streaming under fluctuating bandwidth conditions **Alternative Protocols:** - HLS – Apple’s HTTP streaming format - RTMP – Used for real-time or low-latency streaming .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about DASH:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`DASH Version&RFC Details ` * :ref:`DASH Basic Setup on Ubuntu using IPv4 ` * :ref:`DASH Basic Setup on Ubuntu using IPv6 ` * :ref:`DASH Protocol Packet Details ` * :ref:`DASH Usecases ` * :ref:`DASH Basic Features ` * :ref:`DASH Feature : Adaptive Bitrate Streaming ` * :ref:`DASH Feature : Segment-Based Delivery ` * :ref:`DASH Feature : MPD ` * :ref:`DASH Feature : Codec Agnostic ` * :ref:`DASH Feature : DRM Support ` * :ref:`DASH Feature : Multi-Track Support ` * :ref:`DASH Feature : Live and On-Demand Support ` * :ref:`DASH Feature : HTTP-Based Delivery ` * :ref:`DASH Feature : Low-Latency Extensions ` * :ref:`DASH Feature : Interoperability Profiles ` * :ref:`Reference links ` .. button-link:: ./DASH.html :color: primary :shadow: :expand: Jump to "DASH" .. tab-set:: .. tab-item:: DLNA (Digital Living Network Alliance) **RFC:** No formal RFC (standardized by DLNA.org) **Main Features:** - Uses UPnP AV and HTTP streaming - Enables media sharing between TVs, consoles, phones - Works in local/home networks **Use Cases:** - Home media servers streaming to smart TVs or consoles - Auto-discovery and streaming on LAN **Alternative Protocols:** - Chromecast – Proprietary alternative - SMB or NFS – For file-based media sharing .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about DLNA:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`DLNA Version&RFC Details ` * :ref:`DLNA Basic Setup on Ubuntu using IPv4 ` * :ref:`DLNA Basic Setup on Ubuntu using IPv6 ` * :ref:`DLNA Protocol Packet Details ` * :ref:`DLNA Usecases ` * :ref:`DLNA Basic Features ` * :ref:`DLNA Feature : Interoperability ` * :ref:`DLNA Feature : Media Sharing ` * :ref:`DLNA Feature : Device Roles ` * :ref:`DLNA Feature : Auto Discovery ` * :ref:`DLNA Feature : Streaming Support ` * :ref:`DLNA Feature : Format Compatibility ` * :ref:`DLNA Feature : Remote Control ` * :ref:`DLNA Feature : Content Protection ` * :ref:`DLNA Feature : Network Agnostic ` * :ref:`DLNA Feature : Low Configuration ` * :ref:`Reference links ` .. button-link:: ./DLNA.html :color: primary :shadow: :expand: Jump to "DLNA" .. tab-set:: .. tab-item:: HLS (HTTP Live Streaming) **RFC:** RFC 8216 **Main Features:** - Developed by Apple for segmented HTTP streaming - Supports live and on-demand content - Uses M3U8 playlists and media segments (.ts or .m4s) **Use Cases:** - Streaming on Safari, iOS, Apple TV - Live event broadcasts **Alternative Protocols:** - DASH – Platform-agnostic alternative - RTMP – Real-time streaming workflows .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about HLS:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`HLS Version&RFC Details ` * :ref:`HLS Basic Setup on Ubuntu using IPv4 ` * :ref:`HLS Basic Setup on Ubuntu using IPv6 ` * :ref:`HLS Protocol Packet Details ` * :ref:`HLS Usecases ` * :ref:`HLS Basic Features ` * :ref:`HLS Feature : Adaptive Bitrate Streaming ` * :ref:`HLS Feature : Segmented Media Delivery ` * :ref:`HLS Feature : Playlist Files(M3U8) ` * :ref:`HLS Feature : HTTP-Based Delivery ` * :ref:`HLS Feature : Cross Platform Support ` * :ref:`HLS Feature : Encryption Support ` * :ref:`HLS Feature : Live On-Demand Support ` * :ref:`HLS Feature : Trick Play Support ` * :ref:`HLS Feature : Closed Captions&Subtitles ` * :ref:`HLS Feature : Ad Insertion ` * :ref:`HLS Feature : Ad Low Latency Mode ` * :ref:`HLS Feature : Content Steering ` * :ref:`Reference links ` .. button-link:: ./HLS.html :color: primary :shadow: :expand: Jump to "HLS" .. tab-set:: .. tab-item:: MPEG-DASH **RFC:** ISO/IEC 23009-1 **Main Features:** - International standard for adaptive bitrate streaming - Codec-agnostic (supports H.264, VP9, etc.) - Works across many platforms and devices **Use Cases:** - Cross-platform video delivery - OTT services and HTML5 video players **Alternative Protocols:** - HLS – Apple ecosystem - RTMP – Used for live broadcasting .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about MPEG-DASH:** * :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 ` .. button-link:: ./MPEG_DASH.html :color: primary :shadow: :expand: Jump to "MPEG-DASH" .. tab-set:: .. tab-item:: RTMP (Real-Time Messaging Protocol) **RFC:** Proprietary (Adobe) **Main Features:** - Low-latency, real-time media streaming over TCP - Supports video, audio, and metadata - Used with Flash and live stream encoders **Use Cases:** - OBS to YouTube or Twitch live streaming - Facebook Live via RTMP ingest **Alternative Protocols:** - SRT – Secure Reliable Transport for modern low-latency streaming - HLS – For segmented HTTP delivery .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about RTMP:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`RTMP Version&RFC Details ` * :ref:`RTMP Basic Setup on Ubuntu using IPv4 ` * :ref:`RTMP Basic Setup on Ubuntu using IPv6 ` * :ref:`RTMP Protocol Packet Details ` * :ref:`RTMP Usecases ` * :ref:`RTMP Basic Features ` * :ref:`RTMP Feature : Low Latency ` * :ref:`RTMP Feature : Persistent TCP Connection ` * :ref:`RTMP Feature : Multiplexing ` * :ref:`RTMP Feature : Chunking Mechanism ` * :ref:`RTMP Feature : Stream Control Messages ` * :ref:`RTMP Feature : Support for Live and On-Demand Streaming ` * :ref:`RTMP Feature : Flexible Media Types ` * :ref:`RTMP Feature : Adaptive Bitrate ` * :ref:`RTMP Feature : Encryption Support ` * :ref:`RTMP Feature : Metadata Transmission ` * :ref:`RTMP Feature : Command Messaging ` * :ref:`RTMP Feature : Cross-Platform Compatibility ` * :ref:`RTMP Feature : Firewall Traversal ` * :ref:`RTMP Feature : Stream Publishing and Playback ` * :ref:`RTMP Feature : Extensibility ` * :ref:`Reference links ` .. button-link:: ./RTMP.html :color: primary :shadow: :expand: Jump to "RTMP" .. tab-set:: .. tab-item:: RTP (Real-Time Transport Protocol) **RFC:** RFC 3550 **Main Features:** - Transports real-time audio/video over IP - Used with VoIP, video conferencing - Works with RTCP for monitoring **Use Cases:** - WebRTC and SIP-based communication - IP phones, Zoom, Teams, etc. **Alternative Protocols:** - SRTP – Secure version of RTP - RTMP – For media broadcasting .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about RTP:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`RTP Version&RFC Details ` * :ref:`RTP Basic Setup on Ubuntu using IPv4 ` * :ref:`RTP Basic Setup on Ubuntu using IPv6 ` * :ref:`RTP Protocol Packet Details ` * :ref:`RTP Usecases ` * :ref:`RTP Basic Features ` * :ref:`RTP Feature : Real-Time Delivery ` * :ref:`RTP Feature : Timestamping ` * :ref:`RTP Feature : Sequence Numbering ` * :ref:`RTP Feature : Payload Type Identification ` * :ref:`RTP Feature : Source Identification ` * :ref:`RTP Feature : Contributing Source list ` * :ref:`RTP Feature : Header Extensions ` * :ref:`RTP Feature : Support for Multicast nad Unicast ` * :ref:`RTP Feature : Works with RTCP ` * :ref:`RTP Feature : Codec Agnostic ` * :ref:`RTP Feature : Transport Flexibility ` * :ref:`RTP Feature : Extensibility ` * :ref:`RTP Feature : Interoperability ` * :ref:`RTP Feature : Security via SRTP ` * :ref:`RTP Feature : Jitter Compensation ` * :ref:`Reference links ` .. button-link:: ./RTP.html :color: primary :shadow: :expand: Jump to "RTP" .. tab-set:: .. tab-item:: RTSP (Real-Time Streaming Protocol) **RFC:** RFC 2326 **Main Features:** - Controls streaming sessions (play, pause, etc.) - Works with RTP for media transport - Uses TCP or UDP for control signals **Use Cases:** - IP cameras, surveillance streaming - Media servers with client-side control **Alternative Protocols:** - HLS / DASH – HTTP-based streaming alternatives - WebRTC – Browser-based real-time comms .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about RTSP:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`RTSP Version&RFC Details ` * :ref:`RTSP Basic Setup on Ubuntu using IPv4 ` * :ref:`RTSP Basic Setup on Ubuntu using IPv6 ` * :ref:`RTSP Protocol Packet Details ` * :ref:`RTSP Usecases ` * :ref:`RTSP Basic Features ` * :ref:`RTSP Feature : Session Control ` * :ref:`RTSP Feature : Out-of-Band Transport ` * :ref:`RTSP Feature : Bi-Directional Communication ` * :ref:`RTSP Feature : Support for Live and On-Demand Streaming ` * :ref:`RTSP Feature : Media Negotiation ` * :ref:`RTSP Feature : Low Latency ` * :ref:`RTSP Feature : Multimedia Synchronization ` * :ref:`RTSP Feature : Stateless or Stateful Operation ` * :ref:`RTSP Feature : Support for SDP ` * :ref:`RTSP Feature : Scalability ` * :ref:`RTSP Feature : Interoperability ` * :ref:`RTSP Feature : Authentication and Access Control ` * :ref:`RTSP Feature : Pipelining Support ` * :ref:`RTSP Feature : Persistent Connections ` * :ref:`RTSP Feature : Extensibility ` * :ref:`Reference links ` .. button-link:: ./RTSP.html :color: primary :shadow: :expand: Jump to "RTSP" .. tab-set:: .. tab-item:: RTCP (RTP Control Protocol) **RFC:** RFC 3550 **Main Features:** - Companion protocol to RTP for reporting and control - Reports jitter, packet loss, and latency - Enables stream synchronization **Use Cases:** - VoIP and video quality monitoring - Media synchronization in conferencing **Alternative Protocols:** - SNMP – For broader network monitoring - SIP – For session setup and signaling .. panels:: :container: container pb-4 :column: col-lg-12 p-2 **Let us learn more about RTCP:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`RTCP Version&RFC Details ` * :ref:`RTCP Basic Setup on Ubuntu using IPv4 ` * :ref:`RTCP Basic Setup on Ubuntu using IPv6 ` * :ref:`RTCP Protocol Packet Details ` * :ref:`RTCP Usecases ` * :ref:`RTCP Basic Features ` * :ref:`RTCP Feature : Quality Feedback ` * :ref:`RTCP Feature : Synchronization Support ` * :ref:`RTCP Feature : Sender and Receiver Reports ` * :ref:`RTCP Feature : Source Description ` * :ref:`RTCP Feature : Session Control ` * :ref:`RTCP Feature : Scalability ` * :ref:`RTCP Feature : Low Overhead ` * :ref:`RTCP Feature : Congestion Control ` * :ref:`RTCP Feature : Extensibility ` * :ref:`RTCP Feature : Security Support ` * :ref:`RTCP Feature : Interoperability ` * :ref:`RTCP Feature : Multicast and Unicast Support ` * :ref:`RTCP Feature : Periodic Reporting ` * :ref:`RTCP Feature : Codec and Media Adaptation ` * :ref:`RTCP Feature : Application-Level Integration ` * :ref:`Reference links ` .. button-link:: ./RTCP.html :color: primary :shadow: :expand: Jump to "RTCP"