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

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编码格式,如果大家有兴趣,欢迎咨询。

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