Contents
Video Equipment Checklist
- Camera with audio/aux input. Audio quality will be significantly better if you can get an input feed of conference audio from the mics rather than using the microphone to record ambient audio from the camera location.
- Sony Handicams do a reasonable job. Older models used tapes and newer models are mostly Hard Drive based.
- Canon FS100 cameras have also been used which store AVI on Secure Digital cards.
- Tri-pod.
- Inexpensive models will suffice, although they can be 'sticky' when moving the camera so that it sticks and then 'jerks' a bit while panning. A motorised tripod with integrated camera control is ideal.
- Sufficient tapes or storage media for a day of the conference.
- For DV tapes, LP mode provides 93 minutes of recording and is easily good enough.
- After recording one talk, think seriously whether it's a false economy to try fit another talk on the end. Filling the ends of tapes with short "WIP" sessions or similar may work better.
- For larger SD cards or hard drive based cameras, it helps to have a laptop to download the morning sessions at lunch and reuse the same media for an entire day if necessary.
- Power cords and charger.
- Gaffer tape for securing cable runs to surfaces.
Post-processing
The preferred video format will switch back and forth between a live view of the speaker, and a high resolution view of the slides. The views of the slides should come directly from the PDFs of the slides content, as opposed to the camera pointing at the projected image of the slides. One can also focus on the live slide and then merge in a slide still. The static frames of the slides content will compress very well, which allows us to publish high resolution content for those parts when the speaker is pointing / speaking / focus of attention.
It would be cool to be able to add a post processes 'pointer' to the slides when the author is pointing things out. Note: Please update this if you have a solution for adding a pointer to the videos directly. Pointer effects can be added after the fact with YouTube.
Slides
ImageMagick can be used to convert the slides.
- The command "convert -density 200x200 my-slides.pdf myslides-%03d.jpg" should produce a sequence of slides in jpg format suitable for including into most other media.
- Some reformatting may be necessary in some cases, and the following extended command is helpful (e.g. when the original script yielded portrait shaped output with all the image sitting at the bottom instead of 'landscape'.
- convert -density 200x200 -gravity South -crop 100%x100%-0-0 ${BASENAME}.pdf ${BASENAME}/${BASENAME}-%03d.jpg
Multimedia Software from Ports/Packages
I tend to capture session in chunks of two, three or even four speakers at a time. Some commercial products seem to have difficulty working with the size of these files (or perhaps the format). At DCBSDCon 2009, I was also fortunate to have Will Backman (BSDTalk) available to record audio at the podium. This meant I needed a non-linear video editing package for synchronizing the Audio/Video from my Canon with the Audio from Will's recorder. The commercial options are quite expensive (and unproven to me). Todd Fries kindly introduced me to some useful applications within *BSD ports that allowed me to make quick work of the edits and synchronization of the different sources.
Extracting the Session
As I mentioned, each of my source files contained between two and four different speakers. To mark and export each talk I used Avidemux. With this application you can mark your starting and ending frames and then export them in the original formats (in my case, MPEG-2/AC3) or encode them to something else.
- Using Avidemux, open the source file.
Set your A and B markers for your starting and ending frames, respectively.
From the drop-down, select your encoding formats. I use MPEG-4 AVC (x264) for my video and Copy for my audio. The default Copy selection leaves the original format intact for the respective stream.
Click Save and choose your file name and location.
For many users, this may be the only step you require. In my case, I needed to synchronize the audio streams so I have a few additional steps.
Ripping the Audio
I use Audacity to mix the audio, but first I need to rip out just the audio stream for processing. Audacity will not import audio from a video file. MPlayer makes quick work of this task. For this example, speaker.avi is the file we previously created using Avidemux. The audio is written out to speaker.wav.
- mplayer -ao pcm:file=speaker.wav -vo null speaker.avi
Synchronizing the Audio
This step is not difficult, but you will need to manually identify and synchronize the matching portions of each track. It takes a little bit of trial-and-error, but you'll be mixing your own Trance music in no time.
Open Audacity and choose File -> Audio -> Import (or shift-ctrl-I). Choose the WAV file that was created using MPlayer.
- Repeat for your 2nd audio track.
From the toolbar, select the Time Shift Tool.
Slide the 2nd audio track until it's synchronized with the 1st track. Note that the Time Shift Tool only operates when the track play is stopped. It will not work when tracks are playing or paused. Synchronize the tracks so that you no longer hear any echos in the speaker's voice.
Export the track (File -> Export) to a compressed format such as MP3. This will cut down drastically on the size of the movie file.
Merging your Audio and Video
Now you should have a quality, albeit lossy, audio track suitable for the final movie. Using MEncoder, replace the original audio stream with the MP3 file. This example reads in the MPEG-4/AC3 movie (AVI container) we saved with Avidemux (speaker.avi), replaces the audio track with our merged file created in Audacity (speaker-merged.mp3), and saves the final result to our new MPEG-4/MP3 movie (speaker-final.avi). Feel free to experiment with the encoding formats. I've been pleased with these results but you may find a more appropriate combination for your needs.
- mencoder -oac copy -ovc copy -o speaker-final.avi -audiofile speaker-merged.mp3 speaker.avi
iMovie
iMovie HD (version 7) seems to handle some past-over operations better than iMovie version 8. For example the "Paste-at-head" feature allows one to replace parts of the video with slides without interrupting the audio. If you have iMovie HD (6 or 7) here is how you do this:
- Import the tape into a fresh project.
- save
- Move all sequences that are part of the talk into the timeline.
- save
Select all timeline, then.. advanced->extract audio (this will give you a separated audio track).
- Go eat dinner, or shampoo the cat. Your choice.
- save
- Drag and drop all the .jpg slides into the 'clips' buffers.
- save (have you got the message yet? iMovie has crashed on me and losing 4 hours of edits *HURTS*. )
- Select the first slide and 'copy' (splot-C).
Find where in the video you want to replace with this image. Use the two sliders under the main viewing window to make the section that you want to replace show as yellow. If you have a single long clip you will find things easier if you break it up into smaller pieces using Edit -> Split Video Clip at Playhead (at a location where you think there will be a still inserted). I try keep these pieces around 5 minutes or so. Save after splitting. Select the piece you want to insert the slide into so that the timeline under the main window only covers this shorter piece of the video. That will make it possible to be more accurate with the mouse when selecting.
- Hit (SHIFT-splot-V) and that section of video will be replaced with the same length of still frames of the slide.
It generally looks better to transition between the live video and the slides using Editing -> Transitions -> Overlap with a one second transition period. Drag one to the beginning and end of the inserted slide.
- save
- Repeat for each slide. If you made a mistake with a still, don't worry, you can select the bad still sequence, and pull the region sliders to each end and replace it.
Exporting From iMovie
Modern versions of iMovie can export directly to YouTube and this is the preferred method. If you need the raw files to upload to other sites, then you can export it as follows (these settings are reasonable for high quality YouTube videos):
File -> Export
- Select Quicktime Tab at top.
- Select Compress movie for "Expert Settings"
- Hit Share
- Select a filename and location in which to save it.
- Select Export: "Movie to Quicktime Movie".
- Select Use: "most recent settings".
- Click on "Options"
- In the options window select "Settings" for the video section.
- Pertinent settings are: Compression: H.264, Frame rate: 29.97 (NTSC), Key Frames: Automatic, Quality "High", multipass encoding, data rate restricted to: 400kbits/sec (yields about 350Mb per hour), 1900kbits/sec (yields about 1024Mb per hour), or Automatic (yields about 1250Mb per hour). When done, select "OK" to get back to options window.
- Skip "filters and go to "Size": Use 640x480(VGA). Select "OK" to get back to options window.
- Select "Settings" for the audio section.
- Pertinent settings are: Format is Linear PCM, Mono, 16.000 kHz, sample size 16 bits, little endian. When done, select "OK" to get back to options window.
- Tick "Prepare for Internet Streaming" with option "hinted streaming". Select "OK" to get back to main menu.
- Hit "Save". At a data rate of 400 it will take about one hour per hour of video; at a data rate of 1900 it will take about four hours per hour of video.
You may select less frames per second if there's not a lot of movement. Lectures are still very watchable at 15 frames a second.
FinalCutPro
Coming soon. We have approached Apple about sponsoring a few copies of FinalCutPro for bsd conference video production. If that happens, we'll post tips here.
Camtasia for Mac
The same export settings as described in iMovie can be used in Camtasia for Mac. Camtasia supports adding subtitles to sections of the video since version 1.2. Searchable video is also supported, so that viewers can jump from i.e. a table of contents to specific sections of the talk.
Subtitles
YouTube allows us to easily create subtitle tracks in a variety of different languages to be streamed with the video according to the language preference. We need volunteers to help subtitle these videos!
Publishing
YouTube
We have a special BSDConferences channel on YouTube for hosting long technical BSD content from BSD conferences. Please talk with MurrayStokely about getting credential to upload directly to this channel, or mail him with the location of the video files that should be uploaded there. Files can be up to 1024MB in size, and most importantly do NOT have the normal 10 minute limit of YouTube videos. This channel can host longer hour long content. Please upload the highest quality version that fits in 1024MB. YouTube will automatically re-encode to lower resolutions and serve the appropriate resolution to users based on their available bandwidth.
The videos in YouTube can be searched, extracted, and embedded to be used on other websites with the YouTube API. You can also programmatically get access to the comments, ratings, and other metadata in the channel. There is an open docs bug about integrating this YouTube api directly into multimedia.pl in the web build so that new YouTube videos show up on www.freebsd.org/multimedia
FTP
In addition to YouTube, we'd like to store the videos for posterity in a non-flash more open format that can be viewed with mplayer on FreeBSD. All the videos should be stored preferably in one canonical FTP site, which needs to have a few hundred gigabytes free for these videos. Please update this section with the preferred FTP site address.
The possible candidates for video hosting are listed below:
Server |
Location |
Available space |
Available bandwith |
Path on server |
HTTP streaming, HTML5 video
It'll be also worthwhile to provide access to the video in HTTP-streamable format (ASF, etc) or as a HTML5 compatible video (Theora). Mencoder/ffmpeg could be used to convert between formats, but none of them could produce Theora video currently. It was reported that multimedia/ffmpeg2theora works fine. The work is being done on evaluating possible methods and formats.