For those of you who have never seen our videos, I have to tell you that they're pretty cool! We actually record two video streams: one with a video camera that is pointed at the presenter, and one of the screen that is recorded via the VGA output between the presenter's laptop and the projector. Then we have a flash application that shows those two video streams side-by-side. (This is the same Flash application that we use for our e-learning DVDs.) We have spent a lot of time developing this process and this applications, because we want people watching the videos to get as much as the experience of "being there" as possible, and we realized that means we have to show the full resolution screen along with a video image of whomever is talking.
Here's a quick overview of our setup in each breakout room onsite at the conference:
We have a fairly powerful PC in the back of the room that the video operator sits behind. That is what we use to do the recording and encoding.
A video camera on a tripod is a plugged inot a to a TV capture card on that computer. We also grab an audio feed from the room directly into our camera and send that to the computer along with the video.We use the generic software that came with the capture card to record the video + audio.
In the front of the room, we have an active VGA splitter / extender. The presenter plugs their laptop into this box, and it splits the signal into multiple outputs. We send one output to the projector for the screen at the front of the room. We send a second output to a little LCD monitor in the front of the room facing the presenter so he or she can see what's on the big screen behind them. We send a third output through a very long (and ridiculously expensive) VGA cable that snakes around to our PC in the back of the room.
At our PC, we have a piece of hardware called DVI2USB (made by Epiphan). This is essentially a VGA/DVI video capture card. We have software running on our computer that lets us record the presenter's screen using any standard video codec. We use a generic Intel codec and save the screen video as AVI.
When the session starts, the video operator presses the “record” button in the video recording software and the “record” button in the screen recording software.
When the session ends they stop both applications, and (in theory) we have an MPG an AVI file.
This is where the fun begins
The first thing we have to do is to synchronize the two files so that they are at the same time when they both start. (After all, when our Flash video player plays both video stream, they need to have the same starting point or else they won't be in sync.) This is impossible to do at the time that we record because we have two separate apps, and each one takes a varying amount of time to initialize and actually start recording. Plus we usually have to trim some of the beginning since we start recording a few minutes before the person actually starts talking.
Synchronizing these is really hard. We have to watch both videos to try to find some screen action that was also caught on the video camera, and then note the mm:ss position of that in each file and then use that to calculate our offset. Then we also need to calculate the amount of time that we have to trim off of the front of each video. BriForum 2007 had 72 sessions. That means 142 video files!!!! We are creating a very complex spreadsheet that contains all these in and out points that we calculate.
Once we have the spreadsheet filled out, we need to go into Sorenson Squeeze (a software product we use to encode the videos to FLV) and load the video files, apply our settings to each, and then configure the "in" points for each video. We can batch render the videos, but the process of importing them and setting our in points is manual (times 142 videos!).
With me so far? Now it gets even worse!
The software that records the VGA stream via the DVI2USB box is smart enough that it keeps on recording even if the VGA signal is lost. This is perfect for situations where we have multiple presenters and they switch their laptops back and forth. However, as you might expect, this software cannot keep recording to the same video stream if the resolution changes. When this happens it closes and saves the video file it was recording to and automatically starts recording a new AVI at the new resolution.
At first you might think this is cool. But this is very bad!! Why? Many of the presenters use VMware on their laptops, and while their local laptops are configured to output the screen at 1024x768, when they switch into a full screen VMware session the VGA output switches to the laptop native at 1400x1080 or whatever. So this means we now have two AVI files--one for each segment. And then they switch back to the PPT. And back to the VM... Seriously.. some of these sessions had more than ten separate AVI files!
Okay, so why don’t we just find some app that can merge or combine all of these files back together again? Of course it’s not that easy. The DVI2USB software has some delay between stopping one video and starting the next. (Saving the old file, resyncing to the new VGA resolution, etc.) While this is happening, the presenter is still talking, and the presenter video is still recording! This means that we have to manually open up some video editing software, import an AVI clip, add some white space, import the next AVI clip, import some white space, etc, etc.
And you know that the amount of video we "lose" in between VGA streams varies, so we have to "resync" the videos after every single change!
Once we have our "new" AVI file built, we can import it into Squeeze and render it. The rendering process takes forever too.. Typically about 2x realtime. (72 sessions averaging one hour each, two videos per session, 2x realtime.. we're looking at almost 300 hours of rendering time alone!)
After the videos have been rendered to FLV, we have to pump them through this piece of software called FLVMDI (Flash Video Metedata Injector) to make the files compatible with the way we stream them.
So, any questions?
Seriously, we're working through these as fast as we can, but it's still going to take more time. I think we'll have the first batch of videos posted over the weekend (just a handful), and then you'll see more and more pop up every day.