Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Choosing the Segment Length for Adaptive Bitrate Streaming

6,408 views

Published on

Choosing the right segment size for adaptive bitrate streaming (MPEG-DASH and HLS) is always a trade-off. Many factors as encoding efficiency, network delay, fluctuations, etc. are influencing that decision. This talk describes an explorative approach to define the right segment size for your adaptive streaming system, with evaluations based on an open source dataset.

Published in: Technology
  • what is the reference of this presentation, I would like to add the presented results in my report .
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Choosing the Segment Length for Adaptive Bitrate Streaming

  1. 1. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 1 bitmovin GmbH Lakeside B01 | 9020 Klagenfurt | Austria | Europe c/o 1200 Pacific Avenue | Santa Cruz | CA 95060 | USA T +43 463 203014 E office@bitmovin.net 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!
  2. 2. © 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
  3. 3. © 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?
  4. 4. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 4 MPEG-DASH DATASET
  5. 5. © 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
  6. 6. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 6 BITRATES AND RESOLUTIONS # Animation Sport Movie 1 50 kbit/s, 320x240 100 kbit/s, 320x240 50 kbit/s, 320x240 2 100 kbit/s, 320x240 150 kbit/s, 320x240 100 kbit/s, 320x240 3 150 kbit/s, 320x240 200 kbit/s, 480x360 150 kbit/s, 320x240 4 200 kbit/s, 480x360 250 kbit/s, 480x360 200 kbit/s, 480x360 5 250 kbit/s, 480x360 300 kbit/s, 480x360 250 kbit/s, 480x360 6 300 kbit/s, 480x360 400 kbit/s, 480x360 300 kbit/s, 480x360 7 400 kbit/s, 480x360 500 kbit/s, 854x480 400 kbit/s, 480x360 8 500 kbit/s, 480x360 700 kbit/s, 854x480 500 kbit/s, 854x480 9 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, 854x480 11 900 kbit/s,1280x720 1,5 Mbit/s,1280x720 900 kbit/s,1280x720 12 1,2 Mbit/s,1280x720 2,0 Mbit/s,1280x720 1,2 Mbit/s,1280x720 13 1,5 Mbit/s,1280x720 2,5 Mbit/s,1280x720 1,5 Mbit/s,1280x720 14 2,0 Mbit/s,1280x720 3,0 Mbit/s,1920x1080 2,0 Mbit/s,1920x1080 15 2,5 Mbit/s,1920x1080 4,0 Mbit/s,1920x1080 2,5 Mbit/s,1920x1080 16 3,0 Mbit/s,1920x1080 5,0 Mbit/s,1920x1080 3,0 Mbit/s,1920x1080 17 4,0 Mbit/s,1920x1080 6,0 Mbit/s,1920x1080 4,0 Mbit/s,1920x1080 18 5,0 Mbit/s,1920x1080 5,0 Mbit/s,1920x1080 19 6,0 Mbit/s,1920x1080 6,0 Mbit/s,1920x1080 20 8,0 Mbit/s,1920x1080
  7. 7. © 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)
  8. 8. © 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
  9. 9. © 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?
  10. 10. © 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
  11. 11. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 11 MUXING OVERHEAD » MP4: Overhead is negligible » MP2TS: Overhead should be considered, but can be optimized 0% 5% 10% 15% 20% 25% 30% 35% ISOBMFF - Fragmented MP4 MPEG-2 TS ISOBMFF - Fragmented MP4 MPEG-2 TS 128 3% 30% 128 Kbps 0% 10% 20% 30% ISOBMFF - Fragmented MP4 MPEG-2 TS ISOBMFF - Fragmented MP4 MPEG-2 TS 500 2% 11% 500 Kbps 0% 10% 20% 30% ISOBMFF - Fragmented MP4 MPEG-2 TS ISOBMFF - Fragmented MP4 MPEG-2 TS 1000 1% 7% 1 Mbps
  12. 12. © 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?
  13. 13. © 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
  14. 14. © 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
  15. 15. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 15 STREAMING PERFORMANCE » Persistent Connection vs. Non-Persistent Connection › 2 Second Segments
  16. 16. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 16 STREAMING PERFORMANCE » Persistent Connection vs. Non-Persistent Connection › 15 Second Segments
  17. 17. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 17 STREAMING PERFORMANCE
  18. 18. © 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.
  19. 19. © 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
  20. 20. © bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 20 bitmovin GmbH Lakeside B01, 9020 Klagenfurt, Austria | 315 Olson Way #317, Sunnyvale, CA 94086,USA T +43 463 203014 E office@bitmovin.net 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

×