[MPlayer-users] Capture: video buffer full - dropping frame

Heine Laursen maillist at gozar.dynu.com
Sat Oct 9 19:54:43 CEST 2004


eyagerlist at chartermi.net wrote:

>> I used the following command to encode:
>> nice -n -19 mencoder -endpos 01:40:00 -tv
>> driver=v4l2:input=2:mjpeg:normid=0:decimation=1:adevice=/dev/dsp0:amode=1:fps=25 
>>
>> -ovc lavc -lavcopts vcodec=huffyuv:vstrict=-1  -oac copy -o capture.avi
>> tv://
>>
>> Are there any thing wrong with my mebcoder options?
> 
> 
> First, you've set your capture card to use hardware MJPEG compression. 
> Most video codecs use a raw uncompressed video stream on their input. 
> Mplayer has to convert the MJPEG video stream back into a raw stream for 
> use with other video codecs which is wasting CPU time.  If you don't 
> intend on creating an AVI on-the-fly with an MJPEG encoded video stream, 
> set the video capture card to output a raw uncompressed format instead.
> 
> Second, forget about using the huffyuv codec.  The huffyuv is a lossless 
> compression.  Since you've already performed a lossy compression by 
> setting your capture card to output an MJPEG video stream, using any 
> lossless video codec is completely useless and entirely 
> counterproductive. All it will do is create a larger file.

Thanks, for clearing alot of stuff up I did'ent know.

If my capture card don't support mjpeg it is then okay to use huffyuv?

I have just noticed another thing. My capture card is capturing 
interlaced. Is there any way I can get it to stop that, or is it out of 
my control?
I fixed it useing -vf pp=ci when i futher encode the video to divx

> I don't have a capture card that does MJPEG compression, so I can't test 
> this.  You should try to use "-ovc copy" instead of "-ovc lavc" which 
> should (maybe), create an AVI with an MJPEG video stream.  For what you 
> appear to be trying to accomplish leaving the MJPEG stream alone and 
> copying it into the AVI is closest you are going to get to "lossless 
> compression".

Just did a test useing -ovc copy, and I don't think my cheep Terratec 
Cinergy 600 TV suport it eather.
The command i used!

mencoder -endpos 00:05:00 -tv 
driver=v4l2:input=2:mjpeg:normid=0:decimation=1:adevice=/dev/dsp0:amode=1:fps=25 
-ovc copy -oac copy -o test.avi tv://

This is the output of the test useing mplayer -identify

D_FILENAME=test.avi
ID_VIDEO_FORMAT=YV12
ID_VIDEO_BITRATE=7069128
ID_VIDEO_WIDTH=704
ID_VIDEO_HEIGHT=576
ID_VIDEO_FPS=25,000
ID_VIDEO_ASPECT=0,0000
ID_AUDIO_CODEC=pcm
ID_AUDIO_FORMAT=1
ID_AUDIO_BITRATE=1411200
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=2
ID_LENGTH=300

>>
>> What happend?
>>
>> What does "video buffer full - dropping frame" mean?
> 
> 
> It means that your computer can't encode the video fast enough to keep 
> up with the video capture card.  If it can't keep up, it will simply 
> start throwing pieces of the video away to catch up.  When you play the 
> video back you will notice many freezes in video and jerky motion.  Also 
> huffyuv is very slow and possibly even broken.  Even on a very fast 
> computer I
> wouldn't expect it to work.

I have been playing around with mplayer, and I have managed to capture 
useing the divx codec. I know I know. It's a bad idea to use divx in 
capture. And I'm just playing around here.

mencoder -endpos 00:10:00 -tv 
driver=v4l2:input=2:mjpeg:normid=0:decimation=1:adevice=/dev/dsp0:amode=1:fps=25 
-ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o test.avi tv://

With 1 or 2 frames droped.

So my computer is soposeley fast enuf to capture live Divx
However with my little knowleage of capturing I don't know if that is 
the hole truth!

My specs is as follows:
ECS KT600-A motherboard
BARTON 2500+ Amd Cpu
80 GB SATA Harddisk (Dedicated only to capture)
Terratec Cinergy 600 TV Capture card

Thanks for all your help.




More information about the MPlayer-users mailing list