SlideShare a Scribd company logo
1 of 84
Download to read offline
Video Killed My Data Plan
Delivering video that doesn't break the bank
Doug Sillars
@dougsillars
Feb 3, 2020
Koln webperf
Today’s Itinerary
•0930 HTML Video: The Basics
•1100 Coffee
•1130 Accessibility & Performance
•1300 Lunch
•1400 Formats, Encoding, Quality and Playback
•1530 Coffee
•1400 Video of Demand: Streaming
•1730 Done!
Why Video
HTML Video: The Basics
<video src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
<video autoplay
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
<video autoplay
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
This won’t work on mobile!
HTML Video: The Basics
<video autoplay
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
This won’t work on mobile!
This is very hard to test.
HTML Video: The Basics
<video autoplay muted
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
<video autoplay muted
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
This will autoplay on mobile!
HTML Video: The Basics
<video autoplay controls
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
<video autoplay width=720p
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
<video autoplay width=720p
height = 100p src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
<video controls
poster=image.jpg
src=video.mp4>
</video>
HTML Video: The Basics
<video autoplay muted loop
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
<video autoplay muted loop
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
It’s a GIF!! (or is it?)
HTML Video: The Basics
HTML Video: The Basics
HTML Video: The Basics
HTML Video: The Basics
<video autoplay muted loop
src=video.mp4>
</video>
https://codepen.io/dougsillars/project/full/XpROwa
It’s a GIF!! (or is it?)
HTML Video: The Basics
Preload
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
Preload = none
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
Preload = none
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
Preload = none
Preload = metadata
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
Preload = none
Preload = metadata
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
Preload = none
Preload = metadata
Preload = auto
https://codepen.io/dougsillars/project/full/XpROwa
HTML Video: The Basics
Preload = none
Preload = metadata
Preload = auto
https://codepen.io/dougsillars/project/full/XpROwa
Video Delivery First Example
Video Delivery First Example
<div class="video-container" aria-hidden="true">
<video class="desktop-video" muted autoplay loop playsinline>
<source src="TrumpTowerTheExperiencev2.mp4">
Your browser does not support this video.
</video>
<video class="mobile-video" muted autoplay loop playsinline>
<source src="TrumpTowerTheExperiencev2Mobile.mp4">
Your browser does not support this video.
</video>
</div>
Video Delivery First Example
Video Delivery Second Example
<div class="fullscreen-bg">
<video loop muted autoplay playsinline
poster="firstframe.jpg" class="fullscreen-bg__video">
<source src="bg.mp4" type="video/mp4">
</video>
</div>
Video Delivery Second Example
<div class="fullscreen-bg">
<video loop muted autoplay playsinline
poster="firstframe.jpg" class="fullscreen-bg__video">
<source src="bg.mp4" type="video/mp4">
</video>
</div>
Video Delivery Third Example
https://climbiowa.com/
Video Delivery Third Example
https://climbiowa.com/
video {
display:none;
}
Video Delivery Fourth Example
<video class="video-player video-js"
controls="controls" preload="auto">
<source
src="live-significantly-90-seconds-88mb.mp4"/>
</video>
Video Delivery Fourth Example
<video class="video-player video-js"
controls="controls" preload="auto">
<source
src="live-significantly-90-seconds-88mb.mp4"/>
</video>
Performance
1 Does the Video Start?
Performance
1 Does the Video Start?
2 Does the Video Stall?
Performance
1 Does the Video Start?
2 Does the Video Stall?
3 Does it Look Good?
Performance
1 Does the Video Start?
2 Does the Video Stall?
3 Does it Look Good? Optimizing video
delivery can help solve
many of these issues
Performance
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
Performance
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
Performance: Measure Start Time
Performance
Performance: Measure Start Time
https://dougsillars.github.io/StreamOrNot/
Performance: Measure Start Time
https://dougsillars.github.io/StreamOrNot/
Performance: Measure Start Time
https://dougsillars.github.io/StreamOrNot/
Performance: Measure Start Time
https://dougsillars.github.io/StreamOrNot/
Performance: Measure Start Time
https://dougsillars.github.io/StreamOrNot/
Performance: Measure Start Time
https://dougsillars.github.io/StreamOrNot/
We can try to
simulate other
downloads & CPU
usage...
Performance
1 Does the Video Start?
Performance
https://dougsillars.github.io/StreamOrNot/
1 Does the Video Start?
2 Does the Video Stall?
Performance: Stalling?
Performance: Measure Stalling
https://dougsillars.github.io/StreamOrNot/
Performance: Measure Stalling
https://dougsillars.github.io/StreamOrNot/
40% of videos on mobile
experienced at least 1
stall.
Performance: Measure Stalling
https://dougsillars.github.io/StreamOrNot/
Even short ‘hiccup’
stalls cause
abandonment
20% > 2s stalled
10% > 10s stalled
Performance: Start & Stalls
What is Causing the delay?
1. Network Speed
2. Video Size
3. Video Duration
4. Video Dimensions
5. Video Bitrate
https://dougsillars.com/2019/09/16/state-of-the-web-video-playback-metrics/
Video Sizing
ReSizing Videos with Cloudinary
https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA
4_vahyoz.mp4
Width Size (MB) Bitrate
(MBPS)
MP4 1920 72.9 20
Video Sizing
ReSizing Videos with Cloudinary
https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA
4_vahyoz.mp4
https://res.cloudinary.com/dougsillars/video/upload/vc_auto/v1554841934/Bidwells_Shor
ty_PartA4_vahyoz.mp4
Width Size (MB) Bitrate
(MBPS)
MP4 1920 72.9 20
mp4
(vc_auto)
1920 7.7 2.1
webm 1920 7 2.0
Video Sizing
ReSizing Videos with Cloudinary
https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA
4_vahyoz.mp4
https://res.cloudinary.com/dougsillars/video/upload/vc_auto,w_1280/v1554841934/Bidw
ells_Shorty_PartA4_vahyoz.mp4
Width Size (MB) Bitrate
(MBPS)
MP4 1920 72.9 20
mp4
(vc_auto)
1920
1280
7.7
4.64
2.1
1.3
webm 1920
1280
7
3.9
2.0
1.0
Video Sizing
ReSizing Videos with Cloudinary
https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA
4_vahyoz.mp4
https://res.cloudinary.com/dougsillars/video/upload/vc_auto,w_1280/v1554841934/Bidw
ells_Shorty_PartA4_vahyoz.mp4
Width Size (MB) Bitrate
(MBPS)
Video
Startup (s)
% time
<5s buffer
MP4 1920 72.9 20 121 NA
mp4
(vc_auto)
1920
1280
7.7
4.64
2.1
1.3
14 56%
webm 1920
1280
7
3.9
2.0
1.0
11 56%
Video Timing Metrics:
https://dougsillars.git
hub.io/StreamOrNot/
Video Sizing
ReSizing Videos with Cloudinary
https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA
4_vahyoz.mp4
https://res.cloudinary.com/dougsillars/video/upload/vc_auto,w_1280/v1554841934/Bidw
ells_Shorty_PartA4_vahyoz.mp4
Width Size (MB) Bitrate
(MBPS)
Video
Startup (s)
% time
<5s buffer
MP4 1920 72.9 20 121 NA
mp4
(vc_auto)
1920
1280
7.7
4.64
2.1
1.3
14
3
56%
32%
webm 1920
1280
7
3.9
2.0
1.0
11
3
56%
20%
Video Timing Metrics:
https://dougsillars.git
hub.io/StreamOrNot/
Video Sizing: One More Thing
Video Sizing: One More Thing
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
</video>
Video Sizing: One More Thing
Size Bitrate
mp4 73 MB 20 MBPS
webm 34.7 MB 9.7 MBPS
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
</video>
Video Sizing: One More Thing
Size Bitrate
mp4 73 MB 20 MBPS
webm 34.7 MB 9.7 MBPS
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
</video>
Video Sizing: One More Thing
Size Bitrate
mp4 73 MB 20 MBPS
webm 34.7 MB 9.7 MBPS
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
</video>
Video Sizing: One More Thing
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
</video>
Size Bitrate
mp4 73 MB 20 MBPS
webm 34.7 MB 9.7 MBPS
Video Sizing: One More Thing
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
</video>
Size Bitrate
mp4 73 MB 20 MBPS
webm 34.7 MB 9.7 MBPS
AWS S3 costs $0.09/GB data transfer
Video Sizing: One More Thing
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
</video>
Size Bitrate S3 load cost
mp4 73 MB 20 MBPS $0.006
webm 34.7 MB 9.7 MBPS $0.003
Mp4 (1280px) 4.64 MB 1.3 MBPS $0.0004
Video Sizing: One More Thing
<video class="hero-canvas__video" loop muted preload="auto"
poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg">
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" />
<source
src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid
eos/Bidwells_Shorty_PartB4.webm" type="video/webm" />
</video>
Size Bitrate S3 load cost
mp4 73 MB 20 MBPS $0.006
webm 34.7 MB 9.7 MBPS $0.003
Mp4 (1280px) 4.64 MB 1.3 MBPS $0.0004
Lower your AWS bill
by 15x with this one
simple trick!
Silent Videos
https://res.cloudinary.com/streamornot/video/upload/vc_auto/v1571051653/liv
e-significantly-90-seconds-88mb_tmmm6t.mp4
21.6 MB
https://res.cloudinary.com/streamornot/video/upload/vc_auto,ac_none/v15710
51653/live-significantly-90-seconds-88mb_tmmm6t.mp4
20.9 MB
Removing Audio track saves 0.7 MB (4%)
Video Visual Clarity
Video Visual Clarity
Measuring Video Clarity
Compare original reference video to smaller version:
Measuring Video Clarity
Compare original reference video to smaller version:
Structural SIMularity (SSIM)
Peak Signal to Noise (PSNR)
Video MultiMethod Assessment Fusion (VMAF)
MOS SSIM PSNR (db) VMAF
5 (excellent) >0.99 50 >95
4 (good) 0.95-0.99 38
3 (fair) 0.88 - 0.95 30 70
2 (poor) 0.5 - 0.88 22
1 (bad) <0.5 15 20
Measuring Video Clarity
Compare original reference video to smaller version:
SSIM, PSNR are available in FFMPEG
VMAF can be added to FFMPEG
Measuring Video Clarity
Compare original reference video to smaller version:
SSIM, PSNR are available in FFMPEG
VMAF can be added to FFMPEG
Measuring Video Clarity
ffmpeg -i <smallervideo> -i <biggervideo> -lavfi
libvmaf="ssim=true:psnr=true:phone_model=true" -f null –
Measuring Video Clarity
ffmpeg -i <smallervideo> -i <biggervideo> -lavfi
libvmaf="ssim=true:psnr=true:phone_model=true" -f null –
Frame by Frame
comparisons:
Relatively
expensive!
Session 2: Measuring Video Clarity
www.streamclarity.com
https://res.cloudinary.com/d
ougsillars/video/upload/q_a
uto,so_47,eo_53,q_99/v15
69391519/TDE3.mp4
https://res.cloudinary.com/d
ougsillars/video/upload/q_a
uto,so_47,eo_53/v1569391
519/TDE3.mp4
Measuring Video Clarity
www.streamclarity.com
Width Size
(MB)
VMAF SSIM PSNR
MP4
(q_99)
1280 18 100
Measuring Video Clarity
www.streamclarity.com
Width Size
(MB)
VMAF SSIM PSNR
MP4
(q_99)
1280 18 100
mp4
(q_auto)
1280
960
4.5
3
99
97
0.992
0.988
39
36
Testing at 1280x720,
Video is indistinguishable from
original
Conclusion
Tools:
WebPageTest http://webpagetest.org
Stream or Not https://dougsillars.github.io/StreamOrNot/
Stream Clarity: http://streamclarity.com
FFMPEG https://ffmpeg.org
Video Hosting:
Cloudinary http://cloudinary.com

