SlideShare a Scribd company logo
It’s Time To Stop Stalling:
Delivering Video to the Web Quickly and
Beautifully
Doug Sillars
September 24, 2018
@DougSillars
Contact Me:
@DougSillars
Doug.Sillars@gmail.com
www.dougsillars.com
Doug Sillars
https://www.slideshare.net/dougsillars/
Freelance Developer Relations
Performance Audits: Web/Native
Workshops:
Performance/Images/Video
Video Consumption is Growing
https://www.recode.net/2017/6/8/15757594/future-internet-traffic-watch-live-video-facebook-google-netflix
WebPageTest
Tests Websites on Remote
Browsers
1. Enter Website
2. Set Test Location
3. Choose Device & Browser
4. Options
5. GO!
Study of the Web
https://Webpagetest.org https://httparchive.org
Video Consumption is Growing
HTTPArchive: Sites with Video 15/6 crawls: 2017, & 2018 (out of 500k sites)
Video Quality Metrics
1.Does the Video Start?
2.Does the Video Stall?
3.Does it Look Good?
Video Quality Metrics
1.Does the Video Start?
2.Does the Video Stall?
3.Does it Look Good?
Video Delivery Optimisation will
solve many of these issues!
9
Video
Buffer Rage: a state of uncontrollable
fury or violent anger induced by delayed
or interrupted streaming video content
http://www.ineoquest.com/press-releases/new-research-reveals-buffer-rage-as-techs-newest-epidemic
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018: Video Startup
16.9B total Video plays
400M Fail to Start
2B Abandoned before Start
~800M hours of video
playback lost
Video Fails To Start
Video Startup Failure
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018: Video Startup
Average Video Start Time:
N. America: 4.91s
Asia: 3.00s
Europe: 4.30s
Video Startup Delay
After 2 seconds,
every additional
second corresponds
to 5.8% increase in
abandonment
https://www.akamai.com/kr/ko/multimedia/documents/technical-publication/video-stream-quality-impacts-viewer-behavior-inferring-causality-using-quasi-experimental-designs-technical-publication.pdf
Video Startup Delay
https://www.akamai.com/kr/ko/multimedia/documents/technical-publication/video-stream-quality-impacts-viewer-behavior-inferring-causality-using-quasi-experimental-designs-technical-publication.pdf
Sites with Video: Mobile V. Desktop
HTTPArchive: Sites with Video 7/15/2018
Mobile:
36,485
Desktop:
55,048
Sites with Video: Mobile V. Desktop
HTTPArchive: Sites with Video 7/15/2018
36,485 55,048
30,442
Sites with Video: Mobile V. Desktop
HTTPArchive: Sites with Video 7/15/2018
36,485 55,048
30,442
83% of mobile
Desktop: 207k video requests
Mobile: 185k video requests
41,223 videos are IDENTICAL on
desktop and mobile
19% of all videos on mobile
21,086 sites use identical video
57.8% of mobile sites
Video Quality Metrics
1.Does the Video Start?
2.Does the Video Stall?
3.Does it Look Good?
41,223 videos are IDENTICAL on
desktop and mobile
19% of all videos on mobile
Image Optimization
Image Quality
(85% or SSIM)
Image Format
Responsive Image
Image Optimization
2.53 MB
1.68MB
1.28 MB
1.24MB (WebP)
204 KB (1400px wide)
Image Quality
(85% or SSIM)
Image Format
Responsive Image
http://res.cloudinary.com/dougsillars/image/upload/q_auto,f_auto,w_1400/v1532673490/IMG_20150625_192917267_o4
bvyk.jpg
Image Optimization
HTTPArchive 15/06/2018
Video Optimization?
HTTPArchive 15/06/2018
Video Optimization?
Video
Video Compression
• Video is broken into a Group of Pictures (GOP)
• I-Frame: Full Image
• P-Frame: uses vectors to forward predict colors (50% size of I-Frame)
• B: Frame: Forward/backward predicted with vectors (25% size of I-
Frame)
https://en.wikipedia.org/wiki/Inter_frame#P-frame
Video Compression over Time
• P-Frames
Video Compression over Time
• B-Frames
Video Compression over Time
• P & B Frame vectors
Animated GIFs
Original MP4
1.4 MB
Animated GIFs
Animated GIF
3.8 MB
270% larger
Animated GIFs
No GOP Compression
Animated GIFs: as Video?
MP4: 256 colors
247KB
93% smaller
Animated GIFs: as Video!
Video Tags:
<video loop autoplay muted playsinline controls = "false” src="goats.mp4”/>
Video is not pre-loaded, will be last to download
Img tags are fast!
<picture>
<source type="video/mp4" srcset=”goats.mp4">
<source type="image/webp" srcset=”goats.webp">
<img src=”goats.gif">
</picture>
https://calendar.perfplanet.com/2017/animated-gif-without-the-gif/
Video Stats: File Extensions
Video: Different Size Screens
• (at least) 19% of all videos are identical on mobile and desktop
Video: Different Size Screens
• (at least) 19% of all videos are identical on mobile and desktop
17 MB
960 x 540
83s
1.78 MBPS
Video: Different Size Screens
• (at least) 19% of all videos are identical on mobile and desktop
17 MB
960 x 540
83s
1.78 MBPS
Video: Different Size Screens
• (at least) 19% of all videos are identical on mobile and desktop
17 MB
960 x 540
83s
1.78 MBPS
Downscale to 1.37 MBPS:
http://res.cloudinary.com/dougsill
ars/video/upload/vc_auto/v15334
48727/asset_1800K_ncjqnf.mp4
Quality = 70
Audio 22k
13.3 MB (22% savings)
640x360: 6.4 MB (62% savings)
Video: Don’t Download More on Mobile
Desktop Mobile
Video: Don’t Download More on Mobile
Desktop Mobile
@media only screen and (min-width:1024px)
Don’t Download Video That Is Not Displayed
Video
Preload = “auto”
Only use with high probability video views!
Video Preload
• preload = “metadata”
• Only downloads first x% of the video
Video Preload
• preload = “metadata”
• Only downloads first x% of the video
Video Preload
• preload = “metadata”
• Only downloads first x% of the video
Video Preload
• preload = “metadata”
150s
1920x1080
Full Length: 97MB
Use with discretion. Mind your
customer’s data plans.
Video: Preload
• preload = “auto||metadata”
Best Practices:
• Auto: Avoid unless high probability of play
• Metadata: medium probability of play – YMMV
Video Background
Video Background
5.3 MB
15s
1280 x 720
Video Background
ffprobe -v error -show_format steven.mp4
[FORMAT]
filename=steven.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=15.216000
size=5254114
bit_rate=2762415
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:encoder=Lavf56.40.101
[/FORMAT]
Video Background
ffprobe -v error -show_streams steven.mp4
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=High
codec_type=video
codec_time_base=1001/60000
codec_tag_string=avc1
codec_tag=0x31637661
width=1280
height=720
...
[/STREAM]
[STREAM]
index=1
codec_name=aac
codec_long_name=AAC
(Advanced Audio Coding)
profile=LC
codec_type=audio
codec_time_base=1/44100
codec_tag_string=mp4a
codec_tag=0x6134706d
sample_fmt=fltp
sample_rate=44100
Video Background
Video (as Downloaded): 5.3 MB
Video 5 MB
Audio 250 KB 5% of file
Best Practice:
To save bandwidth, remove the audio stream from videos that
are played silently.
Video Background: Mobile
Best Practice:
If Viewport will not support Video…
Don’t Download it
Video Background
Video Background
33.6 MB
27s
2560 x 1226
10 MBPS
Video Background
Best Practice:
Resize Video to reasonable size.
33.6 MB
27s
2560 x 1226
10 MBPS
Video Background
Best Practice:
Resize Video to reasonable size.
PROTIP: Renaming the file is not enough…
Video Resizing
• 1920x1080: 8.1 MB
• 1280x720: 4.3 MB
• 1080x608: 3.3 MB
• 720x405: 1.76 MB
http://res.cloudinary.com/dougsillars/video/upload/vc_auto,w_720/v1533591785/depend_p2ryou.mp4
Video Background: Mobile
Video Background
33.6 MB
27s
2560 x 1226
10 MBPS
Video Background
Best Practice:
Don’t Duplicate Video Loops in the Video!
33.6 MB
27s
2560 x 1226
10 MBPS
Mobile Background
30 MB
42s
1920x1080
Same Video as
Desktop
Best Practices (So Far…)
1. DPR: Use Judiciously on mobile.
2. If Video will be hidden…Don’t Download it. (Resize
it!)
3. Avoid preload = Auto.
1. Be careful with preload=metadata.
4. For Silent Movies: Strip out audio track.
5. Don’t duplicate Video Traffic.
6. Respect your Mobile Users’ data plans.
Video Streaming
Video Streaming
Manifest File:
List of Available
Streams
Player Chooses a Stream Stream Manifest:
List of Video Segments
Player Downloads
Segments into buffer
Video Plays
Video Plays
Optimizing Video Delivery
Video Streaming
Player can estimate
network throughput
Optimal video Bitrate
HTTPArchive
Mobile: 1.6 MBPS
Desktop 5 MBPS
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
Video Tracks
Video Tracks (iFrames)
Audio Tracks &
Subtitles
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
Video Tracks
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
Video Streaming
HTTPArchive: Sites with Video 7/15/2018
30,442 sites
83% of mobile
15,985 mobile TS files
14,081 desktop TS files
Desktop => Mobile
1,928 TS files are identical
Approximates First Stream Choice
Video Streaming: Initial Video Bitrate
HTTPArchive: Sites with Video 7/15/2018
Video Streaming: Video Bitrate
HTTPArchive: Sites with Video 7/15/2018
Video Streaming: Video Bitrate
HTTPArchive: Sites with Video 7/15/2018
Video Streaming: Video Bitrate
HTTPArchive: Sites with Video 7/15/2018
Optimizing Video Delivery
Video Streaming
Manifest File:
List of Available
Streams
Player selects high
bitrate stream Stream Manifest:
List of Video Segments
Buffer takes a long
time to fill
Video Does Not Play
Player chooses low
bitrate
Buffer Fills Quickly
Video Plays
Video Startup
Conviva creen_Streaming_TV_Census_Report_FINAL.pdf
Q1 2018: Video Startup
Average Video Start Time:
N. America: 4.91s
Asia: 3.00s
Europe: 4.30s
Video Streaming: Startup Time
Low -> High
High => Low
Middle (Goldilocks)
Video Startup
10s 11s 12s 13s 14s 15s 16s 17s
4k Low->High:
4K Middle
(Goldilocks):
4k:High->Low:
Video Startup
4k Low->High:
4K Middle
(Goldilocks):
4k:High->Low:
PROs: CONS:
Fast Startup Initial Quality: Low
Other Connections:
Initial Quality: Low
Very slow startup
Fast Connections:
Initial Quality: High
Initial Quality: Good
Initial Startup: Not
fast, but not slow
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
Teal: Video
Gray: Audio
With a separate audio track –
you can specify en, de, es
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8 Testing with WebPageTest 3G
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
Testing with WebPageTest 3G
Video Streaming: Manifest File
600k.m3u8
Video Streaming: Manifest File
600k.m3u8
Video Streaming: Manifest File
https://hls.ted.com/talks/2208.m3u8
The Spengler
Crossing the Streams
Crossing the Streams: Desktop (5MBPS)
Crossing the Streams
Best Practice:
Streaming 2 videos at once lowers the quality of both.
Stream just one video at a time for best quality!
Summary
•Video files are big!
Best Practices
1. Resize Videos Appropriately for screen:
1. Quality
2. Bitrate
3. Dimensions/DPR
Respect your Mobile Users’ data plans!
Best Practices
1.
2. If Video will be hidden…Don’t Download it.
3. Avoid preload = Auto.
1. Be careful with preload=metadata.
4. For Silent Movies: Strip out audio track.
5. Don’t duplicate Video Traffic.
Respect your Mobile Users’ data plans!
Best Practices
3. Avoid preload = Auto.
1. Be careful with preload=metadata.
4. For Silent Movies: Strip out audio track.
5. Don’t duplicate Video Traffic.
6. Streaming: Start at lower bitrate for faster startup
7. Streaming: Start at middle bitrate for better
startup quality.
8. Even bitrate changes to prevent stalls
9. Use correct bitrates in manifest to optimize
delivery
10. One video at a time for best quality
Respect your Mobile Users’ data plans!
Thank You
Respect your Mobile Users’ data plans!
Video Stats: Top Mobile Domains (over 1k
served)
Video Streaming: Video Size
HTTPArchive: Sites with Video 7/15/2018
Video Streaming: Video Size
HTTPArchive: Sites with Video 7/15/2018

