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