前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyDSS获取指定时间录像m3u8播放地址兼容iOS平台吗?

EasyDSS获取指定时间录像m3u8播放地址兼容iOS平台吗?

原创
作者头像
TSINGSEE青犀视频
修改2021-03-02 14:15:34
5620
修改2021-03-02 14:15:34
举报
文章被收录于专栏:TSINGSEE青犀视频

M3U8文件是一个记录索引的纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。TSINGSEE青犀视频EasyDSS直播点播系统支持调用m3u8播放地址进行二次开发或者集成。

目前在m3u8地址上仍存在的问题是,调用获取指定时间录像的m3u8播放地址用苹果手机进行播放,会出现黑屏无法播放的问题,但是其他平台并无该问题。所以这个成为我们亟待解决的问题。

经过研发的分析,应该是后台在生成新的m3u8文件出现了问题,新的m3u8文件对内容不是很严谨,其中在统计播放时长的那个参数一开始并没有统计,导致iOS系统在识别的时候出现问题。

因此我们从代码中对最大ts切片的时长和总时长进行统计,将数据写到对应的m3u8参数中。

代码语言:javascript
复制
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])
   time := strings.Split(strings.Split(timeStr, ":")[1], ",")[0]
   timeFloat, _ := strconv.ParseFloat(time, 64)
   if timeFloat > timeMax {
      timeMax = timeFloat
   }
   timeAll = timeAll + timeFloat
}
fmt.Fprintln(w, fmt.Sprintf("#EXT-X-TARGETDURATION:%s", fmt.Sprintf("%v", int(timeMax))))
fmt.Fprintln(w, fmt.Sprintf("#EXT_X_TOTAL_DURATION:  %s", fmt.Sprintf("%v", timeAll)))
 
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()
 

关于ts文件,之前我们介绍过自主合并TS文件为MP4格式播放的方法,大家也可以了解一下。EasyDSS的应用场景远不止我们开头提到的线上课堂,包括视频慢直播、斗鱼等游戏直播也能够很好发挥作用,欢迎大家联系我们了解。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档