1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml">
7 <title>DVswitch - Ben Hutchings - LCA2011</title>
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 }
27 <script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
32 <div id="controls"><!-- DO NOT EDIT --></div>
33 <div id="currentSlide"><!-- DO NOT EDIT --></div>
35 <object class="logo" data="lca2011.svg"></object>
45 <div class="presentation">
49 <h3>Ben Hutchings</h3>
55 <ul class="incremental">
57 Professional software developer since 1998
60 Debian contributor since 2003
63 DebConf video team member since 2005
66 Started the VideoLink and DVswitch projects for use in DebConf
70 Mostly working on kernel stuff
77 <h1>What is DVswitch?</h1>
78 <ul class="incremental">
80 A software system that supports video mixing, recording and streaming
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.
88 Mixing is <em>live</em> - a requirement for streaming, and a way to
89 avoid the need for extensive editing after the event
92 Mixing is <em>interactive</em> - a requirement for good coverage of
93 presenters, audience and slides, but very limited in other
100 <h1>What is DVswitch <em>not</em>?</h1>
102 There are limited developer resources and limited goals for
103 DVswitch. It is never intended to be:
105 <ul class="incremental">
107 A general video editor
110 An audio mixer (but it does implement audio dubbing and level monitoring)
113 A complete recording and publishing system
116 <p class="incremental">
117 These are all better handled by other software and
123 <h1>The 'DV' in DVswitch</h1>
125 The name refers to the DV formats used by many video cameras:
129 <th>Profile</th><th>Specification</th><th>Video codec</th><th>Supported</th>
132 <td>Basic DV</td><td>IEC 61834</td><td>DV 25</td><td>yes</td>
135 <td>DVCAM</td><td>Sony proprietary</td><td>DV 25</td><td>probably</td>
138 <td>DVCPRO</td><td>SMPTE 314M</td><td>DV 25</td><td>probably</td>
141 <td>DVCPRO50</td><td>SMPTE 314M</td><td>DV 50</td><td>not yet</td>
144 <td>DVCPRO HD</td><td>SMPTE 370M</td><td>DV 100</td><td>not yet</td>
147 <td>HDV</td><td>IEC 61834</td><td>MPEG-2</td><td>no</td>
151 DV video codecs compress each frame separately (unlike MPEG)
153 <div class="handout">
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
163 Unfortunately, most of today's consumer cameras don't have DV
164 output and may not provide live video output at all.
170 <h1>Overview of the system</h1>
172 A simplified view of the typical components:
174 <object data="dvswitch-simple.svg" width="60%" height="60%"></object>
179 <ul class="incremental">
181 Source types: firewire/USB DV device, ALSA capture device,
185 Physical sources are spread around room and connected to the
186 mixer via TCP/IP networking
189 Original protocol: mixer runs a network server; sources run as
190 clients and send DIF over TCP
191 <ul class="incremental">
193 Requires a script to coordinate mixer and source startup -
194 an annoying complication
198 Later enhancement: tally lights
201 Next release: sources run as RTP/RTSP servers and mixer
202 connects to them as a client
203 <ul class="incremental">
205 No custom scripts required; just configuration files
214 <ul class="incremental">
216 Sink types: DIF files, pipe to arbitrary command
219 Also connected using TCP/IP networking, though this is not such
220 a good idea for recording
223 Original protocol: mixer runs a network server; sinks run
224 as clients and receive DIF over TCP
227 Later enhancement: sink reports whether it will record;
228 mixer can start, stop and cut recording
231 Next release: file and pipe sinks built into mixer along with an
239 <object data="screenshot-1.png" width="50%"></object>
244 <object data="screenshot-1-annotated.png" width="50%"></object>