For those of you who do not know much about streaming protocols, I want to clarify a few things. Let’s start with the difference between codec, container and streaming protocol:
- Codec (compressor / decompressor): a codec makes video smaller by compressing it. Examples of codecs: MPEG2, JPEG2000 and H.264 in the case of Matrox Maevex.
- Container (wrapper): binds together video and audio information, along with other information (metadata, subtitles etc). Examples of containers: mp4, mpeg2-ts (transport stream).
- Streaming protocol: a standardized method for delivering multimedia over the internet. Examples of streaming protocol: RTSP, HLS and SRT.
Different streaming protocol have different properties like:
- Designed to work over a LAN or Internet
- Designed to work with unicast and / or multicast
- Push or pull: a push protocol (like RTMP) pushes the stream from encoder to the decoder. In the case of a pull protocol (like RTSP and HLS), the decoder takes the initiative to request a stream.
- Containing a single video stream or multiple streams of different quality (resolution / compression). E.g. HLS allows the decoder to switch seamlessly between streams depending on the connection quality.
I have tested the following simulatenously operating protocols / resolutions / bitrates on the Maevex – results in Start Encoding section:
MPEG-2 Transport stream: has been around for quite some time and is mainly used by broacasters to bring television to the home (satellite, terrestrial, IPTV).
Secure Reliable Transport (SRT): SRT is an open source video transport protocol developed by Haivision. It has some nice features and is gaining momentum: content can be encrypted, it can traverse firewalls and works well with unpredictable connections like the internet.
Real Time Streaming Protocol (RTSP): a pull streaming protocol, the decoder asks the encoder for a stream. Usually used in a predictable environment like a Local Area Network (LAN).
HTTP Live Streaming (HLS): Streaming protocol developed by Apple and widely adopted by other companies incl. Google and Microsoft. HLS can have different versions of the same stream, the client can seamlessly switch between them depending on the current state of the connection.
Real-Time Messaging Protocol (RTMP): reliable and (relatively) low latency protocol developed by Adobe. It’s often used to send streams to a media server for further distribution. In our test it is used to send the Maevex stream to YouTube.
In the next Start Encoding section, we will fire up all these protocols simultaneously, including two recordings!
5. Start Encoding