More Related Content

What's hot

HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
Patrick Lauke
 
Rock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsRock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment Workflows
AOE
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
Simon Willison
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
Christopher Schmitt
 

What's hot (20)

HTML5, Flash, and the Battle For Faster Cat Videos
HTML5, Flash, and the Battle For Faster Cat VideosHTML5, Flash, and the Battle For Faster Cat Videos
HTML5, Flash, and the Battle For Faster Cat Videos
 
Taking HTML5 video a step further
Taking HTML5 video a step furtherTaking HTML5 video a step further
Taking HTML5 video a step further
 
HTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're goingHTML5 Multimedia: where we are, where we're going
HTML5 Multimedia: where we are, where we're going
 
WordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for BeginnersWordCamp Belfast DevOps for Beginners
WordCamp Belfast DevOps for Beginners
 
Measuring web performance
Measuring web performanceMeasuring web performance
Measuring web performance
 
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
 
Rock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsRock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment Workflows
 
Craft 2019 - “The Upside Down” Of The Web - Video technologies
Craft 2019 - “The Upside Down” Of The Web - Video technologiesCraft 2019 - “The Upside Down” Of The Web - Video technologies
Craft 2019 - “The Upside Down” Of The Web - Video technologies
 
HTML5 Video for WordPress
HTML5 Video for WordPressHTML5 Video for WordPress
HTML5 Video for WordPress
 
