直播功能
功能概述
直播功能主要是把无人机相机负载和大疆机场的视频码流发给第三方云平台进行播放,用户可以方便的在远程web页面点击直播。
支持的直播类型
直播类型 | 描述 |
---|---|
Agora声网 | 声网Agora成立于2013年,是实时音视频云行业开创者和全球领先的专业PaaS服务商。 开发者只需简单调用Agora API,30分钟即可在应用内构建多种实时音视频互动场景。 大疆司空2也是基于声网的“极速直播”功能进行码流推送,整体直播延迟比较低,效果好。 对于三方云私有化部署,Agora也提供了混合云部署模式,码流和数据都在客户的私有服务器中,然后通过网闸打通一个链路到Agora的运维公有云,这个链路通道主要是用来对私有化部署的服务进行升级和运维。 |
RTMP | RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。 |
RTSP | RTSP(Real Time Streaming Protocol)是 TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。 |
GB28181 | GB/T 28181-2016 是中国大陆地区对于安防视频设备接入平台的一种传输控制规范,对于已有28181下联网关的服务器,可以直接通过该协议把DJI行业设备的码流推到服务器中。 |
直播总体框架
如上图所示,无人机飞行平台并不直接连接第三方云平台,中间是通过DJI Pilot 2或大疆机场进行转流转发,遥控器和机场与无人机之间的通信还是用DJI私有图传ocusync链路。
第三方云平台需要预先部署MQTT网关以及流媒体服务器,DJI推流协议支持 Agora/RTMP/RTSP/GB28181 4种模式,其中MQTT网关主要用来做消息通信,配置信息设置和读取。
交互时序图
加载直播模块
云端调用协议发起直播
校验成功
校验失败
App端调用JSBridge发起直播
接口详细实现
加载直播模块
在使用直播功能之前,需要预先在webview中通过JSBridge加载DJI Pilot 2的直播模块,开发者可以考虑在上下线登录阶段直接添加加载直播模块的接口。App 端调用 JSBridge 手动直播
对于无需后台直播观看,但是需要在用户使用时,开启直播,把码流传回服务端进行存档分析的场景,可以通过该接口组合,让用户在Pilot 中手动触发直播功能,详细步骤如下:- Pilot 端webview登录第三方云平台后,需要向服务端请求一个流媒体服务器直播地址参数,各个第三方云平台配置不同,也可以直接写死在前端代码中。
- 把直播推流参数通过JSBridge接口,发给DJI Pilot 2进行设置。
- DJI Pilot 2收到直播配置后,立即发起直播推流,用户可以进入飞行界面查看直播信息,停止直播,重新开始直播等操作。
注意: 采用手动直播方式,推流的画面一直是DJI Pilot 2主画面码流,当飞手切换相机画面时,推流的画面也会跟着变化。
直播能力更新
live_capacity这个字段是放在网关设备的物模型中的,同时推送的属性为当设备端有状态变化时才推送。开始直播
服务端通过mqtt给设备端发送method=live_start_push
的指令,这条指令采用的是物模型的service方式交互。停止直播
设置直播清晰度