Choosing the Segment Length for Adaptive Bitrate Streaming
-
Upload
bitmovin -
Category
Technology
-
view
1.517 -
download
2
Transcript of Choosing the Segment Length for Adaptive Bitrate Streaming
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 1
bitmovin GmbHLakeside B01 | 9020 Klagenfurt | Austria | Europec/o 1200 Pacific Avenue | Santa Cruz | CA 95060 | USA
T +43 463 203014E [email protected]
www.bitmovin.net
@bitmovin | facebook.com/bitmovin | github.com/bitmovin | crunchbase.com/company/bitmovin
Choosing the Segment Length for Adaptive Bitrate Streaming
Fun with Segments!
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 2
AGENDA
» Motivation» MPEG-DASH Dataset› Bitrates & Resolutions› Content Structure
» Choosing the Segment Length for ABR› Encoding Efficiency & Quality› Muxing Overhead› Streaming Performance
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 3
MOTIVATION & WHY ARE WE DOING THAT
» Different recommendations available on the internet› Smooth: 2 Seconds› HLS: 10 Seconds› MPEG-DASH: Fixed and variable segment lengths with no
recommendation from MPEG or DASH-IF› and many other recommendations on blogs, etc.
» No real explanation» No experiments and evaluations» What should we do?
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 4
MPEG-DASH DATASET
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 5
ENCODING & MUXING SETTINGS
» Dataset with MPEG-DASH Content› Movies in high quality› Free available for MPEG-DASH experiments› PSNR values per frame
Name Source Quality Length Content Type
Big Buck Bunny 1080p YUV 09:46 Animation
Elephant Dream 1080p YUV 10:54 Animation
RedBull Playstreets 1080p, 6Mbps H264/AVC
01:37:28 Sport
The Swiss Account 1080p, 6Mbps H264/AVC
57:34 Sport
Valkaama 1080p, 6Mbps H264/AVC
01:33:05 Movie
Of Forest and Men SD 10:53 Movie
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 6
BITRATES AND RESOLUTIONS
# Animation Sport Movie1 50 kbit/s, 320x240 100 kbit/s, 320x240 50 kbit/s, 320x2402 100 kbit/s, 320x240 150 kbit/s, 320x240 100 kbit/s, 320x2403 150 kbit/s, 320x240 200 kbit/s, 480x360 150 kbit/s, 320x2404 200 kbit/s, 480x360 250 kbit/s, 480x360 200 kbit/s, 480x3605 250 kbit/s, 480x360 300 kbit/s, 480x360 250 kbit/s, 480x3606 300 kbit/s, 480x360 400 kbit/s, 480x360 300 kbit/s, 480x3607 400 kbit/s, 480x360 500 kbit/s, 854x480 400 kbit/s, 480x3608 500 kbit/s, 480x360 700 kbit/s, 854x480 500 kbit/s, 854x4809 600 kbit/s, 854x480 900 kbit/s, 854x480 600 kbit/s, 854x480
10 700 kbit/s, 854x480 1,2 Mbit/s, 854x480 700 kbit/s, 854x48011 900 kbit/s,1280x720 1,5 Mbit/s,1280x720 900 kbit/s,1280x72012 1,2 Mbit/s,1280x720 2,0 Mbit/s,1280x720 1,2 Mbit/s,1280x72013 1,5 Mbit/s,1280x720 2,5 Mbit/s,1280x720 1,5 Mbit/s,1280x72014 2,0 Mbit/s,1280x720 3,0 Mbit/s,1920x1080 2,0 Mbit/s,1920x108015 2,5 Mbit/s,1920x1080 4,0 Mbit/s,1920x1080 2,5 Mbit/s,1920x108016 3,0 Mbit/s,1920x1080 5,0 Mbit/s,1920x1080 3,0 Mbit/s,1920x108017 4,0 Mbit/s,1920x1080 6,0 Mbit/s,1920x1080 4,0 Mbit/s,1920x108018 5,0 Mbit/s,1920x1080 5,0 Mbit/s,1920x108019 6,0 Mbit/s,1920x1080 6,0 Mbit/s,1920x108020 8,0 Mbit/s,1920x1080
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 7
WHAT RESOLUTION WHAT BITRATE
» Evaluations have been performed for each type of content› Sport› Animation› Movie
RedBull Playstreets (Sport)
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 8
DATASET STRUCTURE
» Segment Sizes› Seconds: 1, 2, 4, 6, 10, 15
» Bitrates ranging from 50 Kbps to 8 Mbps» Resolutions ranging from 240p to 1080p» MPD Types available› SegmentTemplate referencing individual segments› SegmentBase with byte range requests indexed in the MP4
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 9
SEGMENT LENGTH CONSIDERATIONS
» Smaller segment sizes will lead to decreased encoding efficiency› Shorter GOPs› Muxing Overhead
» Large segment sizes are restricting the adaptation algorithm and can lead to more frequent buffering› Bandwidth fluctuations› Delay (RTT)› Network: Mobile vs. Fixed› HTTP/1.0 vs HTTP/1.1
» What segment length should we choose?
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 10
ENCODING EFFICIENCY AND QUALITY
Segment Length (GOP Frames)
1 Sec. (24)
2 Sec. (48)
4 Sec. (96)
6 Sec. (144)
10 Sec. (240)
15 Sec. (360)
300 Kbps PSNR 35.83 36.51 36.98 37.14 37.31 37.31
1200 Kbps PSNR 38.24 39.78 40.02 40.02 40.10 40.17
Example:Big Buck Bunny
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 11
MUXING OVERHEAD
» MP4: Overhead is negligible» MP2TS: Overhead should be
considered, but can be optimized
ISOBMFF - Fragmented MP4
MPEG-2 TS
3% 8% 13% 18% 23% 28% 33%ISOBMFF - Frag-
mented MP4MPEG-2 TS
128 0.0300000000000001
0.3
128 Kbps
ISOBMFF - Fragmented MP4
MPEG-2 TS
3% 8% 13% 18% 23% 28% 33%ISOBMFF - Frag-
mented MP4MPEG-2 TS
500 0.02 0.11
500 Kbps
ISOBMFF - Fragmented MP4
MPEG-2 TS
3% 8% 13% 18% 23% 28% 33%ISOBMFF - Frag-
mented MP4MPEG-2 TS
1000 0.01 0.07
1 Mbps
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 12
ENCODING & MUXING CONCLUSION
» Encoding› Segment sizes with lengths smaller than 2 seconds perform
very poor (up to 2 dB PSNR difference)› There’s not much difference after 4 second segment sizes
» Muxing› MP4 Muxing overhead with segmentation is negligible› MPEG2-TS overhead is considerable› Your segmentation decision is not effected by muxing
» Influence of segment size on the adaptation behavior?
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 13
STREAMING PERFORMANCE
» Form a networking point of view also other factors must be taken into account› Bandwidth fluctuations› Delay (RTT)› Network: Mobile vs. Fixed› HTTP/1.0 vs HTTP/1.1
» Evaluation with Big Buck Bunny› 20 Representations› Segment sizes ranging from 1 to 15 seconds
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 14
STREAMING PERFORMANCE
» Evaluation Environment› Apache WebServer with KeepAlive On/Off› RTT of 150ms with NetEm› Bandwidth shaping between 386 kbps and 1536 Kbps
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 15
STREAMING PERFORMANCE
» Persistent Connection vs. Non-Persistent Connection› 2 Second Segments
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 16
STREAMING PERFORMANCE
» Persistent Connection vs. Non-Persistent Connection› 15 Second Segments
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 17
STREAMING PERFORMANCE
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 18
STREAMING PERFORMANCE
» Non persistent connections (HTTP/1.0)› 1 second segments 46% lower throughput › 2 second segments 34% lower throughput
» 6 second segments have a similar performance for persistent and non persistent connections
» Other considerations & experiments› Oscillations (Competing Clients)› HTTP/2.0 & SPDY, QUIC› P2P› Influence of proxy servers› Battery considerations› Comparison of MPEG-DASH vs HLS vs MSS vs HDS› etc.
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 19
CONCLUSION
» On the encoding side there’s not much difference after 4 seconds» Segmentation is not really influencing muxing overhead» TCP slow start is influencing the streaming behavior for ABR» Using pipeling and persistent connections or parallel requests helps» 6 second segments perform well for both HTTP/1.0 and HTTP/1.1
» bitmovin uses variable segment lengths targeting 4 seconds in average› Good encoding efficiency› Still allows adaptation logic’s to act flexible, i.e., less buffering
» Public available and free DASH Dataset is now a de facto standard for evaluations and used by many researchers
MPEG-DASH Dataset Paper
© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 20
bitmovin GmbHLakeside B01, 9020 Klagenfurt, Austria | 315 Olson Way #317, Sunnyvale, CA 94086,USA
T +43 463 203014E [email protected] www.bitmovin.net@bitmovin | facebook.com/bitmovin | github.com/bitmovin | crunchbase.com/company/bitmovin
… questions, comments, etc. are welcome …
bitmovin bring’s video content online as fast as possible