Got &lt;video>? Implementing HTML5 Video for Library Tutorials
Got &lt;video>?  Implementing HTML5 Video for Library TutorialsGot &lt;video>?  Implementing HTML5 Video for Library Tutorials
Got &lt;video>? Implementing HTML5 Video for Library Tutorials
 
Front-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 TrainingFront-End Single Point of Failure - Velocity 2016 Training
Front-End Single Point of Failure - Velocity 2016 Training
 
Frontend SPOF
Frontend SPOFFrontend SPOF
Frontend SPOF
 
Its timetostopstalling pentabar
Its timetostopstalling pentabarIts timetostopstalling pentabar
Its timetostopstalling pentabar
 
Using browser settings for performance
Using browser settings for performanceUsing browser settings for performance
Using browser settings for performance
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
Bringing the JAMstack to the Enterprise
Bringing the JAMstack to the EnterpriseBringing the JAMstack to the Enterprise
Bringing the JAMstack to the Enterprise
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
Forensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance Investigations
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video Tutorial
 
HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012HTML5 Video Player - HTML5 Dev Conf 2012
HTML5 Video Player - HTML5 Dev Conf 2012
 

Similar to Vkmdp cologne

Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Video
steveheffernan
 

Similar to Vkmdp cologne (20)

Video performance munichfrontend
Video performance munichfrontendVideo performance munichfrontend
Video performance munichfrontend
 
