首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在windows 10上将rtsp流输入到opencv的正确输入是什么?

在windows 10上将rtsp流输入到opencv的正确输入是什么?
EN

Stack Overflow用户
提问于 2022-04-05 15:15:06
回答 1查看 1.1K关注 0票数 1

我试图获得一个实时视频输入到opencv。我的视频输入来自我本地网络上的一个ip摄像头,它发送一个rtsp视频提要。我想做的是一个使用ip摄像头的身体追踪器。Whit我的usb hd720罗技网络摄像头工作完美,但不是与ip摄像头。问题是有一个滞后,大部分是8秒。我已经试过最多的东西了,我可以把它降到3秒,但这还不够长:

1:将cv2.videoCapture()的缓冲区设置为1,并设置正确的帧,2:捕获摄像机馈送和我的跟踪程序的多线程,3:尝试了许多不同的代码。

我知道问题在于opencv不能处理rtsp提要。现在,我正试图得到我的相机饲料槽GStreamer。我希望有一种方法,gstreamer将rtsp提要转换为opencv可以更快地处理的内容。

代码语言:javascript
复制
import cv2
gst = 'rtspsrc location=rtsp://username:pasword@10.2.9.164:554/h264Preview_01_main ! ......... ! appsink'
cap = cv2.VideoCapture(gst,cv2.CAP_GSTREAMER)
while(cap.isOpened()):
  ret, frame = cap.read()
  if not ret:
    break
cv2.imshow('frame', frame)

if cv2.waitKey(400) & 0xFF == ord('q'):
  break

我希望有人知道正确的gstreamer字符串

我找不到正确的字符串使gstreamer将rtsp信号转换为app接收器。

EN

回答 1

Stack Overflow用户

发布于 2022-04-07 19:23:14

您可以尝试以下几种方法:

代码语言:javascript
复制
import cv2
gst = 'rtspsrc location=rtsp://username:pasword@10.2.9.164:554/h264Preview_01_main latency=300 ! decodebin ! videoconvert ! video/x-raw,format=BGR ! appsink drop=1'

# Variant for NVIDIA decoder that may be selected by decodebin:
# gst = 'rtspsrc location=rtsp://username:pasword@10.2.9.164:554/h264Preview_01_main latency=300 ! decodebin ! nvvidconv ! video/x-raw,format=BGRx ! videoconvert ! video/x-raw,format=BGR ! appsink drop=1'

cap = cv2.VideoCapture(gst,cv2.CAP_GSTREAMER)
while(cap.isOpened()):
  ret, frame = cap.read()
  if not ret:
    break
  cv2.imshow('frame', frame)
  if cv2.waitKey(1) & 0xFF == ord('q'):
    break

cv2.destroyAllWindows()
cap.release()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71754302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档