More Related Content

PPTX
Video performance munichfrontend
PPTX
T3fest video
PPTX
NodeJS Edinburgh Video Killed My Data Plan
PPTX
Video performance glasgow
PPTX
Video performance snowcamp
PPTX
Video Killed My Data Plan: Helsinki
PPTX
Frontcon video
PPTX
Rija js video
Video performance munichfrontend
T3fest video
NodeJS Edinburgh Video Killed My Data Plan
Video performance glasgow
Video performance snowcamp
Video Killed My Data Plan: Helsinki
Frontcon video
Rija js video

What's hot (20)

PPTX
Warsawclouddays video
PPTX
Vilnius py video
PPTX
Video js zagreb
PPTX
Corkgdg video
PPTX
Armadajs video
PPTX
Gdg lublin video
PPTX
Krakow video
PPTX
Portogdg video
PPTX
Its timetostopstalling pentabar
POTX
Its timetostopstalling mot_paris
POTX
Its timetostopstalling swp_munich
PPTX
Hamburg web perf meetup
POTX
Its timetostopstalling gdgdusseldorf
PPTX
Illawarra Digital Enterprise Program - Creating and uploading videos for YouT...
PPTX
IBC Content Everywhere Hub Presentation: HTML5 And Fastest Encoding
PDF
JS Days Mobile Meow
PDF
Advanced Product Quality Planning Apqp
PPTX
L46 slides
PDF
JS Days HTML5 Flash and the Battle for Faster Cat Videos
PPTX
Live, Low Delay, High Quality – How?
Warsawclouddays video
Vilnius py video
Video js zagreb
Corkgdg video
Armadajs video
Gdg lublin video
Krakow video
Portogdg video
Its timetostopstalling pentabar
Its timetostopstalling mot_paris
Its timetostopstalling swp_munich
Hamburg web perf meetup
Its timetostopstalling gdgdusseldorf
Illawarra Digital Enterprise Program - Creating and uploading videos for YouT...
IBC Content Everywhere Hub Presentation: HTML5 And Fastest Encoding
JS Days Mobile Meow
Advanced Product Quality Planning Apqp
L46 slides
JS Days HTML5 Flash and the Battle for Faster Cat Videos
Live, Low Delay, High Quality – How?
Ad

