目的:把树莓派摄像头变成一个onvif摄像头,并通过OneNET sdk推流。

简述:因为ONENET视频SDK的demo是支持onvif camera的,因此把树莓派的摄像头变成一个支持onvif camera的摄像头,然后在ubuntu中运行OneNET的sdk,并修改config.json文件,就可以直接推流到OneNET了。

实现方法

使用官方Raspberry Pi相机,通过rtsp传输h264视频。树莓派上使用了硬件h264编码,还用到了live555

硬件准备
树莓派 1
树莓派摄像头OV5647
1

OneNET视频能力体验------使用树莓派摄像头推流_运维_jo_joe的博客-CSDN博客 - 图1

步骤流程

一:把树莓派变成一个支持onvif的ip camera

1、在树莓派上执行“rasps-config”命令,在config中去打开camera,并重启树莓派

2、安装NODEJS和Live555

  1. curl -sL https:
  2. sudo apt-get install nodejs
  3. sudo apt-get install liblivemedia-dev

3、使用git clone命令直接获取源代码

  1. git clone https:

4、进入RPOS目录

  1. cd rpos

5、安装插件模块

  1. npm install

6、使用本地Gulp模组编译

  1. ./node_modules/gulp/bin/gulp.js

7、重编译RTSP服务器。其中源代码放在cpp文件夹中,执行下面的脚本进行编译。

  1. sh setup_v4l2rtspserver.sh

8、如果你想修改ONVIF服务器的端口的话,可以去修改文件rpsoConf.json

9、以管理员身份来执行程序

  1. sudo node rpos.js

OneNET视频能力体验------使用树莓派摄像头推流_运维_jo_joe的博客-CSDN博客 - 图2

之后就可以使用onvif device manager来查看摄像头实时传输的视频了

OneNET视频能力体验------使用树莓派摄像头推流_运维_jo_joe的博客-CSDN博客 - 图3

10、可以登录http://rpos-ip:8081来修改配置(前面是树莓派的ip地址)

另:如果图像传输不稳定容易中断,可调低图像传输的分辨率。建议使用640480或320240

  1. cd lib
  2. gedit camera.js
  3. 修改代码的第35行,将WidthHeight分别修改为320240就可以。

二:使用OneNET sdk推流

注:如果还没有使用过ubuntu推流的同学可以参考这篇文章:

https://open.iot.10086.cn/bbs/thread-20004-1-1.html


1、进入ubuntu系统,打开命令行窗口,进入开发目录,修改配置文件

  1. rm ont_device_ctx
  2. gedit config.json

(ont_deivce_ctx这个文件会记录上次设备的信息,因此在修改设备id之后需要删除,在编译后会重新生成)
然后将config.json里面的信息改为树莓派的onvif设备ip地址

OneNET视频能力体验------使用树莓派摄像头推流_运维_jo_joe的博客-CSDN博客 - 图4

2、返回sdk目录,直接输入命令 sh videosamplebuild.sh,即可开始生成项目文件。

3、进入开发目录,输入以下两个命令,在输入这两个命令后,能够在OneNET开发者中心设备管理栏中看到该设备上线(会有一个小绿点提示)

  1. cd bin/
  2. ./sample_ov5640

3、进入OneNET开发者中心,打开该产品,点击设备管理

OneNET视频能力体验------使用树莓派摄像头推流_运维_jo_joe的博客-CSDN博客 - 图5

再点击播放即可

OneNET视频能力体验------使用树莓派摄像头推流_运维_jo_joe的博客-CSDN博客 - 图6

OVER


要是哪里写得不对,欢迎指正探讨哈~