EasyDSS匿名直播通道数据量不稳定优化方案分享

EasyDSS作为一款支持视频点播的流媒体传输平台,可以自行上传视频文件,也可将上传的点播文件作为虚拟直播进行播放。同时,在视频文件上传方面,我们也增加了新功能,即定时将最新的录像文件上传到文件服务器。

 

在测试 EasyDSS 中匿名直播时经常出现在线匿名直播通道数量的数据不稳定的问题,比如一直在线20条数据,有时显示10条,有时显示20条。

 

查看代码,每次更新匿名直播的数据信息如下:收到内核的直播流信息,首先在数据库中查找是不是直播或者虚拟直播,如果没有查找到,则认为是匿名直播。

前端在查询的时候,部分数据因为数据库更新的速度问题,没有及时的更新,因此出现该问题。

原代码如下:

// 更新流信息
gLives.Set(group.StreamName, sessionInfo)
gSessChan <- sessionInfo
 

gSessChan <- sessionInfo 该行代码为将数据发送到通道中,另外的根据数据库进行判断。

于是我们修改代码如下:

if !gLives.Has(group.StreamName) {
   // 推送到通道中,根据数据库处理信息
   // 如果是第一次在线,更新类型
   gSessChan <- sessionInfo
} else {
   info, _ := gLives.Get(group.StreamName)
   oldSessionInfo := info.(*dto.SessionInfo)
   sessionInfo.Name = oldSessionInfo.Name
   sessionInfo.Type = oldSessionInfo.Type
}
// 更新流信息
gLives.Set(group.StreamName, sessionInfo)
 

如果在历史数据中查到了对应的类型,直接使用原先的数据类型。修改之后数据则稳定正常。

 

EasyDSS的使用场景非常丰富,更新之后的版本也越来越符合现代技术的更新和用户的使用需求,除了以上我们提到的在线教育、视频点播方面的应用之外,还可以拓展到物联网、物流仓储、移动监控等多个方面,其中比较热门的就有无人机实现的EasyDSS视频推流直播,我们也做过不少无人机视频直播的方案,欢迎大家了解和测试。

原文地址:https://www.cnblogs.com/easydss/p/14930696.html