SlideShare a Scribd company logo
Audio
&Video
in HTML5

Aaron Gustafson
Easy Designs, LLC
slideshare.net/AaronGustafson
Audio & Video




                2
Audio & Video




“I want to see
   the end of
  the plug-in”
         —HTML5
Audio & Video




We’re almost there
Audio & Video




  Older browsers
still need a fallback
Audio & Video




  Older browsers
still need a fallback
      (Usually Flash)
Audio & Video




Music to our ears
Audio & Video




Can you hear me now?
The audio element
<audio src="my.oga" controls="controls"></audio>
Audio & Video




Can you hear me now?
    Browser            .aac   .mp3   .oga    .wav

Chrome 6+              YES    YES    YES       NO


Firefox 3.6+           NO      NO    YES       YES


Internet Explorer 9+   YES    YES    NO        YES


Opera 10.5+            NO      NO    YES       YES


Safari 5+              YES    YES    NO        YES
Audio & Video




Can you hear me now?
<audio controls="controls">
 <source src="my.mp3"/>
 <source src="my.oga"/>
 <!-- fallback -->
</audio>
Audio & Video




Available attributes
src
URL for the audio file.
autoplay
A boolean specifying whether or not the file should play as soon as it can.
loop
A boolean specifying whether or not playback of the file should be repeated.
controls
A boolean that tells the browser to use its default media controls.
preload
Tells the browser what to content to preload. Options: “none,” “metadata,” and “auto.”
autobuffer (deprecated)
A boolean defining whether the file should be buffered in advance. Replaced by preload.
Audio & Video




Can you hear me now?
<audio controls="controls" autobuffer="autobuffer"
        preload="auto">
 <source src="my.mp3"/>
 <source src="my.oga"/>
 <!-- fallback -->
</audio>
Audio & Video




Fallback options
<audio controls="controls" autobuffer="autobuffer"
        preload="auto">
 <source src="my.mp3"/>
 <source src="my.oga"/>
 <ul>
   <li><a href="my.mp3">Download as audio/mp3</a></li>
   <li><a href="my.oga">Download as audio/ogg</a></li>
 </ul>
</audio>
Audio & Video




Fallback options
<audio controls="controls" autobuffer="autobuffer"
        preload="auto">
 <source src="my.mp3"/>
 <source src="my.oga"/>
 <object …>
   <!-- flash player goes here -->
 </object>
</audio>
Audio & Video




Fallback options
$('audio').each(function(){
   var $audio = $(this), media = {}, formats = [];
   $audio.find('source').each(function(){
     var src = $(this).attr('src'),
         ext = src.split('.').pop();
     media[ext] = src;
     formats.push(ext);
   });
    $audio.jPlayer({
     swfPath: '/vendors/jPlayer',
     ready:    function(){
       $audio.jPlayer('setMedia', media);
     },
     supplied: formats.join(', ')
   });
 });
                                                     Using jQuery & jPlayer
Audio & Video




Roll your own
$('audio').each(function(){
   var audio = this,
   $button = $('<button>Play</button>')
               .click(function(){
                  audio.play();
                });
   $(this)
    .removeAttr('controls')
    .after($button);
 });
                                             Using jQuery
Audio & Video




Opiate of the masses
Audio & Video




Elementary, my dear Watson
The video element
<video src="my.ogv" controls="controls"></video>
Audio & Video




Not so elementary
Video file = container file (like ZIP)

๏ 1 video track
๏ 1 (or more) audio tracks
๏ metadata
๏ subtitle/caption tracks (optional)
Audio & Video




Not so elementary
Video formats
Flash Video (.flv)
Prior to 2008, the only video format supported in Adobe Flash.

MPEG 4 (.m4v or .mp4)
Based on QuickTime; iTunes uses this format.

Ogg (.ogv)
Open source container format.

WebM (.webm)
New format announced in May 2010.
Audio & Video




