index.html 12.8 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
  <title>W3C Media Fragments Working Group</title>
  <meta name="copyright" content="Copyright &#169; 2010 W3C (MIT, ERCIM, Keio)" />
  <link rel="stylesheet" href="http://www.w3.org/Talks/Tools/Slidy/slidy.css" type="text/css" media="screen, projection, print" />
  <link rel="stylesheet" href="w3c-ac.css" type="text/css" media="screen, projection, print" />
  <script type="text/javascript" src="slidy.js"></script>
</head>

<body>

<!-- this defines the slide background -->
<div class="background">
  <div class="header">
    <!-- sized and colored via CSS -->
  </div>
  <div class="footer">
    <object id="w3c-logo" data="http://www.w3.org/Talks/Tools/Slidy/w3c-logo-blue.svg" type="image/svg+xml" title="W3C logo">
  	<a href="http://www.w3.org/"><img alt="W3C logo" id="w3c-logo-fallback"
  		src="http://www.w3.org/Talks/Tools/Slidy/w3c-logo-blue.gif" /></a></object>
    <!-- modify the following text as appropriate -->
    Semantic Web Coordination Group, 7 April 2010
  </div>
</div>

<div class="slide cover">
  <div class="header">
    <h1>W3C Media Fragments Working Group</h1>
    <p><a href="http://www.eurecom.fr/~troncy/"><font color="#FFFFFF">Rapha&euml;l Troncy</font></a> (EURECOM)
    &lt;<a href="mailto:raphael.troncy@eurecom.fr">raphael.troncy@eurecom.fr</a>&gt;,<br /> 
       <font color="#FFFFFF">Erik Mannens</font> (IBBT MediaLab, University of Ghent)
    &lt;<a href="mailto:erik.mannens@ugent.be">erik.mannens@ugent.be</a>&gt;
    </p>
  </div>
  <img src="http://www.w3.org/2008/WebVideo/Fragments/meetings/2008-10-20-f2f_cannes/DSC02998.JPG" alt="Media Fragment group photo, Cannes (FR)"/>
</div>

<div class="slide">
  <h1>Media Fragments WG Pointers</h1>
  <br/>
  <p>
    Duration: September 2008 - January 2011
  </p>
  <ul>
    <li>This slide: <a href="http://www.w3.org/2008/WebVideo/Fragments/talks/2010-04-07/">http://www.w3.org/2008/WebVideo/Fragments/talks/2010-04-07/</a></li>
    <li>Previous SWCG Talk: <a href="http://www.w3.org/2008/WebVideo/Fragments/talks/2009-02-06/">http://www.w3.org/2008/WebVideo/Fragments/talks/2009-02-06/</a></li>
  </ul>
  <p>Pointers:</p>
  <ul>
    <li>Home: <a href="http://www.w3.org/2008/WebVideo/Fragments/">http://www.w3.org/2008/WebVideo/Fragments/</a></li>
    <li>Wiki: <a href="http://www.w3.org/2008/WebVideo/Fragments/wiki/">http://www.w3.org/2008/WebVideo/Fragments/wiki/</a></li>
    <li>Archive: <a href="http://lists.w3.org/Archives/Public/public-media-fragment/">http://lists.w3.org/Archives/Public/public-media-fragment/</a></li>
  </ul>
  <p>15 (<b>active</b>) <a href="http://www.w3.org/2000/09/dbwg/details?group=42785">Participants</a>:</p>     
  <ul>
   <li>from 10 organizations: Apple, DERI Galway, CWI, Opera, ETRI, IBBT, Meraka Institute, Samsung, Institut Telecom, W3C/ERCIM</li>
   <li>+2 Invited Expert: <a href="http://blog.gingertech.net/">Silvia Pfeiffer</a> and <a href="http://www.kfish.org/">Conrad Parker</a></li>
  </ul>
</div>

<div class="slide">
 <h1>Media Fragments WG Goal</h1>
 <p style='float: right; width: 40%;'>
Provide <strong>URI-based mechanisms</strong> for uniquely identifying <strong>fragments</strong> for <strong>media</strong> objects on the Web, such as video, audio, and images.
 </p>
 <div class='image' style='clear: left;' >
  <p class='img' style='width: 500px; margin: 1%; clear:left;'><img src='http://www.w3.org/2008/01/beth.jpg'
     title='Beth, the audience, Belgium, her pitch, and herself' alt='Beth, the audience, Belgium, her pitch, and herself'/><br />
   <span class='source'>Photo credit: <a href="http://www.flickr.com/photos/rwfreund/">Robert Freund</a></span></p>
 </div>
 <p style='margin: 1em auto; text-align: center'><img src='http://www.w3.org/2008/01/timbl_movie.png' alt='Temporal addressing' title='Temporal addressing'/></p>
