Transcode provides an integrated framework for a large number of multimedia projects, bringing them together under one umbrella as a suite of command line utilities that are capable of encoding and transcoding a variety of video and audio codecs and for converting between different container formats. Transcode also provides further features such as post-processing filters, the ability to import DVDs on-the-fly, and being capable of recording from V4L devices.
Recording from a V4L device
transcode -x v4l2=resync_margin=1:resync_interval=250,v4l2 -M 2 -H 0 \ -i /dev/video$DEV -p /dev/dsp$DEV -y ffmpeg -F h264 -c 00:$TIM \ -g 640x480 -f 29.970,4 -u 1024,2 -w 800 -b 128 -Q 5 -e 32000,16,2 \ -o $DIR/$FIL.avi --progress_off
The trick here is to set the audio import to 32000,16,2 -- the parameters used by the DMA audio channel on the card, and thus by the 7134-alsa module. The resync parameters are borrowed from Francesco Romani's recent addition to the transcode wiki; they appear to solve the sync problem, way cool!
The attempt to start two threads -- "-u 1024,2" -- fails because transcode doesn't yet have its own x264 export module (Francesco is working on it). The workaround is to create ~/.transcode/ffmpeg.cfg with this content:
[h264] threads = 2
On a dual-core, I found xh26 doesn't do a great job with two threads -- CPU utilization doesn't get past full use of one core -- but ymmv. In addition, the recording time is extended beyond what is requested by up to 40%.
The audio device referred to here is /dev/dspN, using the OSS emulation layer provided by ALSA. The transcode developers are working on accessing ALSA devices directly.
- For audio bitrates, you can use "--lame_preset medium" or specify a fixed bitrate, such as "-b 96"
- To turn off verbose progress feedback, for instance if you're having the result of a cron job mailed to you, use "--progress_off"
- To turn off device probling, use "-H 0" -- removes a few error messages, as v4l device probing is still imperfect in transcode
GUI Frontend for transcode's V4L functions
Gv4l provides a GUI frontend for transcode's ability to record audio & video streams from V4L devices, in either compressed or raw uncompressed formats.