我是靠谱客的博主 虚幻雪碧,最近开发中收集的这篇文章主要介绍ubuntu网络摄像头接入OneNET示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、平台端注册
https://open.iot.10086.cn/develop/video

二、设备端开发
1、下载sdk
SDK下载地址:https://github.com/cm-heclouds/video_sdk
git clone https://github.com/cm-heclouds/video_sdk video_sdk

sdk介绍
1)文件目录
bin:可执行文件及其运行时所需配置文件所在目录;
include:SDK对外接口声明文件所在目录;
lib:库目录;
platforms:跨平台代码;
sample:接入OneNET视频云示例;
src: ODVP接口等代码所在目录;
tools:构建sample生成可执行程序的脚本文件;
README.md:说明文件。
2)头文件路径:

#inlcude/device.h
#inlcude/platform_cmd.h
#inlcude/rtmp_if.h
#inlcude/rvod.h
编译工具: cmake
3)接口列表
1.设备相关接口
接口名称 说明 备注
ont_device_create 创建OneNET接入设备 参考device.h
ont_device_get_acc 获取接入机地址和接入机token 参考device.h
ont_device_connect 设备连接鉴权接口 参考device.h
ont_device_verify 验证从接入机获取得到的token 参考device.h
ont_device_request_rsa_publickey 请求平台的RSA 公钥
同时平台会下发请求设备公钥 参考device.h
ont_device_replay_rsa_publickey 设备向OneNET发送加密公钥 参考device.h
ont_device_register 设备注册 参考device.h
ont_device_auth 设备鉴权,设备可以只注册一次,再以后的连接中使用鉴权码鉴权,从而提高效率 参考device.h
ont_device_data_upload 设备数据上传 参考device.h
ont_device_get_channels 获取设备下的通道 参考device.h
ont_device_del_channel 删除设备下的通道 参考device.h
ont_device_add_channel 增加通道 参考device.h
ont_device_keepalive 设备保活接口 参考device.h
ont_device_check_receive 检查是否有平台下发的数据需要处理 参考device.h
ont_device_reply_ont_cmd 设备向OneNET发送命令响应结果 参考device.h
ont_device_reply_user_defined_cmd 设备向OneNET发送命令响应结果 参考device.h
ont_device_deal_api_defined_msg 设备处理API下发的自定义消息 参考device.h
ont_device_deal_plat_resp_push_stream_msg 设备处理平台回复的设备推流请求 参考device.h
ont_device_set_platformcmd_handle 设置平台命令处理函数 参考device.h
ont_device_get_systime 同步平台的系统时间到设备 参考device.h
ont_device_keep_connect 设备与OneNET连接保持 参考device.
ont_device_disconnect 断开连接接口 参考device.h
ont_device_destroy 销毁实例接口 参考device.h
ont_device_req_push_stream 设备请求推流并调用回调函数处理平台回复 参考device.h
2.指令回调接口(平台移植接口)

接口名称 说明 备注
t_ont_cmd_live_stream_ctrl 直播流级别切换 参考platform_cmd.h
t_ont_cmd_dev_ptz_ctrl 云台控制 参考platform_cmd.h
t_ont_cmd_dev_query_files 设备历史流文件查询 参考platform_cmd.h
t_ont_keepalive_resp_callback 心跳保活回复 参考device.h
t_ont_live_stream_start 通知直播流开始 参考device.h
t_ont_vod_start_notify 通知历史流回放开始 参考device.h
t_user_defind_cmd 用户自定义指令 参考device.h
t_api_defind_msg 处理API自定义消息 参考device.h
t_plt_resp_dev_req_stream_msg 处理平台回复推流请求的信息 参考device.h
3.rtmp实时视频相关接口

接口名称 说明 备注
rtmp_create_publishstream 创建rtmp推流实例接口 参考rtmp_if.h
rtmp_stop_publishstream 关闭rtmp推流实例接口 参考rtmp_if.h
rtmp_send_metadata 发送metadata接口 参考rtmp_if.h
rtmp_send_spspps 发送sps数据接口 参考rtmp_if.h
rtmp_send_videodata 发送视频帧接口 参考rtmp_if.h
rtmp_send_audiodata 发送音频帧接口 参考rtmp_if.h
rtmp_check_rcv_handler rtmp接收处理接口 参考rtmp_if.h
rtmp_make_audio_headerTag 创建flvaudio headerflag接口 参考rtmp_if.h
rtmp_send_h264data 发送H264视频帧 参考rtmp_if.h
4.本地历史视频相关接口

接口名称 说明 备注
rtmp_rvod_createctx 创建历史视频实例接口 参考rvod.h
rtmp_rvod_destoryctx 销毁历史视频实例接口 参考rvod.h
rtmp_rvod_start 开始历史视频推流接口 参考rvod.h
rtmp_rvod_stop 结束历史视频推流接口 参考rvod.h
rtmp_rvod_send_videoeof 文件发送结束通知接口 参考rvod.h

2、配置
打开sdk bin目录的config.json
各字段含义如下:

productid: 产品号
deviceid: 设备号,可为0
pass: 产品注册码
id: 设备唯一标识
channel_id:通道编号
url: onvif设备地址
user: 登录onvif设备的用户名
passwd:登录onvif设备的密码
defaultlevel: onvif设备默认的码率播放级别(1:流畅 2:标清 3:高清 4:超清)
channel_id:本地视频通道编号
location:本地存储路径
beginTime:视频开始时间
endTime:视频结束时间
videoTitle:视频名称
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、编译sdk
ubuntu下解压,进入tools目录
videosamplebuild-mp4v2.sh 是mp4文件上传
videosamplebuild-onvif.sh 网络摄像头视频上传
videosamplebuild-arm.sh 交叉编译

这里我们用 sh videosamplebuild.sh

修改配置脚本,
在这里插入图片描述

填入产品id、设备id、注册码
以及网络摄像头的地址、用户名、密码
在这里插入图片描述

生成文件在bin目录下
在这里插入图片描述

四、执行
在这里插入图片描述
五、查看视频
设备上线
在这里插入图片描述
查看视频
直接点实时视频或者用vlc播放器拉流
这里演示vlc观看
复制地址
在这里插入图片描述
选择一个地址,这里我选的rtmp
在这里插入图片描述
打开vlc
在这里插入图片描述
填入地址
在这里插入图片描述
看到视频
在这里插入图片描述

最后

以上就是虚幻雪碧为你收集整理的ubuntu网络摄像头接入OneNET示例的全部内容,希望文章能够帮你解决ubuntu网络摄像头接入OneNET示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部