Similar to Video performance barcelona-js_coders (18)

PPTX
Ux connect london_fastandbeautiful
PPTX
Stop Stalling: Video Delivery Best Practices
PPTX
Imagesandvideo tallinn
PPTX
Cologne webperf
POTX
Its timetostopstalling androidcork
PPTX
Imagesandvideo stockholm webmeetup
PPTX
Devfest Siberia Fast and Beautiful Images and Video
POTX
Its timetostopstalling sw_mobile_bristol
POTX
Its Time To Stop Stalling BerlinDroid
PDF
HTML5, Flash, and the Battle For Faster Cat Videos
PPTX
Imagesandvideo stockholm fastandbeautiful
POTX
GDG Leeds
POTX
Its timetostopstalling londroid
PDF
GDD HTML5, Flash, and the Battle for Faster Cat Videos
POTX
Mobile App and Web Performance Testing
POTX
Its timetostopstalling gdg_hamburg
PPTX
Devoxx be fast and beautiful images
PDF
Bitmovin LIVE Tech Talks: 5 Analytics Metrics That Matter
Ux connect london_fastandbeautiful
Stop Stalling: Video Delivery Best Practices
Imagesandvideo tallinn
Cologne webperf
Its timetostopstalling androidcork
Imagesandvideo stockholm webmeetup
Devfest Siberia Fast and Beautiful Images and Video
Its timetostopstalling sw_mobile_bristol
Its Time To Stop Stalling BerlinDroid
HTML5, Flash, and the Battle For Faster Cat Videos
Imagesandvideo stockholm fastandbeautiful
GDG Leeds
Its timetostopstalling londroid
GDD HTML5, Flash, and the Battle for Faster Cat Videos
Mobile App and Web Performance Testing
Its timetostopstalling gdg_hamburg
Devoxx be fast and beautiful images
Bitmovin LIVE Tech Talks: 5 Analytics Metrics That Matter
Ad

