Early outline of the talk
authorBen Hutchings <ben@decadent.org.uk>
Tue, 28 Dec 2010 22:10:22 +0000 (22:10 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 28 Dec 2010 22:10:22 +0000 (22:10 +0000)
Makefile [new file with mode: 0644]
dvswitch-simple.dia [new file with mode: 0644]
index.html [new file with mode: 0644]
screenshot-1-annotated.xcf [new file with mode: 0644]
screenshot-1.png [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..b6b835b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,18 @@
+all: s5-checksums.txt dvswitch-simple.svg screenshot-1-annotated.png
+
+clean:
+       rm -r s5-checksums.txt s5-blank dvswitch-simple.svg screenshot-1-annotated.png
+
+s5-checksums.txt: /usr/share/s5/s5-blank
+       s5 blank .
+       sed -i 's/url(bodybg.gif)//' s5-blank/ui/default/pretty.css
+
+%.svg: %.dia
+       dia --export=$@ $<
+
+%.png: %.xcf
+       gimp -i -d -b '                                                 '\
+'(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE "$<" "$<")))    '\
+'       (layer (car (gimp-image-flatten image))))                      '\
+' (gimp-file-save RUN-NONINTERACTIVE image layer "$@" "$@"))           '\
+'(gimp-quit 0)'
diff --git a/dvswitch-simple.dia b/dvswitch-simple.dia
new file mode 100644 (file)
index 0000000..d47a2e5
Binary files /dev/null and b/dvswitch-simple.dia differ
diff --git a/index.html b/index.html
new file mode 100644 (file)
index 0000000..3c5d0a7
--- /dev/null
@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<title>DVswitch - Ben Hutchings - LCA2011</title>
+<!-- metadata -->
+<meta name="generator" content="S5" />
+<meta name="version" content="S5 1.1" />
+<meta name="author" content="Ben Hutchings" />
+<!-- configuration parameters -->
+<meta name="defaultView" content="slideshow" />
+<meta name="controlVis" content="hidden" />
+<!-- style sheet links -->
+<link rel="stylesheet" href="s5-blank/ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
+<link rel="stylesheet" href="s5-blank/ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
+<link rel="stylesheet" href="s5-blank/ui/default/print.css" type="text/css" media="print" id="slidePrint" />
+<link rel="stylesheet" href="s5-blank/ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
+<!-- S5 JS -->
+<script src="s5-blank/ui/default/slides.js" type="text/javascript"></script>
+</head>
+<body>
+
+<div class="layout">
+<div id="controls"><!-- DO NOT EDIT --></div>
+<div id="currentSlide"><!-- DO NOT EDIT --></div>
+<div id="header"></div>
+<div id="footer">
+<h1>LCA2011</h1>
+<h2>DVswitch</h2>
+</div>
+
+</div>
+
+
+<div class="presentation">
+
+<div class="slide">
+<h1>DVswitch</h1>
+<h3>Ben Hutchings</h3>
+</div>
+
+
+<div class="slide">
+  <h1>What is DVswitch?</h1>
+  <ul class="incremental">
+    <li>
+      A software system that supports video mixing, recording and streaming
+    </li>
+    <li>
+      Designed particularly for the needs of technical conferences that
+      want to record and stream on a limited budget.  Now used more
+      widely, often without streaming.
+    </li>
+    <li>
+      Mixing is <em>live</em> - a requirement for streaming, and a way to
+      avoid the need for extensive editing after the event
+    </li>
+    <li>
+      Mixing is <em>interactive</em> - a requirement for good coverage of
+      presenters, audience and slides, but very limited in other
+      streaming software
+    </li>
+  </ul>
+</div>
+
+<div class="slide">
+  <h1>What is DVswitch <em>not</em>?</h1>
+  <p>
+    There are limited developer resources and limited goals for
+    DVswitch.  It is never intended to be:
+  </p>
+  <ul class="incremental">
+    <li>
+      A general video editor
+    </li>
+    <li>
+      An audio mixer (but it does implement audio dubbing and level monitoring)
+    </li>
+    <li>
+      A complete recording and publishing system
+    </li>
+  </ul>
+  <p class="incremental">
+    These are all better handled by other software and
+    hardware.
+  </p>
+</div>
+
+<div class="slide">
+  <h1>The 'DV' in DVswitch</h1>
+  <p>
+    The name refers to the DV formats used by many video cameras:
+  </p>
+  <table>
+    <tr>
+      <th>Profile</th><th>Specification</th><th>Video codec</th><th>Supported</th>
+    </tr>
+    <tr>
+      <td>Basic DV</td><td>IEC 61834</td><td>DV 25</td><td>yes</td>
+    </tr>
+    <tr>
+      <td>DVCAM</td><td>Sony proprietary</td><td>DV 25</td><td>probably</td>
+    </tr>
+    <tr>
+      <td>DVCPRO</td><td>SMPTE 314M</td><td>DV 25</td><td>probably</td>
+    </tr>
+    <tr>
+      <td>DVCPRO50</td><td>SMPTE 314M</td><td>DV 50</td><td>not yet</td>
+    </tr>
+    <tr>
+      <td>DVCPRO HD</td><td>SMPTE 370M</td><td>DV 100</td><td>not yet</td>
+    </tr>
+    <tr>
+      <td>HDV</td><td>IEC 61834</td><td>MPEG-2</td><td>no</td>
+    </tr>
+  </table>
+  <p>
+    DV video codecs compress each frame separately (unlike MPEG)
+  </p>
+  <div class="handout">
+    <p>
+      The lack of interframe compression means there is relatively
+      little delay between camera and mixer and we can cut between
+      sources without having to decode all sources all the time.
+      In fact, DVswitch doesn't need to decode even a single source at
+      full frame rate if you just cut between sources without using
+      mixing effects.
+    </p>
+    <p>
+      Unfortunately, most of today's consumer cameras don't have DV
+      output and may not provide live video output at all.
+    </p>
+  </div>
+</div>
+
+<div class="slide">
+  <h1>Overview of the system</h1>
+  <p>
+    A simplified view of the typical components:
+  </p>
+  <object data="dvswitch-simple.svg" width="60%" height="60%"></object>
+</div>
+
+<div class="slide">
+  <h1>Sources</h1>
+  <ul class="incremental">
+    <li>
+      Source types: firewire/USB DV device, ALSA capture device,
+      DIF file
+    </li>
+    <li>
+      Physical sources are spread around room and connected to the
+      mixer via TCP/IP networking
+    </li>
+    <li>
+      Original protocol: mixer runs a network server; sources run as
+      clients and send DIF over TCP
+      <ul class="incremental">
+       <li>
+         Requires a script to coordinate mixer and source startup -
+         an annoying complication
+       </li>
+       <li>
+         Improvement: tally lights
+       </li>
+      </ul>
+    <li>
+      Next release: sources run as RTP/RTSP servers and mixer
+      connects to them as a client
+      <ul class="incremental">
+       <li>
+         No custom scripts required; just configuration files
+       </li>
+      </ul>
+    </li>
+  </ul>
+</div>
+
+<div class="slide">
+  <h1>Sinks</h1>
+  <ul class="incremental">
+    <li>
+      Sink types: DIF files, pipe to arbitrary command
+    </li>
+    <li>
+      Also connected using TCP/IP networking, though this is not such
+      a good idea for recording
+    </li>
+    <li>
+      Original protocol: mixer runs a network server; sinks run
+      as clients and receive DIF over TCP
+      <ul class="incremental">
+       <li>
+         Improvement: sink reports whether it will record; mixer can
+         start, stop and cut recording
+       </li>
+      </ul>
+    </li>
+    <li>
+      Next release: file and pipe sinks built into mixer along with an
+      RTP/RTSP server
+    </li>
+  </ul>
+</div>
+
+<div class="slide">
+  <h1>Mixer</h1>
+  <object data="screenshot-1.png" width="50%"></object>
+</div>
+
+<div class="slide">
+  <h1>Mixer</h1>
+  <object data="screenshot-1-annotated.png" width="50%"></object>
+</div>
+
+</body>
+</html>
diff --git a/screenshot-1-annotated.xcf b/screenshot-1-annotated.xcf
new file mode 100644 (file)
index 0000000..e667ade
Binary files /dev/null and b/screenshot-1-annotated.xcf differ
diff --git a/screenshot-1.png b/screenshot-1.png
new file mode 100644 (file)
index 0000000..a04de74
Binary files /dev/null and b/screenshot-1.png differ