Transcoding is extremely important to reach a variety of users
e.g. you use an RTMP encoder at 1080P using the H.264 codec. When trying to stream this to viewers, those without
sufficient bandwidth will be unable to see the stream (will be buffering constantly)
With transcoding you simultaneously create a set of time-aligned video streams, each with a different bit-rate and
frame sizes
This can then be packaged into different adaptive streaming formats (e.g. HLS) for playback on any client
Adaptive bitrate streaming (ABR) is used to provide the best video quality and experience to viewers no matter
the connection, software, or device
Streams adapt to fit the screen size and internet speed of all who are watching
A transcoder is used to create multiple streams at different bitrates and resolutions (uses transrating and transizing)
The media server then sends the highest quality stream for the user’s bandwidth
The transcoder breaks each stream into chunks 2-10 seconds in length, allowing the player to shift dynamically between
the streams depending on bandwidth
Since this limits the bandwidth required to deliver streams it reduces distribution cost
Before ABR RTMP was used to deliver streams. You can configure RTMP streams for ABR but it is hard
First, the client downloads a manifest file describing available segments of the stream and their corresponding birates
An ABR algorithm on the client builds up to and then stabilizes at the optimal bitrate
When the bitrate is selected, the client downloads the segments of that bitrate in the 2-10 second chunks, switching
up if the available resources change
Once a video is encoded, it is stored in a wrapper file format with associated codec (used to encode and to be used
to decode, audio codec, closed captions, and associated metadata)
e.g. .mp4, .mov, .wmv
Not all playback platforms accept all containers and codecs, this is why multi-format encoding is crucial