[Debconf-video] Draft video team paper: Live multi-camera production with dvswitch
Attached is a draft in plain ASCII with URLs to the images
that are used as illustrations. I would like to get the
rest of the team to review it, and to make a better screenshot
before it goes to print.
--
Herman Robak
[ DRAFT! ]
* Live multi-camera production with dvswitch *
- Using only regular computers, ethernet and DV cameras -
Herman Robak
Dvsource firewire
Dvsource firewire captures DV video from a DV camera (or scan converter)
over an ieee1394 port. It runs non-interactively, and can be left running for
the whole recording session. The CPU and I/O load is modest; any old machine
with a firewire port will suffice for dvsource-firewire. The machine may be
headless (no screen or keyboard, just network).
Dvsource firewire invokes the program "dvgrab" to capture video through the
firewire port. The computer must have a ieee1394 stack that is supported by
dvgrab for this to work. On Debian Etch the default kernel has the old
raw1394 interface, which is well supported. If you use Lenny or Sid you may
have to make a custom kernel, as the new ieee1394 stack (called "juju") is not
fully supported in userspace yet.
Dvsource file
Dvsource file reads from a DV file, and sends it to a dvswitch. It has a
loop option, so a short video can be used as a banner (running infinitely)
It is also useful for testing dvswitch if you don't have cameras or firewire
controllers.
Dvsink
Dvsink directs a DV stream (typically from dvswitch) to a file.
Dvswitch
Dvswitch is the heart of the suite. It is the only part with a graphical user
interface, and this is where all the user interaction goes on during a
recording. The operator chooses which of the incoming DV streams stall be
recorded to disk and/or output to a live stream.
Figure: (screenshot) <http://www.nuug.no/pub/herman/debconf8/dvswitchmore.png>
Dvswitch receives multiple DV streams, decodes
them in black and white low quality (faster) and scales down the images to
preview "thumb nails". One of the streams is decoded in high quality, and is
displayed in full size and colour. That is the master stream, which goes to
the receiving dvsink.
Normally, the decoding is for display only. The master stream is forwarded,
as is, to the dvsink. The decoding and display run with lower priority,
so dropped frames only affect the display, not the recorded stream. A modest
laptop will be fully usable for pass-through operation.
However, when "Picture in Picture" is used, dvswitch has to decode _two_
streams in full quality. It also has to recode the new combined image. Since
this is no longer pass-through, any dropped frames in the two input decodings
and the output recoding will go into the recorded output. To use Picture in
Picture a rather powerful computer is needed, like a laptop with two CPU
cores.
Status
Dvswitch's author, Ben Huntchings, classifies dvswitch as alpha software. The
dvsource-firewire program is not much more sophisticated than dvgrab and
netcat piped together. It uses TCP, not UDP, so network congestion must be
avoided.
A more capable transport protocol is being researched. A standardised way to
send commands to the source is desired, to start/stop capturing and to cue
non-live sources like recorded tapes and files.
Yet dvswitch is in production use within Debian. The videos from Debconf7 in
Edinburgh were produced with dvswitch, and that worked very well. The setup
was large, with eight cameras and a dozen computers.
Figure: <http://wiki.debconf.org/wiki/Image:Video-setup-dc7.png>
Required hardware
* DV video cameras with ieee1394 ("firewire", "iLink") output port.
* Computers with ieee1394 ports and an ieee1394 driver stack supported
by dvgrab!
* Ethernet switch (at least 100 Mbit) or multiple NICs on the dvswitch host.
* Dedicated network with ample capacity. Each DV stream has ca. 30 Mbit/s.
* Dvswitch computer
Recommendations...
* Gigabit switch
* Scan converter from VGA to DV, for capturing the presenter's computer screen.
* Dvswitch computer with two CPU cores.
Reply to: