zoukankan      html  css  js  c++  java
  • EasyDSS录像m3u8文件#EXT-X-TARGETDURATION不标准问题的解决

    EasyDSS 作为一款支持视频点播的流媒体传输平台,可以自行上传视频文件,也可将上传的点播文件作为虚拟直播进行播放。同时,在视频文件上传方面,我们也增加了新功能,即定时将最新的录像文件上传到文件服务器。之前为大家介绍过该功能的实现,大家有兴趣的话可以翻阅我们以往的博文了解一下。

    部分用户反馈 EasyDSS 生成的任意录像在部分浏览器下无法播放,对应的 hls 流如下:

    分析 m3u8 文件,发现 #EXT-X-TARGETDURATION 不正确,#EXT-X-TARGETDURATION 代表的是整个 m3u8 文件中最大时长的 TS 文件,部分播放器如果发现该值不是最大的,则会出现播放失败的情况。

    针对此问题,我们需要修改代码如下:

    fmt.Fprintln(w, "#EXTM3U")

    fmt.Fprintln(w, "#EXT-X-VERSION:3")

    fmt.Fprintln(w, "#EXT-X-MEDIA-SEQUENCE:0")

    fmt.Fprintln(w, fmt.Sprintf("#EXT-X-TARGETDURATION:%s", fmt.Sprintf("%v", int(math.Ceil(timeMax)))))

    以前该段代码为:

    fmt.Fprintln(w, fmt.Sprintf("#EXT-X-TARGETDURATION:%s", fmt.Sprintf("%v", int(timeMax))))

    int 代表让 timeMax 取整,直接向下取整,因此使用 mathCeil(timeMax) 向上取整后可以即符合标准。

  • 相关阅读:
    hdu 1018
    hdu 1005
    hdu 1222
    hdu 1297
    hdu 1568
    WCF入门, 到创建一个简单的WCF应用程序
    BarTender 通过ZPL命令操作打印机打印条码, 操作RFID标签
    WCF入门的了解准备工作
    C# Bartender模板打印 条码,二维码, 文字, 及操作RFID标签等。
    Qt configure脚本说明
  • 原文地址:https://www.cnblogs.com/easydss/p/15407708.html
Copyright © 2011-2022 走看看