Video js zagreb
Video js zagrebVideo js zagreb
Video js zagreb
 
Warsawclouddays video
Warsawclouddays videoWarsawclouddays video
Warsawclouddays video
 
Krakow video
Krakow videoKrakow video
Krakow video
 
Gdg lublin video
Gdg lublin videoGdg lublin video
Gdg lublin video
 
Vilnius py video
Vilnius py videoVilnius py video
Vilnius py video
 
Corkgdg video
Corkgdg videoCorkgdg video
Corkgdg video
 
Video Killed My Data Plan: Helsinki
Video Killed My Data Plan: HelsinkiVideo Killed My Data Plan: Helsinki
Video Killed My Data Plan: Helsinki
 
Portogdg video
Portogdg videoPortogdg video
Portogdg video
 
Video performance barcelona-js_coders
Video performance barcelona-js_codersVideo performance barcelona-js_coders
Video performance barcelona-js_coders
 
T3fest video
T3fest videoT3fest video
T3fest video
 
Rija js video
Rija js videoRija js video
Rija js video
 
HTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're goingHTML5 multimedia - where we are, where we're going
HTML5 multimedia - where we are, where we're going
 
Video performance glasgow
Video performance glasgowVideo performance glasgow
Video performance glasgow
 
Armadajs video
Armadajs videoArmadajs video
Armadajs video
 
