gpt4 book ai didi

c++ - GStreamer + OpenCV视频处理问题

转载 作者:行者123 更新时间:2023-12-02 17:18:17 29 4
gpt4 key购买 nike

我正计划从OpenCV中为视频文件流/实时rtsp流进行VideoCapture。但是,在我的程序中使用VideoCapture时会有很多延迟,因此我决定改用gstreamer管道。例如,我曾经

VideoCapture capVideo("filesrc location=CarsDriving.mp4 ! qtdemux ! h264parse ! nvv4l2decoder ! nvvidconv ! video/x-raw, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink ", CAP_GSTREAMER);
我的程序可以运行,但是如果我要执行类似的操作
capVideo.get(CAP_PROP_FRAME_COUNT)
它总是返回-1,因为GStreamer有此警告
[WARN:0]全局/home/nvidia/Downloads/opencv-4.4.0/source/modules/videoio/src/cap_gstreamer.cpp(898)打开OpenCV | GStreamer警告:无法查询流的持续时间
[WARN:0]全局/home/nvidia/Downloads/opencv-4.4.0/source/modules/videoio/src/cap_gstreamer.cpp(935)打开OpenCV | GStreamer警告:无法查询视频位置:status = 1,value = 1,duration = -1
如果我将gstreamer用于视频管道,如何在opencv中获取帧数?我需要异常(exception)的帧数和视频处理技术。

最佳答案

这是一个错误,@alekhin提到了herehere。还提到了如何解决。更改后,您应该重建opencv。
您也说过:

However, the VideoCapture has alot of latency when used in my programso i decided to use the gstreamer pipeline instead.


rtsp摄像机通常将流作为 h264/h265编码数据。如果您尝试通过CPU而不是GPU解码数据,那么速度不会有太大提高。为什么不选择 CAP_FFMPEG标志而不是 CAP_GSTREAMERCAP_FFMPEG将比 CAP_GSTREAMER更快

关于c++ - GStreamer + OpenCV视频处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63684485/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com