Not so elementary
Video codecs
H.264
Used primarily in MPEG 4. Only video codec natively supported on iOS. Patented.

Theora
Used primarily in Ogg. Royalty free. Supported in Firefox 3.5+ (in Ogg).

VP8
Used primarily in WebM. Owned by Google, but licensed royalty-free.
Audio & Video




Not so elementary
Audio codecs
MP3
Nearly universal in usage, but was part of FLV. Patented.

AAC (Advanced Audio Coding)
Used primarily in MP4. Patented.

Vorbis
Used in Ogg audio & video as well as WebM. Royalty-free.
Audio & Video




Not so elementary
          Browser    .m4v               .ogv            .webm
                    (AAC + H.264)   (Vorbis + Theora)   (Vorbis + VP8)


Chrome                   3+               3+                 6+
                      (for now)



Firefox                 NO               3.5+                4+


Internet Explorer       9+                NO              MAYBE


Opera                   NO              10.5+              10.6+


Safari                  3.1+           MAYBE              MAYBE
Audio & Video




Format juggling
<video controls="controls" width="640" height="480">
 <source src="my.m4v"/>
 <source src="my.webm"/>
 <source src="my.ogv"/>
 <!-- fallback -->
</video>
Audio & Video




A good first impression
<video controls="controls" width="640" height="480"
        poster="my.png">
 <source src="my.m4v"/>
 <source src="my.webm"/>
 <source src="my.ogv"/>
 <!-- fallback -->
</video>
Audio & Video




Kindness to strangers
 <video controls="controls" width="640" height="480"
         poster="my.png">
  <source src="my.m4v"
            type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'/>
  <source src="my.webm"
            type='video/webm; codecs="vp8, vorbis"'/>
  <source src="my.ogv"
            type='video/ogg; codecs="theora, vorbis"'/>
  <!-- fallback -->
 </video>

Note: The MPEG 4 codec will depend on the encoding “profiles” you use.
Audio & Video




Available attributes
src
URL for the audio file.
autoplay
A boolean specifying whether or not the file should play as soon as it can.
loop
A boolean specifying whether or not playback of the file should be repeated.
controls
A boolean that tells the browser to use its default media controls.
poster
The image to be shown while the video is not activated.
preload
Tells the browser what to content to preload. Options: “none,” “metadata,” and “auto.”
autobuffer (deprecated)
A boolean defining whether the file should be buffered in advance. Replaced by preload.
Audio & Video




No MIME, no service
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm
Audio & Video




Fallback options
<video width="600" height="400" poster="/r/2-5.png"
        controls="controls" preload="none">
 <source src="/r/2-5.m4v" type="video/mp4"/>
 <source src="/r/2-5.webm" type="video/webm"/>
 <source src="/r/2-5.ogv" type="video/ogg"/>
 <img src="/r/2-5.png" width="600" height="400" alt=""/>
 <ul>
   <li><a href="/r/2-5.m4v">Download as video/mp4</a></li>
   <li><a href="/r/2-5.webm">Download as video/webm</a></li>
   <li><a href="/r/2-5.ogv">Download as video/ogg</a></li>
 </ul>
</video>
Audio & Video




Fallback options
<video width="600" height="400" poster="/r/2-5.png"
       controls="controls" preload="none">
 <source src="/r/2-5.m4v" type="video/mp4"/>
 <source src="/r/2-5.webm" type="video/webm"/>
 <source src="/r/2-5.ogv" type="video/ogg"/>
 <object width="600" height="400"
         type="application/x-shockwave-flash"
         data="flowplayer-3.2.1.swf">
   <param name="movie" value="flowplayer-3.2.1.swf"/>
   <param name="allowfullscreen" value="true"/>
   <param name="flashvars" value='config={"clip": {"url":
           "/r/2-5.m4v", "autoPlay":false,
           "autoBuffering":true}}'/>
   <img src="/r/2-5.png" width="600" height="400" alt=""/>
   <ul><!-- links --></ul>
 </object>