Multimedia on the web - HTML5 video and audio
Multimedia on the web - HTML5 video and audioMultimedia on the web - HTML5 video and audio
Multimedia on the web - HTML5 video and audio
 
Video performance snowcamp
Video performance snowcampVideo performance snowcamp
Video performance snowcamp
 
NodeJS Edinburgh Video Killed My Data Plan
NodeJS Edinburgh Video Killed My Data PlanNodeJS Edinburgh Video Killed My Data Plan
NodeJS Edinburgh Video Killed My Data Plan
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Video
 
Imagesandvideo tallinn
Imagesandvideo tallinnImagesandvideo tallinn
Imagesandvideo tallinn
 

More from Doug Sillars

More from Doug Sillars (20)

Fastandbeautiful belfast
Fastandbeautiful belfastFastandbeautiful belfast
Fastandbeautiful belfast
 
Fastandbeautiful gdg sacremento
Fastandbeautiful gdg sacrementoFastandbeautiful gdg sacremento
Fastandbeautiful gdg sacremento
 
Fastandbeautiful gd glittlerock
Fastandbeautiful gd glittlerockFastandbeautiful gd glittlerock
Fastandbeautiful gd glittlerock
 
Fastandbeautiful webinale
Fastandbeautiful webinaleFastandbeautiful webinale
Fastandbeautiful webinale
 
Ai powered images-pythonljubjana
Ai powered images-pythonljubjanaAi powered images-pythonljubjana
Ai powered images-pythonljubjana
 
Fastandbeautiful zagrebtechsauna
Fastandbeautiful zagrebtechsaunaFastandbeautiful zagrebtechsauna
Fastandbeautiful zagrebtechsauna
 
Ai powered images-gdgtirana
Ai powered images-gdgtiranaAi powered images-gdgtirana
Ai powered images-gdgtirana
 
A rt gallery pantalks
A rt gallery pantalksA rt gallery pantalks
A rt gallery pantalks
 
Ai powered images-sarajevo
Ai powered images-sarajevoAi powered images-sarajevo
Ai powered images-sarajevo
 
A rt gallery hub387
A rt gallery hub387A rt gallery hub387
A rt gallery hub387
 
Ai powered images-zurichpydata
Ai powered images-zurichpydataAi powered images-zurichpydata
Ai powered images-zurichpydata
 
Fastandbeautiful vienna
Fastandbeautiful viennaFastandbeautiful vienna
Fastandbeautiful vienna
 
Ai powered images-opieaivienna
Ai powered images-opieaiviennaAi powered images-opieaivienna
Ai powered images-opieaivienna
 
A rt gallery devfestlondon
A rt gallery devfestlondonA rt gallery devfestlondon
A rt gallery devfestlondon
 
Fastandbeautiful devfest london
Fastandbeautiful devfest londonFastandbeautiful devfest london
Fastandbeautiful devfest london
 
A rt gallery cardiff
A rt gallery cardiffA rt gallery cardiff
A rt gallery cardiff
 
Ai powered images-mobileera
Ai powered images-mobileeraAi powered images-mobileera
Ai powered images-mobileera
 
Fastandbeautiful oredev
Fastandbeautiful oredevFastandbeautiful oredev
Fastandbeautiful oredev
 
A rt gallery oredev
A rt gallery oredevA rt gallery oredev
A rt gallery oredev
 
A rt gallery webcamp-zg
A rt gallery webcamp-zgA rt gallery webcamp-zg
A rt gallery webcamp-zg
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 

