30.dock-livestream
功能概述
直播功能主要是把无人机相机负载和大疆机场的视频码流发给第三方云平台进行播放,用户可以方便的在远程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协议的流媒体/交互服务器之间进行音视频和数据通信。
GB28181
GB/T 28181-2016 是中国大陆地区对于安防视频设备接入平台的一种传输控制规范,对于已有28181下联网关的服务器,可以直接通过该协议把DJI行业设备的码流推到服务器中。
机场直播总体框架

如上图所示,无人机飞行平台并不直接连接第三方云平台,中间是通过DJI Pilot 2或大疆机场进行转流转发,遥控器和机场与无人机之间的通信还是用DJI私有图传ocusync链路。
第三方云平台需要预先部署MQTT网关以及流媒体服务器,DJI推流协议支持 Agora/RTMP/GB28181 等模式,其中MQTT网关主要用来做消息通信,配置信息设置和读取。
交互时序图
sequenceDiagram
participant client as DJI Dock
participant server as Cloud Server
participant h5 as Web Page
client ->> server: 直播能力更新 Topic: thing/product/{device_sn}/state<br/>设备推送 state topic,云端解析直播能力结构体(live_capacity)
note over client,h5: Web端点击直播
server ->> client: 开始直播 Topic: thing/product/{gateway_sn}/services<br/>Method: live_start_push
client -->> server: 设备响应 Topic: thing/product/{gateway_sn}/services_reply<br/>Method: live_start_push
client ->> server: 机场向服务器推流
server ->> h5: 拉流
activate h5
server ->> client: 设置直播清晰度 Topic: thing/product/{gateway_sn}/services<br/>Method: live_set_quality
client -->> server: 设备响应 Topic: thing/product/{gateway_sn}/services_reply<br/>Method: live_set_quality
h5 ->> h5: 清晰度调整
server ->> client: 设置直播镜头 Topic: thing/product/{gateway_sn}/services<br/>Method: live_lens_change
client -->> server: 设备响应 Topic: thing/product/{gateway_sn}/services_reply<br/>Method: live_lens_change
h5 ->> h5: 镜头切换
server ->> client: 停止直播 Topic: thing/product/{gateway_sn}/services<br/>Method: live_stop_push
client -->> server: 设备响应 Topic: thing/product/{gateway_sn}/services_reply<br/>Method: live_stop_push
deactivate h5
接口详细实现
直播能力更新 live_capacity(直播能力)字段是放在网关设备的物模型中的,同时只有当设备端有状态变化时推送。直播能力字段包含可用于直播的视频流总数、可同时进行直播的视频流总数、设备直播能力列表等信息。
开始直播 服务端下发
开始直播指令,指令中指定使用的协议类型、直播质量等信息。直播视频流推流、拉流。停止直播
设置直播清晰度 直播质量可设置,枚举值可在API章节查看。
设置直播镜头 直播功能可以在不影响直播进程的情况下,切换镜头。直播视频流的镜头类型枚举值,可在API章节自行查看。
Last updated