Add some information about myself
[lca-dvswitch.git] / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
2         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
4 <html xmlns="http://www.w3.org/1999/xhtml">
5
6 <head>
7 <title>DVswitch - Ben Hutchings - LCA2011</title>
8 <!-- metadata -->
9 <meta name="generator" content="S5" />
10 <meta name="version" content="S5 1.1" />
11 <meta name="author" content="Ben Hutchings" />
12 <!-- configuration parameters -->
13 <meta name="defaultView" content="slideshow" />
14 <meta name="controlVis" content="hidden" />
15 <!-- style sheet links -->
16 <link rel="stylesheet" href="s5-blank/ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
17 <link rel="stylesheet" href="s5-blank/ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
18 <link rel="stylesheet" href="s5-blank/ui/default/print.css" type="text/css" media="print" id="slidePrint" />
19 <link rel="stylesheet" href="s5-blank/ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
20 <style type="text/css">
21   .logo { position: absolute; right: 0; top: 0; height: 100% }
22   table { border-collapse: collapse }
23   th { border-bottom: 2pt solid black }
24   th, td { padding: 0 6pt }
25 </style>
26 <!-- S5 JS -->
27 <script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
28 </head>
29 <body>
30
31 <div class="layout">
32 <div id="controls"><!-- DO NOT EDIT --></div>
33 <div id="currentSlide"><!-- DO NOT EDIT --></div>
34 <div id="header">
35   <object class="logo" data="lca2011.svg"></object>
36 </div>
37 <div id="footer">
38 <h1>LCA2011</h1>
39 <h2>DVswitch</h2>
40 </div>
41
42 </div>
43
44
45 <div class="presentation">
46
47 <div class="slide">
48 <h1>DVswitch</h1>
49 <h3>Ben Hutchings</h3>
50 </div>
51
52
53 <div class="slide">
54   <h1>The author</h1>
55   <ul class="incremental">
56     <li>
57       Professional software developer since 1998
58     </li>
59     <li>
60       Debian contributor since 2003
61     </li>
62     <li>
63       DebConf video team member since 2005
64     </li>
65     <li>
66       Started the VideoLink and DVswitch projects for use in DebConf
67       video production
68     </li>
69     <li>
70       Mostly working on kernel stuff
71     </li>
72   </ul>
73 </div>
74
75
76 <div class="slide">
77   <h1>What is DVswitch?</h1>
78   <ul class="incremental">
79     <li>
80       A software system that supports video mixing, recording and streaming
81     </li>
82     <li>
83       Designed particularly for the needs of technical conferences that
84       want to record and stream on a limited budget.  Now used more
85       widely, often without streaming.
86     </li>
87     <li>
88       Mixing is <em>live</em> - a requirement for streaming, and a way to
89       avoid the need for extensive editing after the event
90     </li>
91     <li>
92       Mixing is <em>interactive</em> - a requirement for good coverage of
93       presenters, audience and slides, but very limited in other
94       streaming software
95     </li>
96   </ul>
97 </div>
98
99 <div class="slide">
100   <h1>What is DVswitch <em>not</em>?</h1>
101   <p>
102     There are limited developer resources and limited goals for
103     DVswitch.  It is never intended to be:
104   </p>
105   <ul class="incremental">
106     <li>
107       A general video editor
108     </li>
109     <li>
110       An audio mixer (but it does implement audio dubbing and level monitoring)
111     </li>
112     <li>
113       A complete recording and publishing system
114     </li>
115   </ul>
116   <p class="incremental">
117     These are all better handled by other software and
118     hardware.
119   </p>
120 </div>
121
122 <div class="slide">
123   <h1>The 'DV' in DVswitch</h1>
124   <p>
125     The name refers to the DV formats used by many video cameras:
126   </p>
127   <table>
128     <tr>
129       <th>Profile</th><th>Specification</th><th>Video codec</th><th>Supported</th>
130     </tr>
131     <tr>
132       <td>Basic DV</td><td>IEC 61834</td><td>DV 25</td><td>yes</td>
133     </tr>
134     <tr>
135       <td>DVCAM</td><td>Sony proprietary</td><td>DV 25</td><td>probably</td>
136     </tr>
137     <tr>
138       <td>DVCPRO</td><td>SMPTE 314M</td><td>DV 25</td><td>probably</td>
139     </tr>
140     <tr>
141       <td>DVCPRO50</td><td>SMPTE 314M</td><td>DV 50</td><td>not yet</td>
142     </tr>
143     <tr>
144       <td>DVCPRO HD</td><td>SMPTE 370M</td><td>DV 100</td><td>not yet</td>
145     </tr>
146     <tr>
147       <td>HDV</td><td>IEC 61834</td><td>MPEG-2</td><td>no</td>
148     </tr>
149   </table>
150   <p>
151     DV video codecs compress each frame separately (unlike MPEG)
152   </p>
153   <div class="handout">
154     <p>
155       The lack of interframe compression means there is relatively
156       little delay between camera and mixer and we can cut between
157       sources without having to decode all sources all the time.
158       In fact, DVswitch doesn't need to decode even a single source at
159       full frame rate if you just cut between sources without using
160       mixing effects.
161     </p>
162     <p>
163       Unfortunately, most of today's consumer cameras don't have DV
164       output and may not provide live video output at all.
165     </p>
166   </div>
167 </div>
168
169 <div class="slide">
170   <h1>Overview of the system</h1>
171   <p>
172     A simplified view of the typical components:
173   </p>
174   <object data="dvswitch-simple.svg" width="60%" height="60%"></object>
175 </div>
176
177 <div class="slide">
178   <h1>Sources</h1>
179   <ul class="incremental">
180     <li>
181       Source types: firewire/USB DV device, ALSA capture device,
182       DIF file
183     </li>
184     <li>
185       Physical sources are spread around room and connected to the
186       mixer via TCP/IP networking
187     </li>
188     <li>
189       Original protocol: mixer runs a network server; sources run as
190       clients and send DIF over TCP
191       <ul class="incremental">
192         <li>
193           Requires a script to coordinate mixer and source startup -
194           an annoying complication
195         </li>
196       </ul>
197     <li>
198       Later enhancement: tally lights
199     </li>
200     <li>
201       Next release: sources run as RTP/RTSP servers and mixer
202       connects to them as a client
203       <ul class="incremental">
204         <li>
205           No custom scripts required; just configuration files
206         </li>
207       </ul>
208     </li>
209   </ul>
210 </div>
211
212 <div class="slide">
213   <h1>Sinks</h1>
214   <ul class="incremental">
215     <li>
216       Sink types: DIF files, pipe to arbitrary command
217     </li>
218     <li>
219       Also connected using TCP/IP networking, though this is not such
220       a good idea for recording
221     </li>
222     <li>
223       Original protocol: mixer runs a network server; sinks run
224       as clients and receive DIF over TCP
225     </li>
226     <li>
227       Later enhancement: sink reports whether it will record;
228       mixer can start, stop and cut recording
229     </li>
230     <li>
231       Next release: file and pipe sinks built into mixer along with an
232       RTP/RTSP server
233     </li>
234   </ul>
235 </div>
236
237 <div class="slide">
238   <h1>Mixer</h1>
239   <object data="screenshot-1.png" width="50%"></object>
240 </div>
241
242 <div class="slide">
243   <h1>Mixer</h1>
244   <object data="screenshot-1-annotated.png" width="50%"></object>
245 </div>
246
247 </body>
248 </html>