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

  • 相关阅读:
    泛型的模板思想
    GTD:是一种态度
    如何debug android cts
    POJ 3352 无向图边双连通分量,缩点,无重边
    Oracle—用户管理的备份(一)
    Retinex processing for automatic image enhancement 翻译
    myBatis抛出异常Result Maps collection already contains value ...
    xxx cannot be resolved to a type 错误解决方法
    Cannot change version of project facet Dynamic Web Module to 3.0
    mysql JDBC URL格式各个参数详解
  • 原文地址:https://www.cnblogs.com/easydss/p/14377599.html
Copyright © 2020-2023  润新知