使用sudo权限获取图像,帧数会降低很多
-
使用代码如下:
import cv2
import timecap=cv2.VideoCapture('v4l2src device=/dev/video20 ! image/jpeg,width=1280,height=720, framerate=60/1, format=MJPG, buffer=0 ! jpegparse ! mppjpegdec ! videoconvert ! appsink',cv2.CAP_GSTREAMER)
n=0
t=time.time()while n<60:
ret,frame=cap.read()
n=n+1print(n,time.time()-t)
cap.release()执行:python3 video-test.py
输出:
rga_api version 1.8.1_[5]
[ WARN:0] global ./modules/videoio/src/cap_gstreamer.cpp (1100) open OpenCV | GStreamer warning: Cannot query video position: status=1, value=13, duration=-1
60 1.0171270370483398可以看到1秒获得60帧
执行:sudo python3 video-test.py
输出:
[ WARN:0] global ./modules/videoio/src/cap_gstreamer.cpp (1100) open OpenCV | GStreamer warning: Cannot query video position: status=1, value=13, duration=-1
60 3.337216377258301
帧数降到了 不足20帧因为程序里需要用到GPIO口,需要使用SUDO权限,请问如何解决这个问题?
另外使用qv4l2 测试摄像头,无论是否使用SUDO 都能达到60帧 -
补充一下
使用摄像头为 imx339输入
gst-launch-1.0 v4l2src device=/dev/video20 ! image/jpeg, width=1920, height=1080, framerate=25/1 ! jpegparse ! mppjpegdec ! videoconvert ! fpsdisplaysink signal-fps-measurements=true sync=false
可达到60帧加上sudo执行
sudo gst-launch-1.0 v4l2src device=/dev/video20 ! image/jpeg, width=1920, height=1080, framerate=25/1 ! jpegparse ! mppjpegdec ! videoconvert ! fpsdisplaysink signal-fps-measurements=true sync=false
只能达到22帧左右