I know some of you have made systems like this before - dehacked, for example. But I just make one myself, and thought some of you might find the setup useful.
Basically, the goal is to be able to automatically encode a snes9x smv file:
smvenc movie.smv movie.mkv
with no other input needed.
The smvenc script is defined here:
http://folk.uio.no/sigurdkn/smvenc
It depends on snes2mkv, which encodes from the raw video and audio snes9x dumps:
http://folk.uio.no/sigurdkn/snes2mkv
It also uses a few other small tools for extracting information from the smv file:
http://folk.uio.no/sigurdkn/bread.cpp
http://folk.uio.no/sigurdkn/smvcrc.cpp
Additionally, an assumption is that a directory with symlinks from checksum to rom exists. I.e. if you have a snes rom /home/foo/roms/X.smc with checksum 05fbb855, then you should have a directory containing a symlink named 05fbb855 pointing at that file, and similar for the other roms you want the script to handle. The purpose of this is to avoid having to specify the rom yourself. The rom crc can be computed this way:
http://folk.uio.no/sigurdkn/romcrc.cpp
And that's it, I think. You'll have to edit the hard-coded path to the index directory to point at your own directory in smvenc. Also, you need snes9x-1.43 rerecording, Xvfb and ffmpeg.
I made most of this before I automated the encoding itself, since I wanted to be able to play an smv file simply by clicking on a link to it. But that is something I haven't gotten to work, since firefox refuses to look at anything but the mime type when determining what to do with a file, and smvs don't have an associated mime type. Stupid firefox.