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

Choosing the Segment Length for Adaptive Bitrate Streaming

  • 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.
    © 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.
    © 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.
    © bitmovin |github.com/bitmovin | @bitmovin | facebook.com/bitmovin 4 MPEG-DASH DATASET
  • 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.
    © 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.
    © 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.
    © 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.
    © 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.
    © 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.
    © 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.
    © 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.
    © 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.
    © 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.
    © bitmovin |github.com/bitmovin | @bitmovin | facebook.com/bitmovin 15 STREAMING PERFORMANCE » Persistent Connection vs. Non-Persistent Connection › 2 Second Segments
  • 16.
    © bitmovin |github.com/bitmovin | @bitmovin | facebook.com/bitmovin 16 STREAMING PERFORMANCE » Persistent Connection vs. Non-Persistent Connection › 15 Second Segments
  • 17.
    © bitmovin |github.com/bitmovin | @bitmovin | facebook.com/bitmovin 17 STREAMING PERFORMANCE
  • 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.
    © 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.
    © 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