</video>
Audio & Video




How the sausage is made
Audio & Video




Tools of the trade

                     RoadMovie
   Firefogg
Audio & Video




Working with RoadMovie
Audio & Video




Working with RoadMovie
Audio & Video




Working with RoadMovie
Audio & Video




Working with RoadMovie
Subtitle formats
SubRip (.srt)
SubViewer (.sub)
SubStation Alpha (.ssa/.ass)
MicroDVD
Audio & Video




Working with RoadMovie
Subtitle formats
SubRip (.srt)

 1
 00:01:31,041 --> 00:01:32,000
 Hello?

 2
 00:02:10,164 --> 00:02:12,082
 Good morning, is your mother in?
Audio & Video




Working with RoadMovie
Subtitle formats
SubViewer (.sub)

 00:01:31.04,00:01:32.00
 Hello?

 00:02:10.16,00:02:12.08
 Good morning, is your mother in?
Audio & Video




Working with RoadMovie
Audio & Video




Working with Firefogg
Audio & Video




Working with Firefogg
Audio & Video




Working with Firefogg
Audio & Video




Working with Firefogg
Audio & Video




Working with Firefogg
Audio & Video




Working with Firefogg
Audio & Video




Service please
Audio & Video




The Future: Media Fragments
// temporal
http://www.example.com/video.ogv#t=10,20

// Live streaming
http://www.example.com/video.ogv#t=clock:2009-07-26T11:19:01Z,
2009-07-26T11:20:01Z

// Rectangular region
http://www.example.com/video.ogv#xywh=160,120,320,240

// Track selection
http://www.example.com/video.ogv#track=”video”
             http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/
Audio & Video




The Future: Media Annotations
var title = song.getMediaProperty(["title"]);

if ( noErrorStatus(title[0].status) == true )
{
    // title = [ { "Title" : {
    //      "propertyName" : "title",
    //      "titleLabel" : "Artificial Horizon" ,
    //      "typeLink" : "http://www.ebu.ch/metadata/cs/
ebu_ObjectTypeCodeCS.xml#21",
    //      "typeLabel" : "Album title",
    //      "statusCode" : 200
    // } } ]
}
       http://dev.w3.org/2008/video/mediaann/mediaont-api-1.0/mediaont-api-1.0.html
Audio & Video




The Future: Timed Text
<video src="elephant.ogv" poster="elephant.png">
   <itext id="video_ar" lang="ar" type="text/srt"
          charset="Windows-1256" display="auto"
          src="elephant.ar.srt" category="SUB"></itext>
   <itext id="video_zh" lang="zh" type="text/srt"
          charset="GB18030" display="auto"
          src="elephant.zh.srt" category="SUB"></itext>
   <itext id="video_es" lang="es" type="text/srt"
          charset="ISO-8859" display="auto"
          src="elephant.es.srt" category="SUB"></itext>
   <itext id="audiodesc" lang="en" type="text/srt"
          charset="ISO-8859" display="yes"
          src="audiodescription.srt" category="TAD"></itext>
</video>
Audio & Video




The Future: Timed Text
<video src="elephant.ogv" poster="elephant.png">
   <track srclang="ar" src="elephant.ar.srt"
           label=”!"#$%&‫ ”ا‬kind="subtitles"/>
   <track srclang="zh" src="elephant.zh.srt"
          label=”汉语” kind="subtitles"/>
   <track srclang="es" src="elephant.es.srt"
          label=”Español” kind="subtitles"/>
   <track src="audiodescription.srt" kind="descriptions"
          label=”Audio Descriptions”/>
</video>
Audio & Video




The Future: Timed Text




    http://www.annodex.net/~silvia/itext/elephant_no_skin_v2.html
Audio & Video




             Slides available at
  http://slideshare.net/AaronGustafson

     This presentation is licensed under
             Creative Commons
