]> git.decadent.org.uk Git - lca-dvswitch.git/blob - index.html
1c087b3a6eb580a3e40c99302f05cb68cd86ba0e
[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       Primarily designed for free software conferences:
84       <ul class="incremental">
85         <li>
86           Record and stream for maximum community benefit
87         </li>
88         <li>
89           Budget is usually quite limited
90         </li>
91         <li>
92           We have eager volunteers but not much time to train them
93         </li>
94       </ul>
95     <li>
96       Now used more widely, often without streaming
97     </li>
98     <li>
99       Mixing is <em>live</em> - required for streaming, and avoids the
100       need for extensive editing after the event
101     </li>
102     <li>
103       Mixing is <em>interactive</em> - required for good coverage of
104       presenters, audience and slides; very limited in other
105       streaming software
106     </li>
107   </ul>
108 </div>
109
110 <div class="slide">
111   <h1>What is DVswitch <em>not</em>?</h1>
112   <p>
113     There are limited developer resources and limited goals for
114     DVswitch.  It is never intended to be:
115   </p>
116   <ul class="incremental">
117     <li>
118       A general video editor
119     </li>
120     <li>
121       An audio mixer (but it does implement audio dubbing and level monitoring)
122     </li>
123     <li>
124       A complete recording and publishing system
125     </li>
126   </ul>
127   <p class="incremental">
128     These are all better handled by other software and
129     hardware.
130   </p>
131 </div>
132
133 <div class="slide">
134   <h1>The 'DV' in DVswitch</h1>
135   <p>
136     The name refers to the DV formats used by many video cameras:
137   </p>
138   <table>
139     <tr>
140       <th>Profile</th><th>Specification</th><th>Video codec</th><th>Supported</th>
141     </tr>
142     <tr>
143       <td>Basic DV</td><td>IEC 61834</td><td>DV 25</td><td>yes</td>
144     </tr>
145     <tr>
146       <td>DVCAM</td><td>Sony proprietary</td><td>DV 25</td><td>probably</td>
147     </tr>
148     <tr>
149       <td>DVCPRO</td><td>SMPTE 314M</td><td>DV 25</td><td>probably</td>
150     </tr>
151     <tr>
152       <td>DVCPRO50</td><td>SMPTE 314M</td><td>DV 50</td><td>not yet</td>
153     </tr>
154     <tr>
155       <td>DVCPRO HD</td><td>SMPTE 370M</td><td>DV 100</td><td>not yet</td>
156     </tr>
157     <tr>
158       <td>HDV</td><td>IEC 61834</td><td>MPEG-2</td><td>no</td>
159     </tr>
160   </table>
161   <p>
162     DV video codecs compress each frame separately (unlike MPEG)
163   </p>
164   <div class="handout">
165     <p>
166       The lack of interframe compression means there is relatively
167       little delay between camera and mixer and we can cut between
168       sources without having to decode all sources all the time.
169       In fact, DVswitch doesn't need to decode even a single source at
170       full frame rate if you just cut between sources without using
171       mixing effects.
172     </p>
173     <p>
174       Unfortunately, most of today's consumer cameras don't have DV
175       output and may not provide live video output at all.
176     </p>
177   </div>
178 </div>
179
180 <div class="slide">
181   <h1>Overview of the system</h1>
182   <p>
183     A simplified view of the typical components:
184   </p>
185   <object data="dvswitch-simple.svg" width="60%" height="60%"></object>
186 </div>
187
188 <div class="slide">
189   <h1>Sources</h1>
190   <ul class="incremental">
191     <li>
192       Source types: firewire/USB DV device, ALSA capture device,
193       DIF file
194     </li>
195     <li>
196       Physical sources are spread around room and connected to the
197       mixer via TCP/IP networking
198     </li>
199     <li>
200       Original protocol: mixer runs a network server; sources run as
201       clients and send DIF over TCP
202       <ul class="incremental">
203         <li>
204           Requires a script to coordinate mixer and source startup -
205           an annoying complication
206         </li>
207       </ul>
208     <li>
209       Later enhancement: tally lights
210     </li>
211     <li>
212       Next release: sources run as RTP/RTSP servers and mixer
213       connects to them as a client
214       <ul class="incremental">
215         <li>
216           No custom scripts required; just configuration files
217         </li>
218       </ul>
219     </li>
220   </ul>
221 </div>
222
223 <div class="slide">
224   <h1>Sinks</h1>
225   <ul class="incremental">
226     <li>
227       Sink types: DIF files, pipe to arbitrary command
228     </li>
229     <li>
230       Also connected using TCP/IP networking, though this is not such
231       a good idea for recording
232     </li>
233     <li>
234       Original protocol: mixer runs a network server; sinks run
235       as clients and receive DIF over TCP
236     </li>
237     <li>
238       Later enhancement: sink reports whether it will record;
239       mixer can start, stop and cut recording
240     </li>
241     <li>
242       Next release: file and pipe sinks built into mixer along with an
243       RTP/RTSP server
244     </li>
245   </ul>
246 </div>
247
248 <div class="slide">
249   <h1>Mixer</h1>
250   <object data="screenshot-1.png" width="50%"></object>
251 </div>
252
253 <div class="slide">
254   <h1>Mixer</h1>
255   <object data="screenshot-1-annotated.png" width="50%"></object>
256 </div>
257
258 </body>
259 </html>