本文主要是介绍边缘计算【智能+安全检测】系列教程--使用OpenCV+GStreamer实现真正的硬解码,完全消除马赛克,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通过现有博客的GST_URL = "rtspsrc location=rtsp://admin:abcd1234@192.168.1.64:554/h264/ch01/main/av_stream latency=150 ! rtph264depay ! avdec_h264 ! videorate ! videoconvert ! appsink sync=false"
GStreamer的解码方式解码,大多情况应该存在上图马赛克的问题,请勿紧张,其实上述url并没有调用硬件解码,后面有调用硬件解码的ULR,我们来在接下来的介绍中释获。
通过RTSP协议连接海康威视摄像头将图片送入AI推理,发现OpenCV的VideoCapture使用的是软解码大量消耗了cpu的资源,并无法做到实时数据处理存在5秒钟的延时。只能把解码这部分送到硬件解码器去处理分摊掉cpu的压力,
NVCODEC是什么?
一语概括就是Nvidia提供的硬件编解码,它是一个专门的硬件元器件,在处理视频上面很有优势,但是不代表不消耗任何的cpu或者内存资源。下面我们就一步步开始实现硬件编码。
编译OpenCV
- 安装相关依赖
sudo apt-get update
sudo apt-get dist-upgrade -y --autoremove
sudo apt-get install -y \build-essential \cmake \git \gfortran \libatlas-base-dev \libavcodec-dev \libavformat-dev \libavresample-dev \libcanberra-gtk3-module \libdc1394-22-dev \libeigen3-dev \libglew-dev \libgstreamer-plugins-base1.0-dev \libgstreamer-plugins-good1.0-dev \libgstreamer1.0-dev \libgtk-3-dev \libjpeg-dev \libjpeg8-dev \libjpeg-turbo8-dev \liblapack-dev \liblapacke-dev \libopenblas-dev \libpng-dev \libpostproc-dev \libswscale-dev \libtbb-dev \libtbb2 \libtesseract-dev \libtiff-dev \libv4l-dev \libxine2-dev \libxvidcore-dev \libx264-dev \pkg-config \
这篇关于边缘计算【智能+安全检测】系列教程--使用OpenCV+GStreamer实现真正的硬解码,完全消除马赛克的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!