查看: 494|回复: 1

[RTMP] 树莓派4B 使用Onenet 视频能力(上)

[复制链接]

1

主题

9

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2021-10-17 14:00:14 | 显示全部楼层 |阅读模式
本帖最后由 QXPY5UCLYI 于 2021-10-17 14:12 编辑

树莓派4B 使用Onenet 视频能力
OneNET Video视频能力为用户提供物联网行业视频设备接入能力,方便快捷的接入使用流程,快速稳定的平台性能,低成本的使用方式,让物联网企业可以更加方便对视频业务进行开发,从而解决物联网视频行业的并发、分发的业务痛点。
所以这个平台如何在Onenet平台部署呢?接下来让我们一起看看。
[size=0.9]
[url=]树莓派4B 使用Onenet 视频能力[/url][url=]一、硬软平台基本环境[/url][url=]二、搭建RPOS服务器[/url][url=]三、交叉编译Onenet视频推流服务[/url][url=]1. 下载树莓派交叉编译工具[/url][url=]2.使用交叉编译工具编译libssl库[/url][url=]3.交叉编译OneNET SDK[/url][url=]四、创建Onenet视频服务并部署[/url][url=]1.创建Onenet视频服务[/url][url=]2.部署到树莓派[/url][url=]五、参考资料[/url]

一、硬软平台基本环境
硬件平台:树莓派4B
系统镜像:2020-02-13-raspbian-buster.img
摄像头:USB摄像头
二、搭建RPOS服务器
基于 Node.js 的 ONVIF 摄像头/NVT 软件,可将 Raspberry Pi、Windows、Linux 或 Mac 计算机转变为 ONVIF 摄像头和 RTSP 服务器。参照其中的步骤即可完成RPOS服务器的搭建。
配置文件rposConfig.json,我使用的室USB摄像头,所以写的如下(注意:服务器配置了用户名和密码都是admin):
  1. <blockquote>{
复制代码

最后使用sudo node rpos.js运行后,会出现如下输出,接着我们打开ONVIF Device Manger软件,该软件会自动搜索局域网内的IPC终端,电机Live video就可以看到局域网内实时画面了。
  1. <blockquote>pi@raspberrypi:~/Desktop/rpos $ sudo node rpos.js
复制代码


以上就完成了一个局域网内的视频推流服务,但是目前在很多情况下局域网推流已经无法满足我们的需求,我们就需要用到中移的Onenet平台进行互联网平台的转发工作。
三、交叉编译Onenet视频推流服务
Raspberry Pi本身的硬件性能不是很高,所以在pi上直接编译源代码,需要消耗很多的时间。因此在选择在性能呢强大的台式机上来配置一个交叉编译平台,再将编译后的bin文件和config.json文件拷贝到树莓派来执行;主要参考来自:
1. 下载树莓派交叉编译工具
选用的交叉编译工具链,是Raspberry Pi 基金会官方发布的 交叉编译工具包,也就是官方用来编译Raspbian操作系统所用的交叉编译工具链。
1).直接使用git clone命令直接获取源代码,其中的gcc-linaro-arm-linux-gnueabihf-raspbian-x64就是我们需要的文件夹。
  1. git clone git://github.com/raspberrypi/tools.git
复制代码

2).接下来跳转到文件夹中查看下:
  1. cd tools/arm-bcm2708/
复制代码

3).正常会有如下文件:
  1. <blockquote>arm-bcm2708hardfp-linux-gnueabi  arm-rpi-4.9.3-linux-gnueabihf
复制代码

整体命令运行有如下结果:
  1. <blockquote>xxx@virtual-machine:~$ git clone git://github.com/raspberrypi/tools.git
复制代码

2.使用交叉编译工具编译libssl库
1).下载libssl源码文件,Onenet SDK推荐使用的openssl版本为:openssl-1.0.1g,我们打开新终端。
  1. xxx@virtual-machine:~$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
复制代码

解压文件
  1. xxx@virtual-machine:~$ tar xf openssl-1.0.1g.tar.gz
复制代码

2).使用export命令声明编译目录,需要注意你的编译工具的目录。
  1. xxx@virtual-machine:~$ export CROSSCOMP_DIR=/home/xxx/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
复制代码

3).声明安装目录
  1. xxx@virtual-machine:~$ export INSTALL_DIR=/home/xxx/libssl
复制代码

4).进入libssl源文件,针对树莓派平台进行交叉编译
  1. <blockquote>xxx@virtual-machine:~$ cd openssl-1.0.1g
复制代码
--prefix=$INSTALL_DIR --openssldir=$INSTALL_DIR/openssl \
--cross-compile-prefix=$CROSSCOMP_DIR/arm-linux-gnueabihf-

5).交叉编译libssl库
  1. <blockquote>xxx@virtual-machine:~/openssl-1.0.1g$ make depend
复制代码

编译完成后我们可以在主目录中看到如下文件夹:
  1. <blockquote>xxx@virtual-machine:~$cd libssl
复制代码

6).make install可能会遇到openssl make install : *** [install_docs] 错误 255解决方法如下:
  1. xxx@virtual-machine:~$ sudo nano /usr/bin/pod2man
复制代码

注释其中的71行$parser->parse_from_file (@files);
注:ctrl+c可查看当前行数。
3.交叉编译OneNET SDK
1).打开openssl安装地址将其lib中的内容复制到/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/lib/gcc/arm-linux-gnueabihf/4.8.3:
  1. <blockquote>xxx@virtual-machine:~$ cd libssl
复制代码

2).打开新终端获取Onenet视频服务SDK源码:
  1. <blockquote>xxx@virtual-machine:~$ git clone https://github.com/cm-heclouds/video_sdk.git
复制代码

3).打开配置文件进行编译配置:
  1. <blockquote>SET(CMAKE_SYSTEM_NAME Linux)
复制代码

4).安装依赖库
  1. sudo apt-get install libssl-dev
复制代码

5).修改sample/onvif/device_onvif.c文件防止INFO: profile [0: level=1 bitrate=10000 framterate=25] 段错误
  1. 将所有指针未初始化为NULL的初始化为NULL
复制代码

6).编译,在/video_sdk/video_sample_build_on_arm_linux文件夹中:
  1. xxx@virtual-machine:~/video_sdk/video_sample_build_on_arm_linux$ make
复制代码

编译成功没有错误即可,生成sample_video_s文件。
回复

举报

1

主题

9

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2021-10-17 14:13:49 | 显示全部楼层
本帖最后由 QXPY5UCLYI 于 2021-10-17 14:18 编辑

Onenet平台的文本支持有些问题,建议去CSDN链接:https://blog.csdn.net/qq_4485770 ... 1001.2014.3001.5501
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表