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

4 篇文章 0 订阅
1 篇文章 0 订阅

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

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

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次的使用发现编译安装的可靠性更高一点

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值