Transcode

From LinuxTVWiki
Revision as of 12:54, 12 April 2010 by Yotam (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

This example works on saa7134 cards, using the saa7134-alsa DMA module under OSS emulation:

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.

Switches

  • 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.

External Links