choosing the segment length for adaptive bitrate streaming

20
© 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 [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!

Upload: bitmovin

Post on 13-Aug-2015

1.510 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 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!

Page 2: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 3: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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?

Page 4: Choosing the Segment Length for Adaptive Bitrate Streaming

© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 4

MPEG-DASH DATASET

Page 5: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 6: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 7: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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)

Page 8: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 9: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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?

Page 10: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 11: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 12: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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?

Page 13: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 14: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 15: Choosing the Segment Length for Adaptive Bitrate Streaming

© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 15

STREAMING PERFORMANCE

» Persistent Connection vs. Non-Persistent Connection› 2 Second Segments

Page 16: Choosing the Segment Length for Adaptive Bitrate Streaming

© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 16

STREAMING PERFORMANCE

» Persistent Connection vs. Non-Persistent Connection› 15 Second Segments

Page 17: Choosing the Segment Length for Adaptive Bitrate Streaming

© bitmovin | github.com/bitmovin | @bitmovin | facebook.com/bitmovin 17

STREAMING PERFORMANCE

Page 18: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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.

Page 19: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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

Page 20: Choosing the Segment Length for Adaptive Bitrate Streaming

© 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