pvrxxx recording

Rick C. Petty rick-freebsd at kiwi-computer.com
Thu May 29 17:35:40 UTC 2008


On Thu, May 29, 2008 at 07:02:48AM -0400, Jim Stapleton wrote:
> OK, I got my pvrxxx problems fixed (I apparantly had my ffmpeg line wrong).
> 
> I'm having trouble getting a decent recording though. The uncompressed
> stream is too large for comfort.

Uncompressed, it should be.

> $ cat /dev/cxm0 | ffmpeg -i - -vcodec $v -acoded $a -f $f out.mpeg
> $ ffmpeg -i /dev/cxm0 -vcodec $v -acoded $a -f $f out.mpeg

So you're fine with a multi-step process?  BTW, you might get better
performance if your first command is:

	ffmpeg -i /dev/cxm0 -vcodec $v ...

> Note: 'cat /dev/cxm0 > out.mpeg' works fine, and looks great - it's
> just huge (3-4GB/hr).

That's not that huge.

> Does anyone know of a format that should work well? The computer is a
> Optron 185 (dual core, 2.4Ghz), with 3GB memory, and a 7200RPM hard
> drive.

Your computer is too slow to do a live decode/encode of an MPEG2 stream.
Since you don't mind a multi-step process, why don't you record at the
standard bitrate and do a post-process step?  That's what I do.  I actually
have my own cxm_record program which calls the setchannel command and then
performs a cat(1) equivalent.  After the recording is finished, I use
multimedia/avidemux to select cut/edit points and a custom script to
convert the avidemux project to a multimedia/dvbcut project.  I've found
dvbcut does a better job of cutting the MPEG2 streams and does a minimum
recoding process (only at the edit points).  From there I run a custom
script to furthur compress the MPEG2 stream and turn it into a DVD VOB.
This script may be of interest to you and your issue, so I'll describe it
here.

I demultiplex the audio & video streams separately using multimedxa/mpgtx:

mpgdemux -b $TMP_PREFIX $OUTPUT_FROM_DVBCUT

Then, in parallel, I convert & compress the audio and video streams.  For
the audio, I make a named pipe and decode using audio/lame:

mkfifo $TMP_PREFIX.wav
lame --decode $TMP_PREFIX.mp2 $TMP_PREFIX.wav

then encode into AC3 using multimedia/ffmpeg:

ffmpeg -i $TMP_PREFIX.wav -y -vn -ab 192000 -acodec ac3 -ar 48000 -ac 2 \
	$TMP_PREFIX.ac3

For the video, I requantize the video by a factor of 3:2 using
multimedia/transcode:

tcrequant -f 1.5 < $TMP_PREFIX-0.m2v > $TMP_PREFIX-1.m2v

After both are finished, I multiplex the streams together into a
dvdauthor-ready VOB using multimedia/mjpegtools:

mplex -v 0 -V -M -f 8 -o $OUTPUT.vob $TMP_PREFIX.ac3 $TMP_PREFIX-1.m2v

The end result is a file that's just over half the size of the original
without appreciable loss of quality.

-- Rick C. Petty


More information about the freebsd-multimedia mailing list