Attribution-Noncommercial-Share Alike 3.0

               flickr Photo Credits
    “Revolutionary Technology…” by Jimee, Jackie, Tom & Asha
                   “08-jan-28” by sashafatcat
              “Revere EIGHT - 8mm…” by Kevitivity
              “Sausage Making Machinery” by erix!

More Related Content

PDF
Video Killed the Rolex Star (CocoaConf Columbus, July 2015)
PDF
Get On The Audiobus (CocoaConf Atlanta, November 2013)
PDF
Video Killed the Rolex Star (CocoaConf San Jose, November, 2015)
PDF
iOS Media APIs (MobiDevDay Detroit, May 2013)
PDF
Introduction to the Roku SDK
PDF
Building Modern Audio Apps with AVAudioEngine
PDF
Stupid Video Tricks, CocoaConf Seattle 2014
PDF
Introduction to AV Foundation
Video Killed the Rolex Star (CocoaConf Columbus, July 2015)
Get On The Audiobus (CocoaConf Atlanta, November 2013)
Video Killed the Rolex Star (CocoaConf San Jose, November, 2015)
iOS Media APIs (MobiDevDay Detroit, May 2013)
Introduction to the Roku SDK
Building Modern Audio Apps with AVAudioEngine
Stupid Video Tricks, CocoaConf Seattle 2014
Introduction to AV Foundation

What's hot (19)

PDF
Mastering Media with AV Foundation
PDF
Stupid Video Tricks, CocoaConf Las Vegas
PDF
Craft 2019 - “The Upside Down” Of The Web - Video technologies
PDF
Get On The Audiobus (CocoaConf Boston, October 2013)
PDF
Building A Streaming Apple TV App (CocoaConf San Jose, Nov 2016)
PDF
Composing and Editing Media with AV Foundation
PDF
Stupid Video Tricks (CocoaConf DC, March 2014)
PDF
How To Do A Podcast - Bsides RI 2013
PPTX
Html 5 full course
PDF
Stupid Video Tricks
PPTX
NodeJS Edinburgh Video Killed My Data Plan
PDF
Master Video with AV Foundation
PDF
Wordpress Beyond Websites
PDF
AVFoundation @ TACOW 2013 05 14
PPTX
Video Killed My Data Plan: Helsinki
PPTX
Video editimi tutorial
PPTX
Video performance glasgow
ODP
How To Theme Fedora
PPT
Android Audio & OpenSL
Mastering Media with AV Foundation
Stupid Video Tricks, CocoaConf Las Vegas
Craft 2019 - “The Upside Down” Of The Web - Video technologies
Get On The Audiobus (CocoaConf Boston, October 2013)
Building A Streaming Apple TV App (CocoaConf San Jose, Nov 2016)
Composing and Editing Media with AV Foundation
Stupid Video Tricks (CocoaConf DC, March 2014)
How To Do A Podcast - Bsides RI 2013
Html 5 full course
Stupid Video Tricks
NodeJS Edinburgh Video Killed My Data Plan
Master Video with AV Foundation
Wordpress Beyond Websites
AVFoundation @ TACOW 2013 05 14
Video Killed My Data Plan: Helsinki
Video editimi tutorial
Video performance glasgow
How To Theme Fedora
Android Audio & OpenSL
Ad

Similar to HTML5 Audio & Video (20)

