Hi everyone
i'm trying to stream over the network a USB webcam. I previously manage to do so at 1280x720 with 10 fps but couldn't get to 25 or 30 fps because the camera wasn't powerful enough. So i bought a new USB camera (Logitech C920) wich is able to do 720p at 30fps (as the documentation says)
The problem is that it is still not working for 25 or 30fps
Here are the gstreamer commands i'm using:
Sender:
gst-launch v4l2src device=/dev/video0 ! video/x-raw-yuv,width=1280,height=720,framerate=10/1 ! ffmpegcolorspace ! vpuenc codec=6 ! rtph264pay ! udpsink host=192.168.20.27 port=5000
Receiver:
gst-launch udpsrc port=5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)96, encoding-name=(string)H264" ! rtph264depay ! ffdec_h264 ! xvimagesink
So this is working at 10fps. When i try to change to more fps, it fails with the following error:
Setting pipeline to PAUSED ...
[INFO] Product Info: i.MX6Q/D/S
vpuenc versions
plugin: 3.0.11
wrapper: 1.0.46(VPUWRAPPER_ARM_LINUX Build on Sep 29 2014 16:56:55)
vpulib: 5.4.23
firmware: 3.1.1.46056
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format
Additional debug info:
/media/philippe/data/fsl-release-bsp/build-x11/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r3/gstreamer-0.10.36/libs/gst/base/gstbasesrc.c(2830): gst_base_src_start (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Check your filtered caps, if any
Setting pipeline to NULL ...
Freeing pipeline ...
If i delete the width parameter, i get up to 15fps but not more. As the error states, it could not negotiate format. So i believe i have to change/add/remove the "video/x-raw-yuv,width=1280,height=720,framerate=10/1" parameter. But what should i change to make it works?
PS: if i plug my USB webcam to my computer, i manage to record 720@25fps with VLC without any problems
PS2: When i add the plugin videorate to my gstreamer command, it gets really laggy (less than a frame per second), but it seems it is not due to CPU usage, since it remains the same
Any pointers would be of great help
Thanks
Solved! Go to Solution.
Hi Philippe
most probably this is i.MX6 USB port performance limitation (link below),
20-25MB/s according link below (about 1280x720@10 fps),
real limit actually depends on board configuration
https://community.freescale.com/message/353963#353963
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Philippe
most probably this is i.MX6 USB port performance limitation (link below),
20-25MB/s according link below (about 1280x720@10 fps),
real limit actually depends on board configuration
https://community.freescale.com/message/353963#353963
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello @Igor
I am not able to open the below link.
https://community.freescale.com/message/353963#353963
Can you please help here?
Question:
1. I am using a UVC camera on i.mx6 dual processor, how can I decode MJPEG to stream video upto 1080p 30FPS?
What do you mean by "real limit actually depends on board configuration"?
Does this mean the problem only appears on the evaluation board?
Hi Philippe
I meant software load: with rich GUI performance
will be less. I doubt if 20-25MB/s may be exceeded.
~igor