国标GB28181平台EasyGBS添加定制协议的播放功能

支持国标GB28181协议的EasyGBS国标视频云平台,对外可以提供RTSP、RTMP、FLV、HLS、WebRTC等多种格式的视频流进行分发。我们对外也提供了API接口,可满足用户的二次开发与集成需求。EasyGBS除了标准版本外,我们也会根据项目的需求开发定制版本。

国标GB28181平台EasyGBS添加定制协议的播放功能_第1张图片

今天我们来和大家分享下EasyGBS定制协议的播放功能实现逻辑与代码。

功能简介:与设备协商好对应的播放指令,当设备注册上来之后,通过对应的链接通道,下发播放指令。

国标GB28181平台EasyGBS添加定制协议的播放功能_第2张图片

实现逻辑:查询到本地是否有被监听的端口,然后开启端口监听,将封好对应的指令,发送给设备,再将设备上发来的流数据解析到ps-es数据,再将数据推送到流媒体中,分发出对应的前端播放地址,返回给前端。

国标GB28181平台EasyGBS添加定制协议的播放功能_第3张图片

添加如下代码:

channelint, _ := strconv.Atoi(channelid)
	body := &RealtimeVideoReq{
		IPLength: len([]byte(ipaddr)),
		IPAddr:   ipaddr,
		PortTCP:  tcpport,
		PortUDP:  udpport,
		Channel:  channelint,
		DataType: 0,
	}
	fmt.Println(body)
	// 编码数据
	ipLength, err := dec2HexByte(body.IPLength, 2)
	if err != nil {
		log.Printf("[实时音视传输请求]连接地址:%s 编码服务器IP长度失败:%s", terminalinfo.Conn.RemoteAddr().String(), err.Error())
		return err
	}

效果图如下:

国标GB28181平台EasyGBS添加定制协议的播放功能_第4张图片

随着现在新内核的EasyGBS、EasyNVR以及EasyCVR的使用场景越来越广泛,这些平台也被运用在大小不同的很多实际项目中。在功能上,基本都能满足大部分用户的需求,也有部分项目存在个性化需求,需要进行功能的定制。

我们将不定期在博客更新关于EasyGBS平台的功能开发及优化、FAQ、配置操作等内容,欢迎大家关注我们的更新,或留言与我们互动。

你可能感兴趣的:(EasyGBS,前端,音视频)