index.html
12.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?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 © 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ël Troncy</font></a> (EURECOM)
<<a href="mailto:raphael.troncy@eurecom.fr">raphael.troncy@eurecom.fr</a>>,<br />
<font color="#FFFFFF">Erik Mannens</font> (IBBT MediaLab, University of Ghent)
<<a href="mailto:erik.mannens@ugent.be">erik.mannens@ugent.be</a>>
</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 & 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'>— it's what you can search, discover, create, distribute and manage.</h3>
</div>
</body>
</html>