PDF
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
PDF
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
PDF
HTML5 Multimedia: where we are, where we're going
PDF
HTML5 multimedia - where we are, where we're going
PDF
Multimedia on the web - HTML5 video and audio
PDF
web programming & scripting 2
PPTX
HTML5 Multimedia Support
PPT
HTML5 Video Right Now
KEY
HTML5 Video for WordPress
PDF
Responsive Videos, mehr oder weniger
KEY
HTML5 Video Presentation
PPTX
HTML5 audio & video
PDF
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
PPTX
FYBSC IT Web Programming Unit II Audio Video in HTML
PPT
Intro to HTML5 audio tag
PPT
Chapter 11 - Web Design
PDF
State of Media Accessibility in HTML5
PDF
HTML Media: Where We Are & Where We Need To Go
PDF
Mobile Web Video
KEY
Upgrade to HTML5 Video
HTML5 multimedia - browser-native video and audio - DevUp HTML5 / Barcelona /...
HTML5 multimedia - browser-native video and audio - JSDay / Verona / 17 May 2012
HTML5 Multimedia: where we are, where we're going
HTML5 multimedia - where we are, where we're going
Multimedia on the web - HTML5 video and audio
web programming & scripting 2
HTML5 Multimedia Support
HTML5 Video Right Now
HTML5 Video for WordPress
Responsive Videos, mehr oder weniger
HTML5 Video Presentation
HTML5 audio & video
HTML5 multimedia - browser-native video, audio and canvas - meet.js Summit / ...
FYBSC IT Web Programming Unit II Audio Video in HTML
Intro to HTML5 audio tag
Chapter 11 - Web Design
State of Media Accessibility in HTML5
HTML Media: Where We Are & Where We Need To Go
Mobile Web Video
Upgrade to HTML5 Video
Ad

More from Aaron Gustafson (20)

