GNOME Bugzilla – Bug 145372
[v4lsrc] is really slow (Low fps) in 0.8.2 plugins
Last modified: 2006-01-11 15:57:23 UTC
i am using a logitech camera, and i get really bad fps with this pipeline: gst-launch-0.8 v4lsrc ! ffmpegcolorspace ! ximagesink RUNNING pipeline ... WARNING: Your X-Server has no DGA support. /dev/video0 [v4l]: no overlay support ** (process:14628): WARNING **: v4l-conf returned 1. ERROR: from element /pipeline0/v4lsrc0: Could not get/set settings from/on resource. Additional debug info: gstv4lsrc.c(636): gst_v4lsrc_src_link: /pipeline0/v4lsrc0: Could not set framerate of 0 fps But after i resize the window the fps goes back to normal. I also noticed that initially the cpu load is very low. But after resizing the window the cpu load is higher but the video has much higher fps.
It also takes about a minute to start the pipeline.
a) can you run with -v so I can see what it negotiates to ? b) the slow startup is because it tries to autoprobe fps. You can use autoprobe=FALSE and use filtercaps to set a framerate, or use another app to set framerate explicitly. Then it will use this one.
this is the output that i get with -v: gst-launch-0.8 -v v4lsrc ! ffmpegcolorspace ! ximagesink RUNNING pipeline ... WARNING: Your X-Server has no DGA support. /dev/video0 [v4l]: no overlay support ** (process:12637): WARNING **: v4l-conf returned 1. /pipeline0/v4lsrc0.src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480, framerate=(double)4.6875 /pipeline0/ffmpegcolorspace0.sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480, framerate=(double)4.6875 ERROR: from element /pipeline0/v4lsrc0: Could not get/set settings from/on resource. Additional debug info: gstv4lsrc.c(636): gst_v4lsrc_src_link: /pipeline0/v4lsrc0: Could not set framerate of 0 fps /pipeline0/v4lsrc0.src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(double)28.125 /pipeline0/ffmpegcolorspace0.sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)320, height=(int)240, framerate=(double)28.125 /pipeline0/ffmpegcolorspace0.src: caps = video/x-raw-rgb, width=(int)320, height=(int)240, framerate=(double)28.125, bpp=(int)32, depth=(int)24, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, endianness=(int)4321 /pipeline0/ximagesink0.sink: caps = video/x-raw-rgb, width=(int)320, height=(int)240, framerate=(double)28.125, bpp=(int)32, depth=(int)24, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, endianness=(int)4321 /pipeline0/v4lsrc0.src: active = TRUE /pipeline0/ffmpegcolorspace0.sink: active = TRUE /pipeline0/ffmpegcolorspace0.src: active = TRUE /pipeline0/ximagesink0.sink: active = TRUE I am not sure how set the fps using autoprobe
gst-launch v4lsrc autoprobe-fps=false ! ffmpegcolorspace ! xvimagesink If that's better, then you'll need to use that property in your application...
No updates on this for a year. Marking as closed.
Don't mark unfixed bugs as FIXED, Christian. The lack of feedback can be a valid reason to close a bug, but not to mark it FIXED when there's no reason to expect that it is.