</div>

<div class="slide">
 <h1>User Stories (1/2)</h1>
 <p>
   Silvia is a big fan of Tim's research keynotes. She used to watch numerous videos starring Tim for following his research activities and often 
   would like to share the highlight announcements with her collaborators.
 </p>
 <p>
   Silvia is interested in <a href="http://www.tweetube.com/">TweeTube</a> that will allow her to share video directly on Twitter but she would 
   like to point and reference only small temporal sequences of these longer videos. She would like to have a simple interface, similar to 
   <a href="http://www.videosurf.com/">VideoSurf</a>, to edit the start and end time points delimiting a particular sequence, and get back in return 
   the media fragment URI to share with the rest of the world.
 </p>
 <p>
   She would also like to embed this portion of video on her blog together with comments and (semantic) annotations.
 </p>
</div>

<div class="slide">
 <h1>User Stories (2/2)</h1>
 <p>
   Lena would like to browse the descriptive audio tracks of a video as she does with Daisy audio books, by following the logical structure of 
   the media.
 </p>
 <p>
   Audio descriptions and captions generally come in blocks either timed or separated by silences. Chapter by chapter and then section by section 
   she eventually jumps to a specific paragraph and down to the sentence level by using the "tab" control as she would normally do in audio books.
 </p>
 <p>
   The descriptive audio track is an extra spoken track that provides a description of scenes happening in a video. When the descriptive audio 
   track is not present, Lena can similarly browse through captions and descriptive text tracks which are either rendered through her braille 
   reading device or through her text-to-speech engine.
 </p>
</div>

<div class="slide">
 <h1>Use Cases &amp; Requirements</h1>
 <h4>Working Draft:</h4>
 <p>
   <a href="http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-reqs/">http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-reqs/</a>
 </p>
 <h4>Requirements:</h4>
 <ul>
   <li><b>r01: Temporal fragments:</b> a clipping along the time dimension from a start to an end time that are within the duration of the media resource</li>
   <li><b>r02: Spatial fragments:</b> a clipping of an image region, only consider rectangular regions</li>
   <li><b>r03: Track fragments:</b> a track as exposed by a container format of the media resource</li>
   <li><b>r04: Named fragments:</b> a media fragment - either a track, a time section, or a spatial region - that has been given a name through 
   some sort of annotation mechanism</li>
 </ul>
 <h4>Side-conditions:</h4>
 <ul>
   <li>Restrict to what the container format (encapsulating the compressed media content) can express (and expose), thus no transcoding</li>
   <li>Protocol covered: HTTP(S), FILE, RTSP, RTMP?</li>
 </ul>
</div>

<div class="slide">
 <h1>Media Fragment URI Syntax</h1>
 <ul>
  <li><b>Time:</b> npt, smpte, smpte-25, smpte-30, smpte-30-drop, clock
   <pre>http://www.example.com/video.ogv#t=10,20</pre>
  </li>
  <li><b>Space:</b> pixel, percent
   <pre>http://www.example.com/video.ogv#xywh=160,120,320,240</pre>
  </li>
  <li><b>Track:</b> See also <a href="http://www.w3.org/WAI/PF/HTML/wiki/Media_MultitrackAPI">http://www.w3.org/WAI/PF/HTML/wiki/Media_MultitrackAPI</a>
   <pre>http://www.example.com/video.ogv#track=audio</pre>
  </li>
  <li><b>Name:</b>
   <pre>http://www.example.com/video.ogv#id=chapter-1</pre>
  </li> 
 </ul>
</div>

<div class="slide">
 <h1>Media Fragment Processing</h1>
 <p>
   General principle is that <b>smart</b> UA will strip out the fragment definition and encode it into custom http headers ...<br/>
   (Media) Servers will handle the request, <b>slice</b> the media content and serve just the fragment while old ones will serve the whole resource.
 </p>
 <ul>
  <li><b>Recipe 1:</b> the User Agent knows how to map a custom unit into bytes and sends a normal Range request expressed in bytes</li>
  <li><b>Recipe 2:</b> the User Agent sends a Range request expressed in a custom unit (e.g. seconds), the server answers directly with a 
      206 Partial Content and indicates the mapping between bytes and the custom unit</li>
  <li><b>Recipe 3:</b> the User Agent sends a Range request expressed in a custom unit (e.g. seconds), the server answers first with just a Head 
      and the mapping between the custom unit and bytes so that the User Agent issues another normal Range request expressed this time in bytes 
      making the answer cacheable.</li>
  <li><b>Recipe 4:</b> the User Agent sends a Range request expressed in a custom unit (e.g. seconds), the server provides a multipart message body reply 
      (multipart/byteranges) containing not only the bytes corresponding to requested media fragment but also the media header data making the 
      resource playable.
  </li>
 </ul>
