SlideShare a Scribd company logo
1 of 21
HTML5
Multimedia
Streaming
Niall Munro
EDINA
niall.munro@ed.ac.uk
@DevNiall
jiscmediahub.ac.uk
HTML5 VIDEO BROWSER SUPPORT
H.264 9+ - 3.0+ 2 3.1+ -
Theora - 3.5+ 3.0+ - 10.5+
WebM 9+ 1 4.0+ 6.0+
3
10.6+
1. WebM support via video element if codec is installed on the
system
2. H.264 to be dropped in order to further open standards
3. WebM QuickTime plugin available
HTML5 MEDIA FORMATS
File Format Video Codec Audio Codec
H.264 AAC
Theora Vorbis
VP8 Vorbis
VIDEO COMPRESSION FORMATS
● H.264 – Industry standard for video
compression, most widely supported codec of
the lot. Commercial users are required to pay
royalties
● Theora – originally put forward as the default
video technology for HTML5 video,
predecessor to WebM
● WebM/VP8 – open sourced by Google after
their acquisition of On2 Technologies
AUDIO COMPRESSION FORMATS
● Advanced Audio Coding (AAC) – industry
standard for audio compression,
successor to MP3? Royalty free for
distributors
● Ogg Vorbis – open source audio codec
developed by Xiph.org Foundation
ENCODING YOUR MEDIA
● FFmpeg – cross-platform multimedia
framework, supports many codecs
● ffmpeg2theora – tweaked fork of FFmpeg
● qt-faststart – Tool for optimising MP4 files for
streaming
● flvtool2 – Tool for optimising FLV files for
streaming
ENCODING YOUR MEDIA (CONT.)
Output 640x360 video at ~1024k:
MP4:
ffmpeg –i INPUT.avi –vpre libx264-baseline –s 640x360 –ac 128k –vb 896k TMP.mp4
qt-faststart TMP.mp4 OUTPUT.mp4
WebM:
ffmpeg –i INPUT.avi -vpre libvpx-360p –s 640x360 OUTPUT.webm
Theora:
ffmpeg2theora INPUT.avi –o OUTPUT.ogv –v 9
FLV:
ffmpeg -i INPUT.avi -s 640x360 -vb 896k -acodec libfaac –ab 128k –vb 896k OUTPUT.flv
flvtool2 –U OUTPUT.flv
HTML NATIVE VIDEO EXAMPLE
<video poster=“poster.png“ tabindex="0“ controls=“controls” preload="none">
<source src=“video.mp4“ type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"' />
<source src=“video.webm“ type='video/webm; codecs="vp8.0, vorbis"' />
<source src=“video.ogv“ type='video/ogg; codecs="theora, vorbis"' />
</video>
HTML FLASH VIDEO EXAMPLE
<video id=“videoplayer” poster=“poster.png“ tabindex="0“ controls=“controls” preload="none">
<!-- INCLUDE SOURCES FROM PREVIOUS SLIDE -->
<object width="640" height=“360" type="application/x-shockwave-flash” data=“flowplayer-3.2.7.swf">
<param name="movie" value="flowplayer-3.2.7.swf" />
<param name="allowfullscreen" value="true" />
<param name="flashvars" value='config={"playlist":[“poster.png",
{"url": “video.mp4","autoPlay":false,"autoBuffering":true}]}' />
</object>
</video>
HTML AUDIO EXAMPLE
<audio id="audioplayer" tabindex="0" controls="controls" preload="none">
<source src="audio.m4a" type="audio/mp4" />
<source src="autiod.oga" type="audio/ogg" />
<object width=“30" height=“360" type="application/x-shockwave-flash” data=“flowplayer-3.2.7.swf">
<param name="movie" value="flowplayer-3.2.7.swf" />
<param name="allowfullscreen" value="true" />
<param name="flashvars" value='config={"playlist":[“poster.png",
{"url": “audio.m4a","autoPlay":false,"autoBuffering":true}]}' />
</object>
</audio>
HTML5 (PSEUDO-)STREAMING
● HTTP based delivery solution, no special
control protocol required e.g. RTSP
● Byte-range requests work out of the box on
most web servers, same functionality is used
to resume downloads
● Seek points are calculated from the file
header metadata where keyframes are
mapped to byte offsets rather than time based
FLASH (PSEUDO)-STREAMING
● Flash pseudo-streaming enabled via
server modules, YouTube uses this
method to deliver their videos
● Supporting clients requests playback
offset via a URL parameter
e.g. http://example.com/media/video.mp4?start=120
FLASH (PSEUDO)-STREAMING (CONT.)
● Server reads keyframe metadata information from
resource file header to determine the byte-range
request
● Server modules available for Apache HTTP,
Lighthttpd & Nginx, IIS solutions available too
● PHP script implementations are also available,
resource heavy!
● Supporting Flash players include Flowplayer & JW
Player
FLASH (PSEUDO)-STREAMING (CONT.)
● H264 Streaming Module – includes
support for virtual video clips & adaptive
streaming
http://h264.code-shop.com/trac
● mod_flvx
http://journal.paul.querna.org/articles/2006/07/11/mod_flvx/
APACHE SERVER CONFIGURATION
LoadModule h264_streaming_module modules/mod_h264_streaming.so
AddHandler h264-streaming.extensions .mp4 .m4a
LoadModule flvx_module modules/mod_flvx.so
AddHandler flv-stream .flv
<!-- VIDEO MIMETYPES -->
AddType video/mp4 .mp4
AddType video/ogg .ogv
AddType video/webm .webm
<!-- AUDIO MIMETYPES -->
AddType audio/mp4 .m4a
AddType audio/ogg .oga
● Nginx – high performance HTTP server
developed by Igor Sysoev
● Publicly available since 2004
● Event based architecture rather than
traditional thread based architecture
● Solves C10K problem
● Supports MP4 (module) & FLV (native)
pseudo-streaming
Example configuration file:
location /demo {
limit_rate 1500k;
limit_rate_after 500k;
alias /path/to/media;
location ~ .flv$ {
flv;
}
location ~ .mp4$ {
mp4;
}
location ~ .m4a$ {
mp4;
}
}
Securing Media with X-Accel-Redirect:
location /protected/ { # /protected, only available to internal redirects
internal;
root /hidden/path/to/media/;
}
PHP example:
$file = $_GET['file'];
if( authenticated )
header('X-Accel-Redirect: /protected/' . $file); // serves /hidden/path/to/media/$file
else
print '<p>Cheeky unauthenticated fool!</p>';
HTML5 MEDIA JAVASCRIPT API
var v = document.getElementsByTagName("video")[0];
v.play();
v.pause();
v.currentTime = 120; //seek to 120 seconds
//Seek attempt before media initialisation
if( v.readyState > = v.HAVE_FUTURE_DATA ) {
v.currentTime = 120;
} else {
v.play();
v.onloadedmetadata = function() { //event
v.currentTime = 120;
}
}
HTML5
Multimedia
Streaming
Niall Munro
EDINA
niall.munro@ed.ac.uk
@DevNiall

More Related Content

What's hot

Managing Installations and Provisioning of OSGi Applications - Carsten Ziegeler
Managing Installations and Provisioning of OSGi Applications - Carsten ZiegelerManaging Installations and Provisioning of OSGi Applications - Carsten Ziegeler
Managing Installations and Provisioning of OSGi Applications - Carsten Ziegelermfrancis
 
Running PHP on Windows Technical Overview
Running PHP on Windows Technical OverviewRunning PHP on Windows Technical Overview
Running PHP on Windows Technical OverviewWes Yanaga
 
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsvoip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsIñaki Baz Castillo
 
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverNginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverwruben
 
Apache Street Smarts Presentation (SANS 99)
Apache Street Smarts Presentation (SANS 99)Apache Street Smarts Presentation (SANS 99)
Apache Street Smarts Presentation (SANS 99)Michael Dobe, Ph.D.
 
Advanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream ProcessingAdvanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream ProcessingFIWARE
 
HKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRMHKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRMLinaro
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1Linaro
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11Sanjay Willie
 
HKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & Chromium
HKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & ChromiumHKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & Chromium
HKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & ChromiumLinaro
 
4. open mano set up and usage
4. open mano set up and usage4. open mano set up and usage
4. open mano set up and usagevideos
 
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.jsIñaki Baz Castillo
 
Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Reportlinuxlab_conf
 
Prizm Installation Guide
Prizm Installation GuidePrizm Installation Guide
Prizm Installation Guidevjvarenya
 
Running open source PHP applications on you IBM i
Running open source PHP applications on you IBM iRunning open source PHP applications on you IBM i
Running open source PHP applications on you IBM iProximity Group
 
OpenWRT manual
OpenWRT manualOpenWRT manual
OpenWRT manualfosk
 
TYPO3 Neos - the compendium (version 1.0.2)
TYPO3 Neos - the compendium (version 1.0.2)TYPO3 Neos - the compendium (version 1.0.2)
TYPO3 Neos - the compendium (version 1.0.2)die.agilen GmbH
 
5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Mano5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Manovideos
 
BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?Linaro
 

What's hot (20)

Managing Installations and Provisioning of OSGi Applications - Carsten Ziegeler
Managing Installations and Provisioning of OSGi Applications - Carsten ZiegelerManaging Installations and Provisioning of OSGi Applications - Carsten Ziegeler
Managing Installations and Provisioning of OSGi Applications - Carsten Ziegeler
 
Running PHP on Windows Technical Overview
Running PHP on Windows Technical OverviewRunning PHP on Windows Technical Overview
Running PHP on Windows Technical Overview
 
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.jsvoip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
voip2day 2016: mediasoup, powerful WebRTC SFU for Node.js
 
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web serverNginx 0.8.x + php 5.2.13 (fast cgi) setup web server
Nginx 0.8.x + php 5.2.13 (fast cgi) setup web server
 
Apache Street Smarts Presentation (SANS 99)
Apache Street Smarts Presentation (SANS 99)Apache Street Smarts Presentation (SANS 99)
Apache Street Smarts Presentation (SANS 99)
 
Advanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream ProcessingAdvanced Kurento Real Time Media Stream Processing
Advanced Kurento Real Time Media Stream Processing
 
HKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRMHKG18-203 - Overview of Linaro DRM
HKG18-203 - Overview of Linaro DRM
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
 
WebRTC & Asterisk 11
WebRTC & Asterisk 11WebRTC & Asterisk 11
WebRTC & Asterisk 11
 
HKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & Chromium
HKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & ChromiumHKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & Chromium
HKG18-217 - OpenCDM/CDMi (Multi DRM) work with WPE & Chromium
 
4. open mano set up and usage
4. open mano set up and usage4. open mano set up and usage
4. open mano set up and usage
 
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
[ElastixWorld 2016] mediasoup: Powerful WebRTC SFU for Node.js
 
Jonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel ReportJonathan Corbet - Keynote: The Kernel Report
Jonathan Corbet - Keynote: The Kernel Report
 
Prizm Installation Guide
Prizm Installation GuidePrizm Installation Guide
Prizm Installation Guide
 
Running open source PHP applications on you IBM i
Running open source PHP applications on you IBM iRunning open source PHP applications on you IBM i
Running open source PHP applications on you IBM i
 
Install dev stack
Install dev stackInstall dev stack
Install dev stack
 
OpenWRT manual
OpenWRT manualOpenWRT manual
OpenWRT manual
 
TYPO3 Neos - the compendium (version 1.0.2)
TYPO3 Neos - the compendium (version 1.0.2)TYPO3 Neos - the compendium (version 1.0.2)
TYPO3 Neos - the compendium (version 1.0.2)
 
5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Mano5. hands on - building local development environment with Open Mano
5. hands on - building local development environment with Open Mano
 
BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?BKK16-212: What's broken on ARM64?
BKK16-212: What's broken on ARM64?
 

Viewers also liked

Digital maps: past, present; on your desktop and in the palm of your hand
Digital maps: past, present; on your desktop and in the palm of your handDigital maps: past, present; on your desktop and in the palm of your hand
Digital maps: past, present; on your desktop and in the palm of your handEDINA, University of Edinburgh
 
EPSRC research data expectations and PURE for datasets
EPSRC research data expectations and PURE for datasetsEPSRC research data expectations and PURE for datasets
EPSRC research data expectations and PURE for datasetsEDINA, University of Edinburgh
 
Research Data Services @ Edinburgh: MANTRA & Edinburgh DataShare
Research Data Services @ Edinburgh: MANTRA & Edinburgh DataShareResearch Data Services @ Edinburgh: MANTRA & Edinburgh DataShare
Research Data Services @ Edinburgh: MANTRA & Edinburgh DataShareHistoric Environment Scotland
 
Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...
Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...
Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...COBWEB Project
 
RJ Broker: Automating Delivery of Research Output to Repositories
RJ Broker: Automating Delivery of Research Output to RepositoriesRJ Broker: Automating Delivery of Research Output to Repositories
RJ Broker: Automating Delivery of Research Output to RepositoriesEDINA, University of Edinburgh
 
What’s Different about the Digital: Community Action via UK LOCKSS Alliance
What’s Different about the Digital: Community Action via UK LOCKSS AllianceWhat’s Different about the Digital: Community Action via UK LOCKSS Alliance
What’s Different about the Digital: Community Action via UK LOCKSS AllianceEDINA, University of Edinburgh
 
Licence to Share: Research and Collaboration through Go-Geo! and ShareGeo
Licence to Share: Research and Collaboration through Go-Geo! and ShareGeoLicence to Share: Research and Collaboration through Go-Geo! and ShareGeo
Licence to Share: Research and Collaboration through Go-Geo! and ShareGeoEDINA, University of Edinburgh
 
Insight into using digital media - Jisc MediaHub
Insight into using digital media - Jisc MediaHubInsight into using digital media - Jisc MediaHub
Insight into using digital media - Jisc MediaHubJisc RSC East Midlands
 
Creating a Data Management Plan for your Grant Application
Creating a Data Management Plan for your Grant ApplicationCreating a Data Management Plan for your Grant Application
Creating a Data Management Plan for your Grant ApplicationEDINA, University of Edinburgh
 

Viewers also liked (20)

Location Based Services Without the Cocoa
Location Based Services Without the CocoaLocation Based Services Without the Cocoa
Location Based Services Without the Cocoa
 
Using data from Digimap in ArcGIS
Using data from Digimap in ArcGISUsing data from Digimap in ArcGIS
Using data from Digimap in ArcGIS
 
Digital maps: past, present; on your desktop and in the palm of your hand
Digital maps: past, present; on your desktop and in the palm of your handDigital maps: past, present; on your desktop and in the palm of your hand
Digital maps: past, present; on your desktop and in the palm of your hand
 
RDM Programme @ Edinburgh: Data Librarian Experience
RDM Programme @ Edinburgh: Data Librarian ExperienceRDM Programme @ Edinburgh: Data Librarian Experience
RDM Programme @ Edinburgh: Data Librarian Experience
 
EPSRC research data expectations and PURE for datasets
EPSRC research data expectations and PURE for datasetsEPSRC research data expectations and PURE for datasets
EPSRC research data expectations and PURE for datasets
 
An Introduction to 2011 Census Geography
An Introduction to 2011 Census GeographyAn Introduction to 2011 Census Geography
An Introduction to 2011 Census Geography
 
Research Data Services @ Edinburgh: MANTRA & Edinburgh DataShare
Research Data Services @ Edinburgh: MANTRA & Edinburgh DataShareResearch Data Services @ Edinburgh: MANTRA & Edinburgh DataShare
Research Data Services @ Edinburgh: MANTRA & Edinburgh DataShare
 
Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...
Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...
Attention Citizens! Presentation as part of the Citizen Science Workshop - Ni...
 
EDINA / Data Library Overview
EDINA / Data Library OverviewEDINA / Data Library Overview
EDINA / Data Library Overview
 
Digimap Essentials
Digimap EssentialsDigimap Essentials
Digimap Essentials
 
Preserving the Integrity of the Scholarly Record
Preserving the Integrity of the Scholarly RecordPreserving the Integrity of the Scholarly Record
Preserving the Integrity of the Scholarly Record
 
Discover edina programmefinalmeeting-28-sep-2012
Discover edina programmefinalmeeting-28-sep-2012Discover edina programmefinalmeeting-28-sep-2012
Discover edina programmefinalmeeting-28-sep-2012
 
RJ Broker: Automating Delivery of Research Output to Repositories
RJ Broker: Automating Delivery of Research Output to RepositoriesRJ Broker: Automating Delivery of Research Output to Repositories
RJ Broker: Automating Delivery of Research Output to Repositories
 
What’s Different about the Digital: Community Action via UK LOCKSS Alliance
What’s Different about the Digital: Community Action via UK LOCKSS AllianceWhat’s Different about the Digital: Community Action via UK LOCKSS Alliance
What’s Different about the Digital: Community Action via UK LOCKSS Alliance
 
Licence to Share: Research and Collaboration through Go-Geo! and ShareGeo
Licence to Share: Research and Collaboration through Go-Geo! and ShareGeoLicence to Share: Research and Collaboration through Go-Geo! and ShareGeo
Licence to Share: Research and Collaboration through Go-Geo! and ShareGeo
 
IGIBS - BDB Research Forum, May 2011
IGIBS - BDB Research Forum, May 2011IGIBS - BDB Research Forum, May 2011
IGIBS - BDB Research Forum, May 2011
 
AddressingHistory: crowdsourcing the past
AddressingHistory: crowdsourcing the pastAddressingHistory: crowdsourcing the past
AddressingHistory: crowdsourcing the past
 
Insight into using digital media - Jisc MediaHub
Insight into using digital media - Jisc MediaHubInsight into using digital media - Jisc MediaHub
Insight into using digital media - Jisc MediaHub
 
Creating a Data Management Plan for your Grant Application
Creating a Data Management Plan for your Grant ApplicationCreating a Data Management Plan for your Grant Application
Creating a Data Management Plan for your Grant Application
 
A Importância da IDE-a no Reino-Unido
A Importância da IDE-a no Reino-UnidoA Importância da IDE-a no Reino-Unido
A Importância da IDE-a no Reino-Unido
 

Similar to HTML5 Multimedia Streaming

Webvideo, FFmpeg und Drupal
Webvideo, FFmpeg und DrupalWebvideo, FFmpeg und Drupal
Webvideo, FFmpeg und DrupalWalter Ebert
 
HTML5 Multimedia Streaming
HTML5 Multimedia StreamingHTML5 Multimedia Streaming
HTML5 Multimedia StreamingNiall Munro
 
Flash and HTML5 Video
Flash and HTML5 VideoFlash and HTML5 Video
Flash and HTML5 VideoYoss Cohen
 
HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014RZasadzinski
 
HTML5 Multimedia Support
HTML5 Multimedia SupportHTML5 Multimedia Support
HTML5 Multimedia SupportHenry Osborne
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video TutorialSilvia Pfeiffer
 
Nuxeo - Digital Asset Management
Nuxeo - Digital Asset ManagementNuxeo - Digital Asset Management
Nuxeo - Digital Asset ManagementThomas Roger
 
Internet Archive Video Presentation
Internet Archive Video Presentation Internet Archive Video Presentation
Internet Archive Video Presentation tracey jaquith
 
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 goingbrucelawson
 
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 goingbrucelawson
 
[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutes
[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutes[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutes
[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutesAiTi Education
 
Vietnam Mobile Day 2013: How to build video streaming server in 15 mins
Vietnam Mobile Day 2013: How to build video streaming server in 15 minsVietnam Mobile Day 2013: How to build video streaming server in 15 mins
Vietnam Mobile Day 2013: How to build video streaming server in 15 minsGameLandVN
 
HTML5 Multimedia Accessibility
HTML5 Multimedia AccessibilityHTML5 Multimedia Accessibility
HTML5 Multimedia Accessibilitybrucelawson
 
WebRTC and the Codec War
WebRTC and the Codec WarWebRTC and the Codec War
WebRTC and the Codec WarWeemo, Inc.
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Videosteveheffernan
 
HTML5 Video Presentation
HTML5 Video PresentationHTML5 Video Presentation
HTML5 Video Presentationsith33
 

Similar to HTML5 Multimedia Streaming (20)

Webvideo, FFmpeg und Drupal
Webvideo, FFmpeg und DrupalWebvideo, FFmpeg und Drupal
Webvideo, FFmpeg und Drupal
 
HTML5 Multimedia Streaming
HTML5 Multimedia StreamingHTML5 Multimedia Streaming
HTML5 Multimedia Streaming
 
Html5video
Html5videoHtml5video
Html5video
 
Flash and HTML5 Video
Flash and HTML5 VideoFlash and HTML5 Video
Flash and HTML5 Video
 
HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014HTML5 video & Amazon elastic transcoder - FCIP August 2014
HTML5 video & Amazon elastic transcoder - FCIP August 2014
 
HTML5 Multimedia Support
HTML5 Multimedia SupportHTML5 Multimedia Support
HTML5 Multimedia Support
 
Html5 Open Video Tutorial
Html5 Open Video TutorialHtml5 Open Video Tutorial
Html5 Open Video Tutorial
 
Nuxeo - Digital Asset Management
Nuxeo - Digital Asset ManagementNuxeo - Digital Asset Management
Nuxeo - Digital Asset Management
 
Looking into HTML5 + CSS3
Looking into HTML5 + CSS3Looking into HTML5 + CSS3
Looking into HTML5 + CSS3
 
Internet Archive Video Presentation
Internet Archive Video Presentation Internet Archive Video Presentation
Internet Archive Video Presentation
 
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
 
Mm sys 2013-demo
Mm sys 2013-demoMm sys 2013-demo
Mm sys 2013-demo
 
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
 
[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutes
[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutes[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutes
[Vietnam Mobile Day 2013] - How to build video streaming server in 15 minutes
 
Vietnam Mobile Day 2013: How to build video streaming server in 15 mins
Vietnam Mobile Day 2013: How to build video streaming server in 15 minsVietnam Mobile Day 2013: How to build video streaming server in 15 mins
Vietnam Mobile Day 2013: How to build video streaming server in 15 mins
 
HTML5 Multimedia Accessibility
HTML5 Multimedia AccessibilityHTML5 Multimedia Accessibility
HTML5 Multimedia Accessibility
 
WebRTC and the Codec War
WebRTC and the Codec WarWebRTC and the Codec War
WebRTC and the Codec War
 
Upgrade to HTML5 Video
Upgrade to HTML5 VideoUpgrade to HTML5 Video
Upgrade to HTML5 Video
 
HTML5 Video Presentation
HTML5 Video PresentationHTML5 Video Presentation
HTML5 Video Presentation
 
Html5 Theora
Html5 TheoraHtml5 Theora
Html5 Theora
 

More from EDINA, University of Edinburgh

We have the technology... We have the data... What next?
We have the technology... We have the data... What next?We have the technology... We have the data... What next?
We have the technology... We have the data... What next?EDINA, University of Edinburgh
 
Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...
Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...
Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...EDINA, University of Edinburgh
 
If I Googled You, What Would I Find? Managing your digital footprint - Nicola...
If I Googled You, What Would I Find? Managing your digital footprint - Nicola...If I Googled You, What Would I Find? Managing your digital footprint - Nicola...
If I Googled You, What Would I Find? Managing your digital footprint - Nicola...EDINA, University of Edinburgh
 
Managing your Digital Footprint : Taking control of the metadata and tracks a...
Managing your Digital Footprint : Taking control of the metadata and tracks a...Managing your Digital Footprint : Taking control of the metadata and tracks a...
Managing your Digital Footprint : Taking control of the metadata and tracks a...EDINA, University of Edinburgh
 
Social media and blogging to develop and communicate research in the arts and...
Social media and blogging to develop and communicate research in the arts and...Social media and blogging to develop and communicate research in the arts and...
Social media and blogging to develop and communicate research in the arts and...EDINA, University of Edinburgh
 
Enhancing your research impact through social media - Nicola Osborne
Enhancing your research impact through social media - Nicola OsborneEnhancing your research impact through social media - Nicola Osborne
Enhancing your research impact through social media - Nicola OsborneEDINA, University of Edinburgh
 
Social Media in Marketing in Support of Your Personal Brand - Nicola Osborne
Social Media in Marketing in Support of Your Personal Brand - Nicola OsborneSocial Media in Marketing in Support of Your Personal Brand - Nicola Osborne
Social Media in Marketing in Support of Your Personal Brand - Nicola OsborneEDINA, University of Edinburgh
 
Best Practice for Social Media in Teaching & Learning Contexts - Nicola Osborne
Best Practice for Social Media in Teaching & Learning Contexts - Nicola OsborneBest Practice for Social Media in Teaching & Learning Contexts - Nicola Osborne
Best Practice for Social Media in Teaching & Learning Contexts - Nicola OsborneEDINA, University of Edinburgh
 
Introduction to Edinburgh University Data Library and national data services
Introduction to Edinburgh University Data Library and national data servicesIntroduction to Edinburgh University Data Library and national data services
Introduction to Edinburgh University Data Library and national data servicesEDINA, University of Edinburgh
 
Digimap for Schools: Introduction to an ICT based cross curricular resource f...
Digimap for Schools: Introduction to an ICT based cross curricular resource f...Digimap for Schools: Introduction to an ICT based cross curricular resource f...
Digimap for Schools: Introduction to an ICT based cross curricular resource f...EDINA, University of Edinburgh
 

More from EDINA, University of Edinburgh (20)

The Making of the English Landscape:
The Making of the English Landscape: The Making of the English Landscape:
The Making of the English Landscape:
 
Spatial Data, Spatial Humanities
Spatial Data, Spatial HumanitiesSpatial Data, Spatial Humanities
Spatial Data, Spatial Humanities
 
Land Cover Map 2015
Land Cover Map 2015Land Cover Map 2015
Land Cover Map 2015
 
We have the technology... We have the data... What next?
We have the technology... We have the data... What next?We have the technology... We have the data... What next?
We have the technology... We have the data... What next?
 
Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...
Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...
Reference Rot in Theses: A HiberActive Pilot - 10x10 session for Repository F...
 
GeoForum EDINA report 2017
GeoForum EDINA report 2017GeoForum EDINA report 2017
GeoForum EDINA report 2017
 
If I Googled You, What Would I Find? Managing your digital footprint - Nicola...
If I Googled You, What Would I Find? Managing your digital footprint - Nicola...If I Googled You, What Would I Find? Managing your digital footprint - Nicola...
If I Googled You, What Would I Find? Managing your digital footprint - Nicola...
 
Moray housemarch2017
Moray housemarch2017Moray housemarch2017
Moray housemarch2017
 
Uniof stirlingmarch2017secondary
Uniof stirlingmarch2017secondaryUniof stirlingmarch2017secondary
Uniof stirlingmarch2017secondary
 
Uniof glasgow jan2017_secondary
Uniof glasgow jan2017_secondaryUniof glasgow jan2017_secondary
Uniof glasgow jan2017_secondary
 
Managing your Digital Footprint : Taking control of the metadata and tracks a...
Managing your Digital Footprint : Taking control of the metadata and tracks a...Managing your Digital Footprint : Taking control of the metadata and tracks a...
Managing your Digital Footprint : Taking control of the metadata and tracks a...
 
Social media and blogging to develop and communicate research in the arts and...
Social media and blogging to develop and communicate research in the arts and...Social media and blogging to develop and communicate research in the arts and...
Social media and blogging to develop and communicate research in the arts and...
 
Enhancing your research impact through social media - Nicola Osborne
Enhancing your research impact through social media - Nicola OsborneEnhancing your research impact through social media - Nicola Osborne
Enhancing your research impact through social media - Nicola Osborne
 
Social Media in Marketing in Support of Your Personal Brand - Nicola Osborne
Social Media in Marketing in Support of Your Personal Brand - Nicola OsborneSocial Media in Marketing in Support of Your Personal Brand - Nicola Osborne
Social Media in Marketing in Support of Your Personal Brand - Nicola Osborne
 
Best Practice for Social Media in Teaching & Learning Contexts - Nicola Osborne
Best Practice for Social Media in Teaching & Learning Contexts - Nicola OsborneBest Practice for Social Media in Teaching & Learning Contexts - Nicola Osborne
Best Practice for Social Media in Teaching & Learning Contexts - Nicola Osborne
 
SCURL and SUNCAT serials holdings comparison service
SCURL and SUNCAT serials holdings comparison serviceSCURL and SUNCAT serials holdings comparison service
SCURL and SUNCAT serials holdings comparison service
 
Big data in Digimap
Big data in DigimapBig data in Digimap
Big data in Digimap
 
Introduction to Edinburgh University Data Library and national data services
Introduction to Edinburgh University Data Library and national data servicesIntroduction to Edinburgh University Data Library and national data services
Introduction to Edinburgh University Data Library and national data services
 
Digimap for Schools: Introduction to an ICT based cross curricular resource f...
Digimap for Schools: Introduction to an ICT based cross curricular resource f...Digimap for Schools: Introduction to an ICT based cross curricular resource f...
Digimap for Schools: Introduction to an ICT based cross curricular resource f...
 
Digimap Update - Geoforum 2016 - Guy McGarva
Digimap Update - Geoforum 2016 - Guy McGarvaDigimap Update - Geoforum 2016 - Guy McGarva
Digimap Update - Geoforum 2016 - Guy McGarva
 

Recently uploaded

Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701bronxfugly43
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxnegromaestrong
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxdhanalakshmis0310
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 

Recently uploaded (20)

Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701ComPTIA Overview | Comptia Security+ Book SY0-701
ComPTIA Overview | Comptia Security+ Book SY0-701
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 

HTML5 Multimedia Streaming

  • 3. HTML5 VIDEO BROWSER SUPPORT H.264 9+ - 3.0+ 2 3.1+ - Theora - 3.5+ 3.0+ - 10.5+ WebM 9+ 1 4.0+ 6.0+ 3 10.6+ 1. WebM support via video element if codec is installed on the system 2. H.264 to be dropped in order to further open standards 3. WebM QuickTime plugin available
  • 4. HTML5 MEDIA FORMATS File Format Video Codec Audio Codec H.264 AAC Theora Vorbis VP8 Vorbis
  • 5. VIDEO COMPRESSION FORMATS ● H.264 – Industry standard for video compression, most widely supported codec of the lot. Commercial users are required to pay royalties ● Theora – originally put forward as the default video technology for HTML5 video, predecessor to WebM ● WebM/VP8 – open sourced by Google after their acquisition of On2 Technologies
  • 6. AUDIO COMPRESSION FORMATS ● Advanced Audio Coding (AAC) – industry standard for audio compression, successor to MP3? Royalty free for distributors ● Ogg Vorbis – open source audio codec developed by Xiph.org Foundation
  • 7. ENCODING YOUR MEDIA ● FFmpeg – cross-platform multimedia framework, supports many codecs ● ffmpeg2theora – tweaked fork of FFmpeg ● qt-faststart – Tool for optimising MP4 files for streaming ● flvtool2 – Tool for optimising FLV files for streaming
  • 8. ENCODING YOUR MEDIA (CONT.) Output 640x360 video at ~1024k: MP4: ffmpeg –i INPUT.avi –vpre libx264-baseline –s 640x360 –ac 128k –vb 896k TMP.mp4 qt-faststart TMP.mp4 OUTPUT.mp4 WebM: ffmpeg –i INPUT.avi -vpre libvpx-360p –s 640x360 OUTPUT.webm Theora: ffmpeg2theora INPUT.avi –o OUTPUT.ogv –v 9 FLV: ffmpeg -i INPUT.avi -s 640x360 -vb 896k -acodec libfaac –ab 128k –vb 896k OUTPUT.flv flvtool2 –U OUTPUT.flv
  • 9. HTML NATIVE VIDEO EXAMPLE <video poster=“poster.png“ tabindex="0“ controls=“controls” preload="none"> <source src=“video.mp4“ type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"' /> <source src=“video.webm“ type='video/webm; codecs="vp8.0, vorbis"' /> <source src=“video.ogv“ type='video/ogg; codecs="theora, vorbis"' /> </video>
  • 10. HTML FLASH VIDEO EXAMPLE <video id=“videoplayer” poster=“poster.png“ tabindex="0“ controls=“controls” preload="none"> <!-- INCLUDE SOURCES FROM PREVIOUS SLIDE --> <object width="640" height=“360" type="application/x-shockwave-flash” data=“flowplayer-3.2.7.swf"> <param name="movie" value="flowplayer-3.2.7.swf" /> <param name="allowfullscreen" value="true" /> <param name="flashvars" value='config={"playlist":[“poster.png", {"url": “video.mp4","autoPlay":false,"autoBuffering":true}]}' /> </object> </video>
  • 11. HTML AUDIO EXAMPLE <audio id="audioplayer" tabindex="0" controls="controls" preload="none"> <source src="audio.m4a" type="audio/mp4" /> <source src="autiod.oga" type="audio/ogg" /> <object width=“30" height=“360" type="application/x-shockwave-flash” data=“flowplayer-3.2.7.swf"> <param name="movie" value="flowplayer-3.2.7.swf" /> <param name="allowfullscreen" value="true" /> <param name="flashvars" value='config={"playlist":[“poster.png", {"url": “audio.m4a","autoPlay":false,"autoBuffering":true}]}' /> </object> </audio>
  • 12. HTML5 (PSEUDO-)STREAMING ● HTTP based delivery solution, no special control protocol required e.g. RTSP ● Byte-range requests work out of the box on most web servers, same functionality is used to resume downloads ● Seek points are calculated from the file header metadata where keyframes are mapped to byte offsets rather than time based
  • 13. FLASH (PSEUDO)-STREAMING ● Flash pseudo-streaming enabled via server modules, YouTube uses this method to deliver their videos ● Supporting clients requests playback offset via a URL parameter e.g. http://example.com/media/video.mp4?start=120
  • 14. FLASH (PSEUDO)-STREAMING (CONT.) ● Server reads keyframe metadata information from resource file header to determine the byte-range request ● Server modules available for Apache HTTP, Lighthttpd & Nginx, IIS solutions available too ● PHP script implementations are also available, resource heavy! ● Supporting Flash players include Flowplayer & JW Player
  • 15. FLASH (PSEUDO)-STREAMING (CONT.) ● H264 Streaming Module – includes support for virtual video clips & adaptive streaming http://h264.code-shop.com/trac ● mod_flvx http://journal.paul.querna.org/articles/2006/07/11/mod_flvx/
  • 16. APACHE SERVER CONFIGURATION LoadModule h264_streaming_module modules/mod_h264_streaming.so AddHandler h264-streaming.extensions .mp4 .m4a LoadModule flvx_module modules/mod_flvx.so AddHandler flv-stream .flv <!-- VIDEO MIMETYPES --> AddType video/mp4 .mp4 AddType video/ogg .ogv AddType video/webm .webm <!-- AUDIO MIMETYPES --> AddType audio/mp4 .m4a AddType audio/ogg .oga
  • 17. ● Nginx – high performance HTTP server developed by Igor Sysoev ● Publicly available since 2004 ● Event based architecture rather than traditional thread based architecture ● Solves C10K problem ● Supports MP4 (module) & FLV (native) pseudo-streaming
  • 18. Example configuration file: location /demo { limit_rate 1500k; limit_rate_after 500k; alias /path/to/media; location ~ .flv$ { flv; } location ~ .mp4$ { mp4; } location ~ .m4a$ { mp4; } }
  • 19. Securing Media with X-Accel-Redirect: location /protected/ { # /protected, only available to internal redirects internal; root /hidden/path/to/media/; } PHP example: $file = $_GET['file']; if( authenticated ) header('X-Accel-Redirect: /protected/' . $file); // serves /hidden/path/to/media/$file else print '<p>Cheeky unauthenticated fool!</p>';
  • 20. HTML5 MEDIA JAVASCRIPT API var v = document.getElementsByTagName("video")[0]; v.play(); v.pause(); v.currentTime = 120; //seek to 120 seconds //Seek attempt before media initialisation if( v.readyState > = v.HAVE_FUTURE_DATA ) { v.currentTime = 120; } else { v.play(); v.onloadedmetadata = function() { //event v.currentTime = 120; } }