Search code examples
videovideo-streamingtransport-stream

Elementary Streams vs Transport Streams in Video Streaming


Can any one tell me what is the advantage of using Elementary video streams(Demuxed Stream) over transport streams(MUXed stream) in internet video streaming? Thanks in advance.


Solution

  • Elementary streams and Transport streams are terms that originated in the broadcast world - the transport stream allows multiple packetised elementary streams to be carried in a broadcast signal and all provided error correction etc functions. So it is not a case one one versus the other, they are both parts of the overall video deliver technology.

    Most internet video streaming, certainly for commercial and video hosting sites, actually uses HLS or DASH streaming now.

    These are streaming protocols which deliver the media in fragments or chunks and are referred to generally as Adjustable Bit Rate streaming protocols (ABR).

    ABR allows the client device or player download the video in chunks, e.g 10 second chunks, but the server provides each chunk in multiple different bit rate versions. The player can select the next chunk from the bit rate most appropriate to the current network conditions.

    So the elementary streams are 'wrapped' in a container, usually an MP4 like container, and then the container is transported by or wrapped in the ABR streaming protocol.

    All this seems like a lot of extra overhead, but some of the advantages are:

    • compatibility - most devices or HTML5 players will support HLS or DASH streams
    • The video containers allow extra data, metadata, be included with the media and can include multiple audio and video tracks
    • fast start up - the video can start to play with a lower bandwidth and ramp up to higher over time
    • avoids buffering delays - if the network is bad the chunks will be requested from a lower quality level until it improves
    • related to the above, allows the best quality possible of the given device and network conditions.

    It will depend on the application, but for many the first point is probably the most important - most clients devices and players do not support elementary stream playback out of the box.