最近比较忙刚刚接手一个电视視频直播与点播的项目,服务器端视频流是基于HLS协议关于HLS协议的相关介绍这里就不介绍了,请参考Apple的官网刚接手项目的时候,试了几種开源播放器MPlayer、VLC、ffplayer等,效果都不怎么样播放m3u8怎么看 list的时候多多少少都有些问题,经过权衡以后还是选择了VLC,看了大约一周VLC的源码對VLC的源码架构有了一些了解,其中重点看了播放m3u8怎么看的主要流程VLC里面对m3u8怎么看文件的解析在modules\stream_filter\Httplive.c这个文件里。
经过播放测试发现VLC播放直播没有问题,但是播放点播以及回放(也可理解为直播不过它的m3u8怎么看文件标签和点播有些不同,我也不清楚服务器进行分割的时候为什麼会生成不同的标签)的时候不好用经过分析发现VLC对HLS协议支持不好,对一些HLS协议的标签不支持经过二天的修改搞定了点播和回放的问题。
但是这时候又来问题了点播和回放的时候没有当前播放时间与视频长度现实,调查了一下发现Httplive.c里面根本就没有这部分的代码,经过┅天的折腾把这部分的代码加上以后这个问题搞定了。
计算视频长度的时候与HLS协议版本号有关系。。。版本号小于3,取得是整數否则才是浮点型,整数是与实际视频长度有误差的。。。