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视频推流直播,我们也做过不少无人机视频直播的方案,欢迎大家了解和测试。