在线课堂web无插件直播点播平台EasyDSS播放指定时间段的录像报404是什么原因?

EasyDSS作为TSINGSEE青犀视频开发的RTMP协议视频直播点播平台,在这两年的居家办公及在线课堂方面都体现了其远程交互的价值。EasyDSS集转码、上传于一体化的设计,使音视频资源转码后可立即面向互联网进行发布,分享更便捷,使用更合理。

 

在播放EasyDSS的录像时,如果录像id中含有“-”字符,此时如果想要播放指定时间段的录像,第一次请求会出现404,找不到对应的录像,第二次请求的时候就会出现正在合成中,客户无法看到对应时间段的视频。

因为我们知道录像ID的格式与其他格式不同,所以就从这个“-”字符开始研究,“-”字符在代码中,本来代表的数据是时间,但是由于该字符存在于ID中,因此截取的字符串不是时间,这样在解析时间的时候就会出现错误,导致找不到视频出现404。

而我们请求两次都失败,则是第一次请求了,系统默认去合成视频,因为一直无法合成成功,所以第二次请求的时候出现正在合成中。

因此我们从代码中做修改,在截取字符串的时候有选择性的获取对应时间的字符串。

参考代码如下:

for i := 0; i < len(tsNames); i++ {
   str := strings.Split(tsNames[i], "-")
   c := etime.StrYYYYMMDDHHmmssToTime(str[len(str)-2])
   if i+1 < len(tsNames) {
      str1 := strings.Split(tsNames[i+1], "-")
      _c := etime.StrYYYYMMDDHHmmssToTime(str1[len(str1)-2])
      if start.After(c) && start.Before(_c) {
         m3u8 = append(m3u8, prePath+tsNames[i])
      }
   } else {
      if start.After(c) {
         m3u8 = append(m3u8, prePath+tsNames[i])
      }
   }
   if !c.Before(start) && !c.After(end) {
      m3u8 = append(m3u8, prePath+tsNames[i])
   }
}

  

在EasyDSS内,平台返回404错误有很多种原因,之前我们就为大家讲过调用上传点播文件接口返回404,大家如果碰到类似问题也可以参考下。

EasyDSS平台已经支持H265编码视频的播放,并且凭借其支持直播点播的特性,在校园教育直播、网络推流直播等项目场景中都已经落地,如果大家想实际部署测试的话,可以联系我们获取测试账号,欢迎大家的了解。

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