RTMP协议Web直播点播系统EasyDSS视频平台解决无法获取指定时间快照问题
原标题:RTMP协议Web直播点播系统EasyDSS视频平台解决无法获取指定时间快照问题
TSINGSEE青犀视频开发的网页无插件视频直播点播平台EasyDSS为了便于大家的二次开发 , 提供了很多接口供大家调用 , 其中web界面快照的获取就是采用了快照接口的调用 。 
文章图片
年前的时候TSINGSEE青犀视频团队遇到一个项目 , 在获取快照时 , 部分视频默认截取视最开始的视频快照 , 导致很多快照显示的是黑屏 , 因此该项目需要获取指定时间的快照图片作为视频的背景图 。
我们在编写接口时 , 规则就是获取默认快照图片 , 而无法获取指定时间的快照图片 。 原因是代码将获取指定时间的图片操作屏蔽了 , 代码无法执行 , 因此该逻辑实际是有问题的 。 
文章图片
我们对接口重新进行编写 , 传入获取视频中第多少秒的视频图片参数 , 并对对应的ts文件进行截取 , 获取图片 。 参考代码如下:
//解析获取最初的ts
data:=efile.ReadFile(periodPath)
reg,_:=regexp.Compile("#EXTINF:"+`.*,`)
regTs,_:=regexp.Compile(ID+`-.*.ts`)
ts:=""
insTime:=0
//最低一秒一个ts , 一个小时为3600秒
timeS:=reg.FindAllString(data,4000)
iflen(timeS)==0{
c.AbortWithStatusJSON(http.StatusNotFound,consts.MsgErrorNotFound)
return
}
fori:=0;i<len(timeS);i++{
time:=strings.Split(strings.Split(timeS[i],":")[1],".")[0]
timeInt,_:=strconv.Atoi(time)
ifsecond-timeInt<=0{
【RTMP协议Web直播点播系统EasyDSS视频平台解决无法获取指定时间快照问题】insTime=second
ts=filepath.Join(recordPath,ID,period[:8],period,regTs.FindAllString(data,4000)[i+1])
break
}
second=second-timeInt
}
filepath.Join(recordPath,ID,period[:8],period,reg.FindString(data))
snapTs(c,ts,strconv.Itoa(insTime),resolutionW,resolutionH,snapPath)
如果大家需要调用其他接口 , 可以参考TSINGSEE青犀视频EasyDSS平台官方提供的API文档:http://demo.easydss.com:10080/apidoc/ 。 当然了 , EasyDSS也支持大家实际部署测试 , 欢迎大家随时了解更多详细内容 。 
文章图片
- 伟鸿集团(03321-HK)与广东汇徽隆投资签框架合作补充协议
- Jupyter Notebooks:您一直在寻觅的基于Web的开发工具
- 格里芬|曝活塞寻求与布雷克-格里芬达成买断协议
- 作业|为给学生减负,长沙一小学签不做作业协议,评论区里家长吵翻天
- 刚与ASML签订采购协议的中芯国际,成这些半导体公司业绩重要来源
- 今日太阳对阵勇士 卡梅隆-约翰逊将因健康与安全协议缺战
- 刀塔2蒸汽平台协议打不开
- 日媒曝福原爱疑出轨,同神秘男子回公寓,目前与江宏杰协议离婚
- 投资者提问:您好!据传中国铝业已与秘鲁政府达成了一项初步协议,中国铝业向T...
- 曝福原爱江宏杰协议离婚 童话里真的都是骗人的
