Nanog Webcast Equipment

Anton Kapela tkapela at gmail.com
Wed Jul 1 15:15:31 UTC 2009


On Wed, Jul 1, 2009 at 1:24 AM, Charles Wyble<charles at thewybles.com> wrote:

> Would love to see replies and/or summary on list if possible. It's a
> somewhat complex problem, and there are many solutions out there. Having
> feedback on what was used and any feedback on it would be great!

For the benefit of all, I'll jot a list of the "parts" that comprise
the NANOG video rig. In actuality, there are three, sometimes four
"rigs" (input->encoder->server/relay->viewer/listener chains)
operating at NANOG in parallel.

Primary Video Encoder

-highish-end multi-core p4 desktop system
-wirecast (http://www.telestream.net/wire-cast/overview.htm) for
genlock- and sync-less video input mixing
-prep'd and networked presenter laptop for feeding "VNC-like"
screen-scrapes directly to the encoder system, the preferred method
for acquiring slideware "video" (check the wirecast docs for the
"presenter network transport" stuff)
-s-vid/composite, direct-show interface compatible video ADC's (analog
to digital converters--"capture cards," etc. direct-show is a
"standard" way for userland apps to interface to video framebuffer
sources, inputs, etc)
-two ntsc cameras (using s-video baseband signals, over baluns for
coax to UTP conversion)
-two pan-tilt-zoom serially controlled "mounts" for said cameras
(though the ones nanog uses today are integrated camera/ptz+planar
actuators)
-audio source from "house PA" system passed through small mixer for
gain staging/gain control/rough tone control
-standard 'sound card' for audio ADC (usually mono, 48khz sample rate)
-serial ptz controller itself, with multiple "memory" positions (i.e
push-button preset pan/tilt/zoom settings are issued to the cameras by
the MERIT/NANOG video rig operator to follow Q/A sessions, speakers on
stage/mics, etc)
-svga to ntsc/s-vid scan converter
-vga buffer/isolator with integrated amplifier and splitter (send
video to both projectors, drive/equalize long-ish VGA analog cabling,
isolate outputs from each other, and feed the input of the vga->ntsc
scan converter)
-more vga/utp baluns, etc
-rs232/utp baluns/buffered isolators for ptz camera controls/ancillary
device control

Once inputs arrive at the encoder system, the operator selects
transitions (fade/dissolve/blend/etc) and real-time mixes the
presenter camera, the Q/A mic camera, drives and selects the PTZ to
follow the speaking/questioning, and chooses when and how to
overlay/superimpose/picture-in-picture the VGA scan converted signal
vs. the "presenter network" source.

The wirecast application does both the mixing, as well as encoding of
"raw" YUV video into a mpeg4 h.264 output stream. We usually configure
the wirecast "transport" output as a pair of RTP streams, one carrying
audio, the other video. These RTP streams 'land' on a RTP->RTSP
controlled gateway (i.e. what we call "quicktime" stream on the nanog
webpage). Alongside this mp4/rtp stream, we'll typically configure a
windows media 9 a/v stream, using MMS and ASF wrappers/transports. A
windows media relay server at MERIT or I2 (I forget which) provides
viewers a place to connect to the "windows media" stream.

Secondary Video Encoder

-average p4 laptop
-usb interface ntsc s-vid ADC/capture device, supported via directshow
software library
-wirecast or real producer pro, somtimes windows media encoder
-given single input from presenter camera, typically, and audio feed
from hotel/building PA system
-records to local disk (external USB attached disk, etc)
-intended for "backup" archival meeting video in the the case of the
primary system failing, crashing, etc.

Primary Audio-Only Encoder

-average $anything laptop
-usb or built in ADC for PA audio input
-Winamp + DSP plugin using win32 LAME library for mpeg1 layer 3 audio encoding
-DSP plugin sends shoutcast stream to icecast/shoutcast relay server
$somewhere (iirc, Tim Pozar is involved with this platform, he may be
able to provide more details).
-Usually target a mono, 22.05Khz, 24 kbit/sec stream profile.

The goal is to make the audio program, at least, accessible to
V.whatever users on POTS.

Occasional "HD lite" Video Encoder

-average p4/p3 laptop
-firewire input card/port
-Canon HV20/30 HDV camera (using on-camera audio input from house PA
system, to preserve a/v sync)
-DVTS or VLC acting as "firewire" mpeg2 transport stream relay,
sending the raw ~25 mbit HDV mpeg2 stream over IP/UDP to an
off-network transcoder system
-VLC running on a linux 2.6.x 8-core system (of which ~half end up
idle), transcoding mpeg2 a/v into a h.264 video/mp4 AAC stream, ~1
mbit/sec
-Stream is relayed to viewers via external VLC acting as a tcp "tee" -
i.e. raw mp2 transport stream over http/tcp (very much a "yea, it
works, not a specification" way to simply toss raw mp2ts bitstream
over the internets)

This results in a 1440x1088 (non-square pixels, 16:9 display aspect
ratio, however) video stream at 30 progressive frames/sec, usually
with ~64kbits allocated to mpeg4 AAC monaural audio, 48 khz sample
rate. Conference talking-head video fits well into a h.264 stream in
this case due to the use of a "long Group of Pictures" in the VLC/h264
encoder configuration. We typically set the GOP anywhere from 90 to
100 frames, meaning that we can allocate lots more bits to the
Keyframe (making it 'less blocky), then using the remaining bits of
the GOP to signal predicted (ie. delta) frames.

This is perhaps the most tricky of the four encoder rigs to "get
right" given the degrees of freedom that VLC provides for h.264
encoding. However, feedback has been positive even with it's limited
appearance (and lack of slide input, Q/A mic coverage, etc).

HTH,

-Tk




More information about the NANOG mailing list