PDF
Delivering Critical Information and Services [JavaScript & Friends 2021]
PDF
Adapting to Reality [Guest Lecture, March 2021]
PDF
Designing the Conversation [Beyond Tellerrand 2019]
PPTX
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
PDF
Progressive Web Apps: Where Do I Begin?
PDF
Media in the Age of PWAs [ImageCon 2019]
PDF
Adapting to Reality [Starbucks Lunch & Learn]
PDF
Conversational Semantics for the Web [CascadiaJS 2018]
PDF
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
PDF
PWA: Where Do I Begin? [Microsoft Ignite 2018]
PDF
Designing the Conversation [Concatenate 2018]
PDF
Designing the Conversation [Accessibility DC 2018]
PDF
Performance as User Experience [AEADC 2018]
PDF
The Web Should Just Work for Everyone
PDF
Performance as User Experience [AEA SEA 2018]
PDF
Performance as User Experience [An Event Apart Denver 2017]
PDF
Advanced Design Methods 1, Day 2
PDF
Advanced Design Methods 1, Day 1
PDF
Designing the Conversation [Paris Web 2017]
PDF
Exploring Adaptive Interfaces [Generate 2017]
Delivering Critical Information and Services [JavaScript & Friends 2021]
Adapting to Reality [Guest Lecture, March 2021]
Designing the Conversation [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Progressive Web Apps: Where Do I Begin?
Media in the Age of PWAs [ImageCon 2019]
Adapting to Reality [Starbucks Lunch & Learn]
Conversational Semantics for the Web [CascadiaJS 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]
Designing the Conversation [Concatenate 2018]
Designing the Conversation [Accessibility DC 2018]
Performance as User Experience [AEADC 2018]
The Web Should Just Work for Everyone
Performance as User Experience [AEA SEA 2018]
Performance as User Experience [An Event Apart Denver 2017]
Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 1
Designing the Conversation [Paris Web 2017]
Exploring Adaptive Interfaces [Generate 2017]

Recently uploaded (20)

PPTX
sap open course for s4hana steps from ECC to s4
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Machine learning based COVID-19 study performance prediction
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Electronic commerce courselecture one. Pdf
sap open course for s4hana steps from ECC to s4
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Machine learning based COVID-19 study performance prediction
“AI and Expert System Decision Support & Business Intelligence Systems”
NewMind AI Weekly Chronicles - August'25 Week I
Unlocking AI with Model Context Protocol (MCP)
MIND Revenue Release Quarter 2 2025 Press Release
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Empathic Computing: Creating Shared Understanding
20250228 LYD VKU AI Blended-Learning.pptx
MYSQL Presentation for SQL database connectivity
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Programs and apps: productivity, graphics, security and other tools
Understanding_Digital_Forensics_Presentation.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Electronic commerce courselecture one. Pdf

HTML5 Audio & Video

  • 1. Audio &Video in HTML5 Aaron Gustafson Easy Designs, LLC slideshare.net/AaronGustafson
  • 3. Audio & Video “I want to see the end of the plug-in” —HTML5
  • 4. Audio & Video We’re almost there
  • 5. Audio & Video Older browsers still need a fallback
  • 6. Audio & Video Older browsers still need a fallback (Usually Flash)
  • 7. Audio & Video Music to our ears
  • 8. Audio & Video Can you hear me now? The audio element <audio src="my.oga" controls="controls"></audio>
  • 9. Audio & Video Can you hear me now? Browser .aac .mp3 .oga .wav Chrome 6+ YES YES YES NO Firefox 3.6+ NO NO YES YES Internet Explorer 9+ YES YES NO YES Opera 10.5+ NO NO YES YES Safari 5+ YES YES NO YES
  • 10. Audio & Video Can you hear me now? <audio controls="controls"> <source src="my.mp3"/> <source src="my.oga"/> <!-- fallback --> </audio>
  • 11. Audio & Video Available attributes src URL for the audio file. autoplay A boolean specifying whether or not the file should play as soon as it can. loop A boolean specifying whether or not playback of the file should be repeated. controls A boolean that tells the browser to use its default media controls. preload Tells the browser what to content to preload. Options: “none,” “metadata,” and “auto.” autobuffer (deprecated) A boolean defining whether the file should be buffered in advance. Replaced by preload.
  • 12. Audio & Video Can you hear me now? <audio controls="controls" autobuffer="autobuffer" preload="auto"> <source src="my.mp3"/> <source src="my.oga"/> <!-- fallback --> </audio>
  • 13. Audio & Video Fallback options <audio controls="controls" autobuffer="autobuffer" preload="auto"> <source src="my.mp3"/> <source src="my.oga"/> <ul> <li><a href="my.mp3">Download as audio/mp3</a></li> <li><a href="my.oga">Download as audio/ogg</a></li> </ul> </audio>
  • 14. Audio & Video Fallback options <audio controls="controls" autobuffer="autobuffer" preload="auto"> <source src="my.mp3"/> <source src="my.oga"/> <object …> <!-- flash player goes here --> </object> </audio>
  • 15. Audio & Video Fallback options $('audio').each(function(){ var $audio = $(this), media = {}, formats = []; $audio.find('source').each(function(){ var src = $(this).attr('src'), ext = src.split('.').pop(); media[ext] = src; formats.push(ext); }); $audio.jPlayer({ swfPath: '/vendors/jPlayer', ready: function(){ $audio.jPlayer('setMedia', media); }, supplied: formats.join(', ') }); }); Using jQuery & jPlayer
  • 16. Audio & Video Roll your own $('audio').each(function(){ var audio = this, $button = $('<button>Play</button>') .click(function(){ audio.play(); }); $(this) .removeAttr('controls') .after($button); }); Using jQuery
  • 17. Audio & Video Opiate of the masses
  • 18. Audio & Video Elementary, my dear Watson The video element <video src="my.ogv" controls="controls"></video>
  • 19. Audio & Video Not so elementary Video file = container file (like ZIP) ๏ 1 video track ๏ 1 (or more) audio tracks ๏ metadata ๏ subtitle/caption tracks (optional)
  • 20. Audio & Video Not so elementary Video formats Flash Video (.flv) Prior to 2008, the only video format supported in Adobe Flash. MPEG 4 (.m4v or .mp4) Based on QuickTime; iTunes uses this format. Ogg (.ogv) Open source container format. WebM (.webm) New format announced in May 2010.
  • 21. Audio & Video Not so elementary Video codecs H.264 Used primarily in MPEG 4. Only video codec natively supported on iOS. Patented. Theora Used primarily in Ogg. Royalty free. Supported in Firefox 3.5+ (in Ogg). VP8 Used primarily in WebM. Owned by Google, but licensed royalty-free.
  • 22. Audio & Video Not so elementary Audio codecs MP3 Nearly universal in usage, but was part of FLV. Patented. AAC (Advanced Audio Coding) Used primarily in MP4. Patented. Vorbis Used in Ogg audio & video as well as WebM. Royalty-free.
  • 23. Audio & Video Not so elementary Browser .m4v .ogv .webm (AAC + H.264) (Vorbis + Theora) (Vorbis + VP8) Chrome 3+ 3+ 6+ (for now) Firefox NO 3.5+ 4+ Internet Explorer 9+ NO MAYBE Opera NO 10.5+ 10.6+ Safari 3.1+ MAYBE MAYBE
  • 24. Audio & Video Format juggling <video controls="controls" width="640" height="480"> <source src="my.m4v"/> <source src="my.webm"/> <source src="my.ogv"/> <!-- fallback --> </video>
  • 25. Audio & Video A good first impression <video controls="controls" width="640" height="480" poster="my.png"> <source src="my.m4v"/> <source src="my.webm"/> <source src="my.ogv"/> <!-- fallback --> </video>
  • 26. Audio & Video Kindness to strangers <video controls="controls" width="640" height="480" poster="my.png"> <source src="my.m4v" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'/> <source src="my.webm" type='video/webm; codecs="vp8, vorbis"'/> <source src="my.ogv" type='video/ogg; codecs="theora, vorbis"'/> <!-- fallback --> </video> Note: The MPEG 4 codec will depend on the encoding “profiles” you use.
  • 27. Audio & Video Available attributes src URL for the audio file. autoplay A boolean specifying whether or not the file should play as soon as it can. loop A boolean specifying whether or not playback of the file should be repeated. controls A boolean that tells the browser to use its default media controls. poster The image to be shown while the video is not activated. preload Tells the browser what to content to preload. Options: “none,” “metadata,” and “auto.” autobuffer (deprecated) A boolean defining whether the file should be buffered in advance. Replaced by preload.
  • 28. Audio & Video No MIME, no service AddType video/ogg .ogv AddType video/mp4 .mp4 AddType video/webm .webm
  • 29. Audio & Video Fallback options <video width="600" height="400" poster="/r/2-5.png" controls="controls" preload="none"> <source src="/r/2-5.m4v" type="video/mp4"/> <source src="/r/2-5.webm" type="video/webm"/> <source src="/r/2-5.ogv" type="video/ogg"/> <img src="/r/2-5.png" width="600" height="400" alt=""/> <ul> <li><a href="/r/2-5.m4v">Download as video/mp4</a></li> <li><a href="/r/2-5.webm">Download as video/webm</a></li> <li><a href="/r/2-5.ogv">Download as video/ogg</a></li> </ul> </video>
  • 30. Audio & Video Fallback options <video width="600" height="400" poster="/r/2-5.png" controls="controls" preload="none"> <source src="/r/2-5.m4v" type="video/mp4"/> <source src="/r/2-5.webm" type="video/webm"/> <source src="/r/2-5.ogv" type="video/ogg"/> <object width="600" height="400" type="application/x-shockwave-flash" data="flowplayer-3.2.1.swf"> <param name="movie" value="flowplayer-3.2.1.swf"/> <param name="allowfullscreen" value="true"/> <param name="flashvars" value='config={"clip": {"url": "/r/2-5.m4v", "autoPlay":false, "autoBuffering":true}}'/> <img src="/r/2-5.png" width="600" height="400" alt=""/> <ul><!-- links --></ul> </object> </video>
  • 31. Audio & Video How the sausage is made
  • 32. Audio & Video Tools of the trade RoadMovie Firefogg
  • 33. Audio & Video Working with RoadMovie
  • 34. Audio & Video Working with RoadMovie
  • 35. Audio & Video Working with RoadMovie
  • 36. Audio & Video Working with RoadMovie Subtitle formats SubRip (.srt) SubViewer (.sub) SubStation Alpha (.ssa/.ass) MicroDVD
  • 37. Audio & Video Working with RoadMovie Subtitle formats SubRip (.srt) 1 00:01:31,041 --> 00:01:32,000 Hello? 2 00:02:10,164 --> 00:02:12,082 Good morning, is your mother in?
  • 38. Audio & Video Working with RoadMovie Subtitle formats SubViewer (.sub) 00:01:31.04,00:01:32.00 Hello? 00:02:10.16,00:02:12.08 Good morning, is your mother in?
  • 39. Audio & Video Working with RoadMovie
  • 40. Audio & Video Working with Firefogg
  • 41. Audio & Video Working with Firefogg
  • 42. Audio & Video Working with Firefogg
  • 43. Audio & Video Working with Firefogg
  • 44. Audio & Video Working with Firefogg
  • 45. Audio & Video Working with Firefogg
  • 47. Audio & Video The Future: Media Fragments // temporal http://www.example.com/video.ogv#t=10,20 // Live streaming http://www.example.com/video.ogv#t=clock:2009-07-26T11:19:01Z, 2009-07-26T11:20:01Z // Rectangular region http://www.example.com/video.ogv#xywh=160,120,320,240 // Track selection http://www.example.com/video.ogv#track=”video” http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/
  • 48. Audio & Video The Future: Media Annotations var title = song.getMediaProperty(["title"]); if ( noErrorStatus(title[0].status) == true ) { // title = [ { "Title" : { // "propertyName" : "title", // "titleLabel" : "Artificial Horizon" , // "typeLink" : "http://www.ebu.ch/metadata/cs/ ebu_ObjectTypeCodeCS.xml#21", // "typeLabel" : "Album title", // "statusCode" : 200 // } } ] } http://dev.w3.org/2008/video/mediaann/mediaont-api-1.0/mediaont-api-1.0.html
  • 49. Audio & Video The Future: Timed Text <video src="elephant.ogv" poster="elephant.png"> <itext id="video_ar" lang="ar" type="text/srt" charset="Windows-1256" display="auto" src="elephant.ar.srt" category="SUB"></itext> <itext id="video_zh" lang="zh" type="text/srt" charset="GB18030" display="auto" src="elephant.zh.srt" category="SUB"></itext> <itext id="video_es" lang="es" type="text/srt" charset="ISO-8859" display="auto" src="elephant.es.srt" category="SUB"></itext> <itext id="audiodesc" lang="en" type="text/srt" charset="ISO-8859" display="yes" src="audiodescription.srt" category="TAD"></itext> </video>
  • 50. Audio & Video The Future: Timed Text <video src="elephant.ogv" poster="elephant.png"> <track srclang="ar" src="elephant.ar.srt" label=”!"#$%&‫ ”ا‬kind="subtitles"/> <track srclang="zh" src="elephant.zh.srt" label=”汉语” kind="subtitles"/> <track srclang="es" src="elephant.es.srt" label=”Español” kind="subtitles"/> <track src="audiodescription.srt" kind="descriptions" label=”Audio Descriptions”/> </video>
  • 51. Audio & Video The Future: Timed Text http://www.annodex.net/~silvia/itext/elephant_no_skin_v2.html
  • 52. Audio & Video Slides available at http://slideshare.net/AaronGustafson This presentation is licensed under Creative Commons Attribution-Noncommercial-Share Alike 3.0 flickr Photo Credits “Revolutionary Technology…” by Jimee, Jackie, Tom & Asha “08-jan-28” by sashafatcat “Revere EIGHT - 8mm…” by Kevitivity “Sausage Making Machinery” by erix!