Ubuntu下使用Python-opencv获取海康威视RTSP码流教程

    xiaoxiao2021-12-14  18

    已更新 /* 下面这部分也可以参考

    笔者在发布这篇博客之前为了拿到海康威视的码流费了九牛二虎之力,当然也可能是笔者太菜,但是既然折腾出来了,就分享出来供大家一起参考和学习。当然如果有更好的方案,希望兄弟们可以分享个好的方案过来。编译安装过程如下:

    1.解压xvidcore_1.3.3.orig.tar.gz文件到xvidcore-1.3.3文件夹下,执行以下命令 cd xvidcore-1.3.3/ cd build/generic/ ./configure --prefix=/usr make sudo make install 2.安装libx264,执行命令sudo apt-get install libx264-dev 3.编译安装ffmpeg,解压ffmpeg-3.1.2.tar.bz2文件到ffmpeg-3.1.2文件夹下,执行以下命令: ./configure --prefix=/usr/local/ffmpeg/ --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab make sudo make install sudo vim /etc/profile在最下面一行添加 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib/" souce /etc/profile 4.下载opencv2.4.13,解压后进入目录,笔者使用的是opencv-2.4.13,执行以下命令 cd ~/opencv-2.4.13/ mkdir build cd build 下面的make命令因为笔者安装了cuda,因此里面使用了CUDA_GENERATION=Auto这个编译选项,不使用cuda编译的童鞋可以把该条配置删除后编译。

    CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_TIFF=ON -D BUILD_EXAMPLES=ON -D CUDA_GENERATION=Auto -D BUILD_NEW_PYTHON_SUPPORT=ON --withffmpeg .. make sudo make install ``` 5.如果上面的库都成功编译安装完成后,可以执行以下测试代码: ```import cv2 cap = cv2.VideoCapture("rtsp://admin:admin@192.168.2.64:554//Streaming/Channels/1") print cap.isOpened() while cap.isOpened(): ret,frame = cap.read() cv2.imshow("frame",frame) cv2.waitKey(1 ```

    /* 上面这部分也可以参考 --------------------------------------------------------------------华丽的分割线----------------------------------------------------------------- 哭死了,之前花费了那么长的时间,结果真正的做法却简单到死… 正确做法如下:

    sudo apt-get install libopencv-dev sudo apt-get install python-opencv #这里安装的是python2版本的 (二选一,取决于你使用的python版本) sudo apt-get install python3-opencv #这里安装的是python3版本的(二选一,取决于你使用的python版本)

    我会告诉你这就好了么… 测试代码如下:

    import cv2 cap = cv2.VideoCapture("rtsp://admin:admin@192.168.2.64:554//Streaming/Channels/1") ret,frame = cap.read() while ret: ret,frame = cap.read() cv2.imshow("frame",frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() cap.release()

    上面的rtsp地址的内容需要从摄像头厂商那里获取,笔者用的是海康的,写法就长上面那样,默认的ip地址是192.168.1.64

    随着时间的推移,对这部分内容有了进一步的理解,分享给大家: 1.海康威视和大华的摄像头都使用的是h264或者h265编码进行视频流传输,因此在获取码流时需要本机支持h264或h265解码,因此本机必备的两个库应该是libx264以及ffmpeg,然后再进行opencv的安装 2.经历了N次的使用发现编译安装的可靠性更高一点

    转载请注明原文地址: https://ju.6miu.com/read-964374.html

    最新回复(0)