Grabbing in real time then transcoding to VCD..

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



  Iposted this to the mjpeg list but it might be worth
discussing here as well:

=====

  This question might take a bit of explaining, so bear with me.

  Like a lot of the world it seems, I have a linux box that
is working as a PVR.

  It's a celeron-500 with a 30G disk, a bt848 card, lirc receiver,
and some software that I've crufted up that basically calls
other apps to encode, save, play, etc. according to a
simple scheduler and a remote-control menu. Probably
what a lot of people here have running.

  Up to now, I've been using mp1e to record in real time
directly to the file I wanted to keep. So I'd run mp1e
with a VCD-sized frame, a suitable bit rate, and that would
be the file that I would later watch.

  However, the more I use it, the more I realize that even
given a high bitrate mp1e still doesn't look very good, and
being a real-time encoder, I don't really blame it. It looks
horrible at 500kbps, acceptable at 1Mbps, but doesn't seem
to get any better looking even at 5Mbps or more at the same
resolution.

  It sounds like to get the best quality file, I would
capture directly in YUV format and then recompress it
later with mjpeg to get my video files.

  Enter mjpeg...

  The problem with this is that I sometimes need to record
2-3 hours a night, and I don't have nearly enough disk
space to record 2-3 hours of YUV data.

  So... I've been experimenting with this:

- Recording with mp1e at 640x480 (v4l size) at a fairly
high bitrate of about 5Mbps. The goal is to get as few
compression artifacts as possible at this stage but still to
be able to record a busy evening's stuff with only 4-5G of
scratch space.

- After taping, recompressing the video with mjpeg, this seems to work
decently well at a reasonable 3-4 fps.

cat $1_large.mpg
 | mpeg2dec -s -o YUVh
 | nice -n 20 yuvdenoise
 | mpeg2enc -4 1 -2 1 -s -f 1 -o $1_temp.m1v

  This produces acceptable results. I lose a few gigs when I tape
but overnight scripts recompress the video and I get the space
back. I leave about 4G free at all times so I have about 26G
to store programs and the system is happy.

  The quality is fairly watchable and better overall than
straight mp1e was even at twice the bitrate. However, there
still are some visual funnies that are very likely the effect
of double-compressing, and I am looking at ways to improve
the final quality.

  Is there a better method of doing what I am trying to do?

  Basically what I could use is something that can do real
time capture with the highest possible quality in say, 2G per
hour of video. (an order of magnitude more than mpeg1 but
an order of magnitude less than straight YUV)

  Then I could postprocess down to VCD in the wee hours with
mjpeg.

  Ideas? Suggestions?


-- 
Trevor Boicey, P. Eng.
Ottawa, Canada, tboicey@xxxxxxx
ICQ #17432933 http://www.brit.ca/~tboicey/
"Hail to thee, oh wide screen TV..." - Johnny Bravo





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux