前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何获取RTMP协议Web直播点播服务EasyDSS视频录像指定时间的m3u8播放地址?

如何获取RTMP协议Web直播点播服务EasyDSS视频录像指定时间的m3u8播放地址?

原创
作者头像
TSINGSEE青犀视频
修改2021-02-23 14:33:33
修改2021-02-23 14:33:33
42700
代码可运行
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频
运行总次数:0
代码可运行

EasyDSS是TSINGSEE青犀视频云边端架构中支持RTMP协议前端设备的视频直播点播平台,除了网页直播和点播外,也支持视频录像,录像一般根据录像计划设定即可。

在近期开发中,我们增加了EasyDSS获取录像指定时间的m3u8播放地址功能。一开始这个功能返回的是录像指定时间内的mp4文件,但是考虑到ts转码到mp4需要的时间略长,因此用户使用时需要很长时间等待,用户的体验差。所以经过讨论后,我们开发了新的接口,原接口也会保留。

新接口是直接获取播放地址,也就是相当于对ts文件不做处理,大大节约了处理时间。

代码语言:javascript
代码运行次数:0
运行
复制
if !strings.HasSuffix(dirPath, "/") && !strings.HasSuffix(dirPath, "\\") {
   dirPath = dirPath + string(os.PathSeparator)
}
 
// 创建 video.m3u8 文件
mfile, err := os.Create(dirPath + m3u8Name)
if err != nil {
   return err
}
defer mfile.Close()
 
w := bufio.NewWriter(mfile)
fmt.Fprintln(w, "#EXTM3U")
fmt.Fprintln(w, "#EXT-X-VERSION:3")
fmt.Fprintln(w, "#EXT-X-MEDIA-SEQUENCE:0")
timeStr := ""
 
for _, tsname := range *strs {
   realTsPaths := strings.Split(tsname, sDay+"/")
   tsId := strings.Split(realTsPaths[1], "/")
   periodPath := filepath.Join(realTsPaths[0], sDay, tsId[0], fmt.Sprintf(`%s_record.m3u8`, id))
   timeStr = getTsTime(periodPath, tsId[1])
   fmt.Fprintln(w, timeStr)
   fmt.Fprintln(w, realTsPaths[1])
}
 
fmt.Fprintln(w, "#EXT-X-ENDLIST")
w.Flush()

EasyDSS视频直播/点播服务平台至诞生至今,我们做了不少版本的功能更新和升级,除EasyDSS外,TSINGSEE青犀视频全线产品均有演示平台供参考,用户可以进入演示平台阅览界面,也有测试版本供大家下载测试,若大家有兴趣可以联系我们进行测试。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档