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”.
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
- To configure ABR in DEVOS, create and
start the streams and note the bit rates
and resolutions in use.
- 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
- Save this file with a unique name such as
“abr.m3u8”.
- Using the credentials from your personal
DEVOS profile page, access your FTP
account and place the file in the
/content folder.
- Your ABR stream address is now:
http(s)://[yourserver]/misc/[ftp account]/abr.m3u8
- 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.