欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【bug修复】RTMP推流协议视频直播/点播平台EasyDSS录像列表中名称字段显示录像ID的BUG修复

程序员文章站 2022-07-05 10:14:54
...

RTMP推流协议视频直播点播平台EasyDSS与TSINGSEE青犀视频其他产品的区别是可以兼顾直播和点播,同时直播和点播两种播放方式都可以进行录像。

【bug修复】RTMP推流协议视频直播/点播平台EasyDSS录像列表中名称字段显示录像ID的BUG修复

在开启直播的时候,如果录像开启的话,系统会在数据库中创建录像,其中录像的id和名称应为直播间的id和名称,但在录像列表中的显示的名称也变成了该录像的id。

直播间的id和名称:

【bug修复】RTMP推流协议视频直播/点播平台EasyDSS录像列表中名称字段显示录像ID的BUG修复

录像的id和名称:

【bug修复】RTMP推流协议视频直播/点播平台EasyDSS录像列表中名称字段显示录像ID的BUG修复

这是由于代码没有添加判断机制,致使录像的名称直接用了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和名称正常化:

【bug修复】RTMP推流协议视频直播/点播平台EasyDSS录像列表中名称字段显示录像ID的BUG修复

EasyDSS还有一个“虚拟直播”的功能,在虚拟直播的情况下,用户可以将已经上传好的视频资源在固定时间段进行直播,并且也可开启录像(EasyDSS如何将虚拟直播进行录像)。EasyDSS视频直播已经支持H265编码格式,如果大家有兴趣,欢迎咨询。

【bug修复】RTMP推流协议视频直播/点播平台EasyDSS录像列表中名称字段显示录像ID的BUG修复