More from Doug Sillars (20)

PPTX
Fastandbeautiful belfast
PPTX
Fastandbeautiful gdg sacremento
PPTX
Fastandbeautiful gd glittlerock
PPTX
Fastandbeautiful webinale
PPTX
Ai powered images-pythonljubjana
PPTX
Fastandbeautiful zagrebtechsauna
PDF
Vkmdp cologne
PPTX
Ai powered images-gdgtirana
PPTX
A rt gallery pantalks
PPTX
Ai powered images-sarajevo
PPTX
A rt gallery hub387
PPTX
Ai powered images-zurichpydata
PPTX
Fastandbeautiful vienna
PPTX
Ai powered images-opieaivienna
PPTX
A rt gallery devfestlondon
PPTX
Fastandbeautiful devfest london
PPTX
A rt gallery cardiff
PPTX
Ai powered images-mobileera
PPTX
Fastandbeautiful oredev
PPTX
A rt gallery oredev
Fastandbeautiful belfast
Fastandbeautiful gdg sacremento
Fastandbeautiful gd glittlerock
Fastandbeautiful webinale
Ai powered images-pythonljubjana
Fastandbeautiful zagrebtechsauna
Vkmdp cologne
Ai powered images-gdgtirana
A rt gallery pantalks
Ai powered images-sarajevo
A rt gallery hub387
Ai powered images-zurichpydata
Fastandbeautiful vienna
Ai powered images-opieaivienna
A rt gallery devfestlondon
Fastandbeautiful devfest london
A rt gallery cardiff
Ai powered images-mobileera
Fastandbeautiful oredev
A rt gallery oredev

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Approach and Philosophy of On baking technology
PDF
cuic standard and advanced reporting.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Electronic commerce courselecture one. Pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Cloud computing and distributed systems.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
sap open course for s4hana steps from ECC to s4
Approach and Philosophy of On baking technology
cuic standard and advanced reporting.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Mobile App Security Testing_ A Comprehensive Guide.pdf
Empathic Computing: Creating Shared Understanding
Building Integrated photovoltaic BIPV_UPV.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
MYSQL Presentation for SQL database connectivity
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Electronic commerce courselecture one. Pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
Spectral efficient network and resource selection model in 5G networks
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Cloud computing and distributed systems.

Video performance barcelona-js_coders

Editor's Notes

  • #49: www.kidzania.com
  • #50: www.kidzania.com
  • #51: www.kidzania.com
  • #52: www.kidzania.com
  • #53: www.kidzania.com
  • #54: www.kidzania.com
  • #55: www.depend.com
  • #56: www.depend.com
  • #57: www.depend.com
  • #58: www.depend.com
  • #60: www.depend.com
  • #61: www.depend.com
  • #62: www.depend.com
  • #63: www.govisland.com
  • #64: www.govisland.com
  • #94: www.govisland.com
  • #95: www.govisland.com
  • #96: www.govisland.com
  • #97: www.govisland.com