Adaptive Bitrate (ABR)

Adaptive Bitrate (ABR)

There is commonly ample bandwidth when streaming live video in a local area network (LAN) and little need to accommodate those with poor network access. But when some viewers may be accessing your live stream over the public Internet from home and from cell phones, the advantages of Adaptive Bit Rate (ABR) streaming become more important. In large, complex, and extended LANs, ABR may also prove useful to ensure optimal experiences.

How It Works

ABR simply allows a player to automatically select which of multiple live streams are best for the current network conditions. For example, you might have a live video that is encoded at both 250 Kbps and at 3 Mbps. The 250 Kbps stream might have a resolution of 640 x 360 while the 3 Mbps stream might be 1920 x 1080. Such a configuration is easy to do with encoders such as Discover Video's Scorpion encoder because it has both a primary and a secondary encoder. In this case, the encoder is sending about 3.250 Mbps to the streaming server, and we will assume the stream name is “stream250” and “stream3000”.

Adaptive streaming overview
Now that these two streams exist, we simply need to create a new file that directs a player to use them. To do this, we make a new HLS manifest file where the content of the file tells the player about the available streams, rates, and resolutions. When the player encounters this file, it typically tries the lower bit rate and resolution first. This is why you may see the lower rate “fuzzy” video initially.

If the player sees no loss of data, it will “upshift” to the next higher rate and resolution. If there is trouble with the higher rate, it may “downshift” to the lower rate and resolution.

While it is possible to send one high-speed stream to the stream server and have the server produce multiple rates, it is less resource-intensive for each encoder to do it.

Encoders That Support ABR

Hardware encoders such as Scorpion and Spider and software encoders such as Streamsie, OBS, and StreamEngine all support primary and secondary streams at different rates and resolutions.

Set Up ABR

  1. To configure ABR in DEVOS, create and start the streams and note the bit rates and resolutions in use.
  2. Next create a new manifest file (.m3u8) and enter the full HLS rate, resolution, and stream addresses such as the following:
    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-STREAM-INF:BANDWIDTH=250000,RESOLUTION=640x360
    http://server.com/autohls/stream250/stream250.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=3000000,RESOLUTION=1280x720
    http://server.com/autohls/stream3000/stream3000.m3u8
  3. Save this file with a unique name such as “abr.m3u8”.
  4. Using the credentials from your personal DEVOS profile page, access your FTP account and place the file in the /content folder.
  5. Your ABR stream address is now: http(s)://[yourserver]/misc/[ftp account]/abr.m3u8
  6. Finally, use this new stream address to create a new live stream and paste this into your HLS address field.
Done! You and your viewers may now view your ABR stream.