FFmpeg hls生成切片时间不许确问题排查

场景ide

        调用FFmpeg接口将AVPacket生成HLS切片文件,生成的切片时间不许确,例如:函数

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:443
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:53.000000,
index0.ts
#EXTINF:153.000000,
index1.ts.net

目标:生成的切片大小差很少,而且播放进度条上显示的时间是准确的,目前在现场发现时间显示彻底不正确,除非完整播放。以前刚刚部署系统的时候,时间是正常的。视频

排查过程blog

1)警告:[hls] pkt.duration = 0, maybe the hls segment duration will not precise接口

调用FFmpeg接口生成HLS切片文件,控制台输出警告信息。查看代码,发现AVPacket结构体中的duration变量没有赋值,致使该警告提示,因此添加了duration的赋值,可是因为理解不到位,所以赋值的是一个错误值,致使切片时间不许确ci

2)方法一再也不赋值duration解决问题部署

在这里生成的切片时间以及切片的大小可能不同,这是跟GOP序列有关,切片保存的数据都是GOP的整数倍,每个视频的GOP不同,获得的大小也不同。it

3)av_dict_set_int(&opts, "hls_time", 60, 0); io

该函数设置了分片的时间,60秒产生一个切片文件


参考https://blog.csdn.net/u010168781/article/details/107305193

相关文章
相关标签/搜索