Monday, October 13, 2008

screencasting - slackware

links: ffmpeg commands
Lee Lefever videos are not screencasts but they reveal the value of a simple idea. His guiding philosophical considerations are well-described in his blog. Educational screencasts do well to follow similar lines. Screencasts from teacher Joe Wood, have a similar flavor to Lee Lefever's videos, and Wood clarifies his ideas well.

What about screencasts in Linux? My previous work making a required video for an education class left me feeling underwhelmed. It was initially raw AVI from the camera, but I muxed it to MPEG2. There appeared to be resolution issues - the picture wasn't as clean as I hoped. This time, I'm starting with screencasts. I'll eventually work back to recording and cutting video when I can easily manage screencasts. Another side of it is the computing power required for rendering -- I want to increase the efficiency there.

istanbul


First attempt was with Istanbul, which was pre-installed with Zenwalk 5.1. Something was wrong with the framerates, and all I was seeing was flashing screens, which appeared to indicate a large number of frame drops. Then I looked at this guy's post and it appears that there might also be screen size as well as framerate issues. Istanbul has no sound supplied, it must subsequently be muxed. What could possibly be more annoying?

recordmydesktop


Includes sound and screen, and outputs in Ogg-Theora as .ogv files. Seems the most useful, but the ability to record sound varies with systems. When it works, it works well. The .ogv file can be shifted to .flv format for YouTube uploads or website. I used a script for doing so from here  though I'm sure it's also around at other sites. I had to modify the script slightly for CLI use, and libmp3lame.so.0 must be installed for the mencoder inside it to follow the script properly. I renamed the script ogv2flv.sh and it runs on command line once libmp3lame.so.0 is installed:
$ ogv2flv.sh input.ogv
There is no config file for the CLI version of recordmydesktop, which means hideously long command line entries. Further, typing $ man recordmydesktop only produced "No manual entry for recordmydesktop". Nice going. It appears the best thing is the sourceforge version, until that URL breaks. Strike two. However, a nicely sized screen which works well from command line for capturing browser without the status bar, but including the URL bar is
$ recordmydesktop -x 14 -y 55 -width 988 -height 674 -fps 12 -o wobbly.ogv
This seems to default constantly to 44100 and 2 channels in spite of my entering 1 channel and 22050 frequency and the device hw:0,0, so I eventually deleted these parameters from the line.

Recordmydesktop also has a python based GtK front-end available to those who are interested. This program does have a config file .gtk-recordmydesktop, which appears to be an advantage over remembering the complex CLI commands necessary to avoid the inevitable "broken pipe" commands if you forget one parameter. Each time I edited the config file by hand, the program overwrote my screen size settings each time it opened. Strike three.

xvidcap


Solid, but a few quirks. 1) .xvidcap.scf is supposed to be available for a config file, it apparently doesn't work well or is not read. Accordingly, right clicking on the gui controls provides preferences. Not too bad and they can be saved there too. 2) Have to adjust the box size each time. 3) On at least one occasion, it might have muted my microphone during start-up. 3). Sound is garbled unless using oss emulation aoss. So, I might start xvidcap to do 10 frames per second like this:
$ aoss xvidcap --fps 10
Once screencasting is complete, ffmpeg can shift the mpeg into a YouTube flv in a single command
$ ffmpeg -i test2.mpeg -ar 44100 test2.flv

sound levels


Microphone settings become significant in screencasting. Here are a couple of cards.

Realtek ALC660-D
I set "Mic" as the capture source, and vary the relationship between Mic Boost, Digital, and the Capture bar. The settings which avoid clipping and feedback have been Mic Boost=33, Digital~65-70, and Capture~77-82. Digital seems to be the most important for hiss and I play trade-off between Digital and Capture until the hiss disappears while attempting to avoid clipping distortion if Capture is set too high.

No comments: