Skip to content

兼容主流海康和雄迈IPC的适用于C++和python的帧数据获取接口

License

Notifications You must be signed in to change notification settings

1996scarlet/IPCamera-CPython-Interface

Repository files navigation

IPCamera-CPython-Interface-v4

这是什么东西(What is this)

  • 兼容主流海康和雄迈IPC的适用于C、C++和python2/3的帧数据获取接口
  • 简化海康和雄迈IPC连接、登录、注册回调、解码(FFMPEG)、取帧的步骤
  • 通过Ctypes支持python3

近期更新(Recent update)

  • 现已将接口打包为deb安装包 可以实现一键编译安装(测试于Ubuntu 19.04/18.04.2 LTS)
  • 添加对不同分辨率的摄像头的支持 并且支持在运行过程中动态切换分辨率
  • 现在可以在客户端取不同分辨率的帧数据
  • 现在在申请对象时会对buffer初始化 来防止取帧过快导致客户端崩溃
  • 为进一步优化取帧效率 启用了多线程解码(ffmpeg4.0及以上版本默认解码线程为1)

性能对比(Performance comparison)

一张图看懂取帧接口版本差异

原理简要说明(Brief description of the principle)

一张图看懂取帧接口处理流程

安装与测试(Install and testing)

接口调用方式(C/C++/Python)

目录结构说明(Files-Tree)

  • hk_interface - 存放海康接口源码、测试demo、SDK
  • xm_interface - 存放雄迈接口源码、测试demo、SDK
  • deb_packager - 用于打包libipc的deb安装包
  • py_packager - 用于打包libipc的python wheel安装包
  • release - 包括ffmpeg、opencv的安装脚本和预编译的libipc安装包
  • 每个关键子目录下都附带README文件

注意事项(Cautious)

  • 使用内存管道方法配合nginx_rtmp_module推流延迟较高,需要低延迟推流可以考虑使用基于类MJPEG协议的推流框架
  • 在Ubuntu 18.04上安装openCV可以参考这个链接
  • 编译安装ffmpeg前需要设置./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libx264 --enable-shared来防止opencv编译过程无法引用动态库导致的video.so相关错误
  • 编译安装opencv时若出现xfeatures2d相关错误,需要重新下载curl并按照如下步骤编译安装
    1. cd /root/Downloads/curl
    2. ./configure --with-ssl
    3. make
    4. sudo make install
  • 建议自行编译安装opencv-python来保持版本同步
    1. cd ./opencv/build/python_loader
    2. python3 setup.py install
    3. 或者通过python3 setup.py build命令 然后在dist文件夹下手动安装opencv-4.0.1-py3.7.egg

About

兼容主流海康和雄迈IPC的适用于C++和python的帧数据获取接口

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages