【bug修复】RTMP推流协议视频直播/点播平台EasyDSS录像列表中名称字段显示录像ID的BUG修复
程序员文章站
2022-07-05 10:14:54
...
RTMP推流协议视频直播点播平台EasyDSS与TSINGSEE青犀视频其他产品的区别是可以兼顾直播和点播,同时直播和点播两种播放方式都可以进行录像。
在开启直播的时候,如果录像开启的话,系统会在数据库中创建录像,其中录像的id和名称应为直播间的id和名称,但在录像列表中的显示的名称也变成了该录像的id。
直播间的id和名称:
录像的id和名称:
这是由于代码没有添加判断机制,致使录像的名称直接用了id。我们这里的处理方法就是添加判断机制,将直播间的名称赋予给录像作为名称。优化代码如下:
if record.ID != consts.EmptyString {
//添加更新缓冲,如果超过15-30秒才更新
if time.Now().Unix()-record.UpdateAt.ToTime().Unix() > int64(15+rand.Intn(15)) {
db.Table(consts.TableRecord).Where(consts.SqlWhereID, id).
Updates(map[string]interface{}{"store_path": live.StorePath, "name": record.Name, "record_reserve": live.RecordReserve, "update_at": etime.Now()})
}
} else {
dao.GetDB().Where(consts.SqlWhereID, id).First(live)
if live.ID == consts.EmptyString {
//说明是匿名直播
record.ID = id
record.Type = consts.LiveSessionTypeOpenLive
record.Name = live.Name
record.RecordReserve = sysConfig.OpenRecordReserve
record.LocalIP = utils.LocalIP()
db.Table(consts.TableRecord).Create(record)
} else {
record.ID = id
record.Type = consts.ApplicationLive
record.Name = live.Name
record.StorePath = live.StorePath
record.RecordReserve = sysConfig.OpenRecordReserve
record.LocalIP = live.LocalIP
db.Table(consts.TableRecord).Create(record)
}
}
}
}
添加代码之后,录像的id和名称正常化:
EasyDSS还有一个“虚拟直播”的功能,在虚拟直播的情况下,用户可以将已经上传好的视频资源在固定时间段进行直播,并且也可开启录像(EasyDSS如何将虚拟直播进行录像)。EasyDSS视频直播已经支持H265编码格式,如果大家有兴趣,欢迎咨询。