Vkmdp cologne

  • 1. Video Killed My Data Plan Delivering video that doesn't break the bank Doug Sillars @dougsillars Feb 3, 2020 Koln webperf
  • 2. Today’s Itinerary •0930 HTML Video: The Basics •1100 Coffee •1130 Accessibility & Performance •1300 Lunch •1400 Formats, Encoding, Quality and Playback •1530 Coffee •1400 Video of Demand: Streaming •1730 Done!
  • 4.
  • 5. HTML Video: The Basics <video src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa
  • 6. HTML Video: The Basics <video autoplay src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa
  • 7. HTML Video: The Basics <video autoplay src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa This won’t work on mobile!
  • 8. HTML Video: The Basics <video autoplay src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa This won’t work on mobile! This is very hard to test.
  • 9. HTML Video: The Basics <video autoplay muted src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa
  • 10. HTML Video: The Basics <video autoplay muted src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa This will autoplay on mobile!
  • 11. HTML Video: The Basics <video autoplay controls src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa
  • 12. HTML Video: The Basics <video autoplay width=720p src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa
  • 13. HTML Video: The Basics <video autoplay width=720p height = 100p src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa
  • 14. HTML Video: The Basics <video controls poster=image.jpg src=video.mp4> </video>
  • 15. HTML Video: The Basics <video autoplay muted loop src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa
  • 16. HTML Video: The Basics <video autoplay muted loop src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa It’s a GIF!! (or is it?)
  • 17. HTML Video: The Basics
  • 18. HTML Video: The Basics
  • 19. HTML Video: The Basics
  • 20. HTML Video: The Basics <video autoplay muted loop src=video.mp4> </video> https://codepen.io/dougsillars/project/full/XpROwa It’s a GIF!! (or is it?)
  • 21. HTML Video: The Basics Preload https://codepen.io/dougsillars/project/full/XpROwa
  • 22. HTML Video: The Basics Preload = none https://codepen.io/dougsillars/project/full/XpROwa
  • 23. HTML Video: The Basics Preload = none https://codepen.io/dougsillars/project/full/XpROwa
  • 24. HTML Video: The Basics Preload = none Preload = metadata https://codepen.io/dougsillars/project/full/XpROwa
  • 25. HTML Video: The Basics Preload = none Preload = metadata https://codepen.io/dougsillars/project/full/XpROwa
  • 26. HTML Video: The Basics Preload = none Preload = metadata Preload = auto https://codepen.io/dougsillars/project/full/XpROwa
  • 27. HTML Video: The Basics Preload = none Preload = metadata Preload = auto https://codepen.io/dougsillars/project/full/XpROwa
  • 29. Video Delivery First Example <div class="video-container" aria-hidden="true"> <video class="desktop-video" muted autoplay loop playsinline> <source src="TrumpTowerTheExperiencev2.mp4"> Your browser does not support this video. </video> <video class="mobile-video" muted autoplay loop playsinline> <source src="TrumpTowerTheExperiencev2Mobile.mp4"> Your browser does not support this video. </video> </div>
  • 31. Video Delivery Second Example <div class="fullscreen-bg"> <video loop muted autoplay playsinline poster="firstframe.jpg" class="fullscreen-bg__video"> <source src="bg.mp4" type="video/mp4"> </video> </div>
  • 32. Video Delivery Second Example <div class="fullscreen-bg"> <video loop muted autoplay playsinline poster="firstframe.jpg" class="fullscreen-bg__video"> <source src="bg.mp4" type="video/mp4"> </video> </div>
  • 33. Video Delivery Third Example https://climbiowa.com/
  • 34. Video Delivery Third Example https://climbiowa.com/ video { display:none; }
  • 35. Video Delivery Fourth Example <video class="video-player video-js" controls="controls" preload="auto"> <source src="live-significantly-90-seconds-88mb.mp4"/> </video>
  • 36. Video Delivery Fourth Example <video class="video-player video-js" controls="controls" preload="auto"> <source src="live-significantly-90-seconds-88mb.mp4"/> </video>
  • 37. Performance 1 Does the Video Start?
  • 38. Performance 1 Does the Video Start? 2 Does the Video Stall?
  • 39. Performance 1 Does the Video Start? 2 Does the Video Stall? 3 Does it Look Good?
  • 40. Performance 1 Does the Video Start? 2 Does the Video Stall? 3 Does it Look Good? Optimizing video delivery can help solve many of these issues
  • 45. Performance: Measure Start Time https://dougsillars.github.io/StreamOrNot/
  • 46. Performance: Measure Start Time https://dougsillars.github.io/StreamOrNot/
  • 47. Performance: Measure Start Time https://dougsillars.github.io/StreamOrNot/
  • 48. Performance: Measure Start Time https://dougsillars.github.io/StreamOrNot/
  • 49. Performance: Measure Start Time https://dougsillars.github.io/StreamOrNot/
  • 50. Performance: Measure Start Time https://dougsillars.github.io/StreamOrNot/ We can try to simulate other downloads & CPU usage...
  • 51. Performance 1 Does the Video Start?
  • 55. Performance: Measure Stalling https://dougsillars.github.io/StreamOrNot/ 40% of videos on mobile experienced at least 1 stall.
  • 56. Performance: Measure Stalling https://dougsillars.github.io/StreamOrNot/ Even short ‘hiccup’ stalls cause abandonment 20% > 2s stalled 10% > 10s stalled
  • 57. Performance: Start & Stalls What is Causing the delay? 1. Network Speed 2. Video Size 3. Video Duration 4. Video Dimensions 5. Video Bitrate https://dougsillars.com/2019/09/16/state-of-the-web-video-playback-metrics/
  • 58. Video Sizing ReSizing Videos with Cloudinary https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA 4_vahyoz.mp4 Width Size (MB) Bitrate (MBPS) MP4 1920 72.9 20
  • 59. Video Sizing ReSizing Videos with Cloudinary https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA 4_vahyoz.mp4 https://res.cloudinary.com/dougsillars/video/upload/vc_auto/v1554841934/Bidwells_Shor ty_PartA4_vahyoz.mp4 Width Size (MB) Bitrate (MBPS) MP4 1920 72.9 20 mp4 (vc_auto) 1920 7.7 2.1 webm 1920 7 2.0
  • 60. Video Sizing ReSizing Videos with Cloudinary https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA 4_vahyoz.mp4 https://res.cloudinary.com/dougsillars/video/upload/vc_auto,w_1280/v1554841934/Bidw ells_Shorty_PartA4_vahyoz.mp4 Width Size (MB) Bitrate (MBPS) MP4 1920 72.9 20 mp4 (vc_auto) 1920 1280 7.7 4.64 2.1 1.3 webm 1920 1280 7 3.9 2.0 1.0
  • 61. Video Sizing ReSizing Videos with Cloudinary https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA 4_vahyoz.mp4 https://res.cloudinary.com/dougsillars/video/upload/vc_auto,w_1280/v1554841934/Bidw ells_Shorty_PartA4_vahyoz.mp4 Width Size (MB) Bitrate (MBPS) Video Startup (s) % time <5s buffer MP4 1920 72.9 20 121 NA mp4 (vc_auto) 1920 1280 7.7 4.64 2.1 1.3 14 56% webm 1920 1280 7 3.9 2.0 1.0 11 56% Video Timing Metrics: https://dougsillars.git hub.io/StreamOrNot/
  • 62. Video Sizing ReSizing Videos with Cloudinary https://res.cloudinary.com/dougsillars/video/upload/v1554841934/Bidwells_Shorty_PartA 4_vahyoz.mp4 https://res.cloudinary.com/dougsillars/video/upload/vc_auto,w_1280/v1554841934/Bidw ells_Shorty_PartA4_vahyoz.mp4 Width Size (MB) Bitrate (MBPS) Video Startup (s) % time <5s buffer MP4 1920 72.9 20 121 NA mp4 (vc_auto) 1920 1280 7.7 4.64 2.1 1.3 14 3 56% 32% webm 1920 1280 7 3.9 2.0 1.0 11 3 56% 20% Video Timing Metrics: https://dougsillars.git hub.io/StreamOrNot/
  • 63. Video Sizing: One More Thing
  • 64. Video Sizing: One More Thing <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> </video>
  • 65. Video Sizing: One More Thing Size Bitrate mp4 73 MB 20 MBPS webm 34.7 MB 9.7 MBPS <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> </video>
  • 66. Video Sizing: One More Thing Size Bitrate mp4 73 MB 20 MBPS webm 34.7 MB 9.7 MBPS <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> </video>
  • 67. Video Sizing: One More Thing Size Bitrate mp4 73 MB 20 MBPS webm 34.7 MB 9.7 MBPS <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> </video>
  • 68. Video Sizing: One More Thing <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> </video> Size Bitrate mp4 73 MB 20 MBPS webm 34.7 MB 9.7 MBPS
  • 69. Video Sizing: One More Thing <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> </video> Size Bitrate mp4 73 MB 20 MBPS webm 34.7 MB 9.7 MBPS AWS S3 costs $0.09/GB data transfer
  • 70. Video Sizing: One More Thing <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> </video> Size Bitrate S3 load cost mp4 73 MB 20 MBPS $0.006 webm 34.7 MB 9.7 MBPS $0.003 Mp4 (1280px) 4.64 MB 1.3 MBPS $0.0004
  • 71. Video Sizing: One More Thing <video class="hero-canvas__video" loop muted preload="auto" poster="/assets/Uploads/banners/Bidwells_Shorty_PartB2.jpg"> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.mp4" type="video/mp4" /> <source src="https://s3-eu-west-1.amazonaws.com/bidwells-website/homepage-vid eos/Bidwells_Shorty_PartB4.webm" type="video/webm" /> </video> Size Bitrate S3 load cost mp4 73 MB 20 MBPS $0.006 webm 34.7 MB 9.7 MBPS $0.003 Mp4 (1280px) 4.64 MB 1.3 MBPS $0.0004 Lower your AWS bill by 15x with this one simple trick!
  • 75. Measuring Video Clarity Compare original reference video to smaller version:
  • 76. Measuring Video Clarity Compare original reference video to smaller version: Structural SIMularity (SSIM) Peak Signal to Noise (PSNR) Video MultiMethod Assessment Fusion (VMAF) MOS SSIM PSNR (db) VMAF 5 (excellent) >0.99 50 >95 4 (good) 0.95-0.99 38 3 (fair) 0.88 - 0.95 30 70 2 (poor) 0.5 - 0.88 22 1 (bad) <0.5 15 20
  • 77. Measuring Video Clarity Compare original reference video to smaller version: SSIM, PSNR are available in FFMPEG VMAF can be added to FFMPEG
  • 78. Measuring Video Clarity Compare original reference video to smaller version: SSIM, PSNR are available in FFMPEG VMAF can be added to FFMPEG
  • 79. Measuring Video Clarity ffmpeg -i <smallervideo> -i <biggervideo> -lavfi libvmaf="ssim=true:psnr=true:phone_model=true" -f null –
  • 80. Measuring Video Clarity ffmpeg -i <smallervideo> -i <biggervideo> -lavfi libvmaf="ssim=true:psnr=true:phone_model=true" -f null – Frame by Frame comparisons: Relatively expensive!
  • 81. Session 2: Measuring Video Clarity www.streamclarity.com https://res.cloudinary.com/d ougsillars/video/upload/q_a uto,so_47,eo_53,q_99/v15 69391519/TDE3.mp4 https://res.cloudinary.com/d ougsillars/video/upload/q_a uto,so_47,eo_53/v1569391 519/TDE3.mp4
  • 82. Measuring Video Clarity www.streamclarity.com Width Size (MB) VMAF SSIM PSNR MP4 (q_99) 1280 18 100
  • 83. Measuring Video Clarity www.streamclarity.com Width Size (MB) VMAF SSIM PSNR MP4 (q_99) 1280 18 100 mp4 (q_auto) 1280 960 4.5 3 99 97 0.992 0.988 39 36 Testing at 1280x720, Video is indistinguishable from original
  • 84. Conclusion Tools: WebPageTest http://webpagetest.org Stream or Not https://dougsillars.github.io/StreamOrNot/ Stream Clarity: http://streamclarity.com FFMPEG https://ffmpeg.org Video Hosting: Cloudinary http://cloudinary.com