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

已更新(前面的方法虽然可行但不能解决根本问题,对不住大家了,让大家浪费了时间!实际有更简单的方案,请直接查看分割线以下的内容)

/* 下面这部分内容被作废了

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

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:[email protected]: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:[email protected]: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

你可能感兴趣的:(ubuntu,opencv,python,rtsp,海康威视,python,opencv,图像处理)