国标GB28181视频流媒体平台EasyGBS视频直播支持H.265平台吗?
对于目前市面上各种不同的流媒体平台,我们很难区分出哪个平台具体适合哪种项目场景。比如现在比较普遍的国标GB/T2818协议,可以连接公安部的安防平台,是很多人的选择。我们的国标流媒体平台EasyGBS就支持接入国标协议的摄像头并进行管理。
鉴于目前H.265编码是大趋势,加之之前有很多用户向我们提出EasyGBS支持H.265的诉求,所以我们也研发了EasyGBS的H.265版本(国标GB/T28181流媒体服务器EasyGBS支持H265编码格式)。
在开发EasyGBS流媒体平台H.265编码功能的时候,出现了一个问题:推流库从ps流中解析视频编码格式返回的数据是0。
推流库推了PS流之后,需要从PS流中解析视频编码格式。然后前端页面点击播放,发送invite消息的时候将推过来的ps流进行解析随后返回给前端播放器此时视频的编码格式。
但是前端在此时接受到的返回参数一直是0,导致服务器进行下一步操作。
问题分析
经过排查分析,我们在后台拿到ps流地址分析的时机,是在给前端返回之后,所以导致设置视频编码的方式为0。
设备编码赋值代码:
timestampSec := msess.TimestampSec - msess.FirstTimestampSec
if timestampSec < 0 {
timestampSec = 0 - timestampSec
}
stream.RTPTimestampSec = int64(timestampSec)
stream.RTPInBytes = msess.RTPInBytes
stream.VideoCode = msess.MessTypes
处理方式,是在取值的时候进行循环等待
for {
tempstream := uas.Server.GetStreamFromRedis(stream.StreamID)
if tempstream != nil {
VideoCode = tempstream.VideoCode
}
if VideoCode == 0 {
time.Sleep(time.Second * 1)
continue
}
break
}
然后我们可以来看一下处理后的结果,返回的数据已经恢复正常了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结