zoukankan      html  css  js  c++  java
  • RTMP协议Web直播点播服务平台EasyDSS增加获取录像指定时间的m3u8播放地址

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

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

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

    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青犀视频全线产品均有演示平台供参考,用户可以进入演示平台阅览界面,也有测试版本供大家下载测试,若大家有兴趣可以联系我们进行测试。

     
  • 相关阅读:
    大话计算机网络一 聊聊UDP
    Go调度器系列(2)宏观看调度器
    Go语言高阶:调度器系列(1)起源
    gin+go-micro+etcd实战一
    记录一次云主机部署openstack的血泪史
    paste deploy 学习笔记
    Openstack计算Nova组件
    jumpserver docker简单搭建
    [原创][开源] SunnyUI.Net 帮助文档目录
    [原创][开源]SunnyUI.Net, C# .Net WinForm开源控件库、工具类库、扩展类库、多页面开发框架
  • 原文地址:https://www.cnblogs.com/easydss/p/14377754.html
Copyright © 2011-2022 走看看