</div>

<div class="slide">
 <h1>Recipe 1: UA mapped byte ranges 1/2 (see <a href="http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/#processing-protocol-UA-mapped">spec</a>)</h1>
 <img src='../../WD-media-fragments-spec/MF-SD-ClientSide-5.2.1.1.png' 
      alt='The User Agent sends a Range request expressed in bytes'/>
</div>

<div class="slide">
 <h1>Recipe 1: UA mapped byte ranges 2/2</h1>
 <img src='UA_mapped_ranges.png' 
      alt='The User Agent sends a Range request expressed in bytes'/>
</div>

<div class="slide">
 <h1>Recipe 2: Server mapped byte ranges 1/2 (see <a href="http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/#processing-protocol-Server-mapped">spec</a>)</h1>
 <img src='../../WD-media-fragments-spec/MF-SD-ServerSide.png' 
      alt='The User Agent sends a Range request expressed in a custom unit, the server answers directly with a 206 Partial Content and indicates
      the mapping between bytes and the custom unit'/>
</div>

<div class="slide">
 <h1>Recipe 2: Server mapped byte ranges 2/2</h1>
 <img src='Server_mapped_ranges.png' 
      alt='The User Agent sends a Range request expressed in a custom unit, the server answers directly with a 206 Partial Content and indicates
      the mapping between bytes and the custom unit'/>
</div>

<div class="slide">
 <h1>Recipe 3: Proxy cacheable Server mapped byte ranges 1/2 (see <a href="http://www.w3.org/2008/WebVideo/Fragments/WD-media-fragments-spec/#processing-protocol-proxy">spec</a>)</h1>
 <img src='../../WD-media-fragments-spec/MF-SD-ProxyCacheable.png' 
      alt='The User Agent sends a Range request expressed in a custom unit, the server answers first with just a Head and the mapping between bytes
      and the custom unit so that the User Agent issues another Range request expressed this time in bytes making the answer cacheable.'/>
</div>

<div class="slide">
 <h1>Recipe 3: Proxy cacheable Server mapped byte ranges 2/2</h1>
 <img src='Server_mapped_ranges_cacheable.png' 
      alt='The User Agent sends a Range request expressed in a custom unit, the server answers first with just a Head and the mapping between bytes
      and the custom unit so that the User Agent issues another Range request expressed this time in bytes making the answer cacheable.'/>
</div>

<div class="slide">
 <h1>Recipe 4: Serving playable resources</h1>
 <img src='Server_mapped_ranges_playable.png' 
      alt='The User Agent sends a Range request expressed in a custom unit (e.g. seconds), the server provides a multipart message body reply 
      (multipart/byteranges) containing not only the bytes corresponding to requested media fragment but also the media header data making the 
      resource playable.'/>
</div>

<div class="slide">
 <h1>Implementation Report</h1>
 <h3>Media Fragment server:</h3>
 <ul>
  <li>Ninsuna: <a href="http://ninsuna.elis.ugent.be/MediaFragmentsServer">http://ninsuna.elis.ugent.be/MediaFragmentsServer</a></li>
 </ul>
 <h3>Media Fragment user agents:</h3>
 <ul>
  <li>Ninsuna Flash player: <a href="http://ninsuna.elis.ugent.be/MediaFragmentsPlayer">http://ninsuna.elis.ugent.be/MediaFragmentsPlayer</a>
  <ul><li>Support <b>recipes 1 and 4</b></li></ul></li>
  <li>Silvia's experiment with HTML5 + JS: <a href="http://annodex.net/~silvia/itext/mediafrag.html">http://annodex.net/~silvia/itext/mediafrag.html</a>
  <ul><li>Support <b>recipe 1</b></li></ul></li>
  <li>Firefox pluggin development in order to support all recipes (HTML5 + XMLHttpRequest)</li>
 </ul>
</div>

<div class="slide">
 <h1>Thank you</h1>
 <img src='http://www.w3.org/2007/08/video/banner.jpg' alt='Cinematographie'
      style='float: right; margin: 3em; -moz-border-radius: 2px;'/>
 <h2 style='color: rgb(0, 90, 156); font-weight: bold;padding-top: 1em;'>Video on the Web is not just what you see</h2>
 <h3 style='color: rgb(0, 90, 156); padding: 1em; font-weight: bold; font-style: italic'>&mdash; it's what you can search, discover, create, distribute and manage.</h3>
</div>
  
</body>
</html>