卜娃娃HLS实战之Wireshark抓包分析( 三 )


也可以参考前面的文章
超详细RTMP协议详解(资深流媒体架构师推荐)
手把手搭建流媒体服务器详细步骤
拉流使用ffplay(也可以使用其它工具) , 命令如下 , 界面如下表示可以捕获成功 。
这里拉取RTMP流:ffplay rtmp://172.16.204.133/live/livestream
卜娃娃HLS实战之Wireshark抓包分析
本文插图
拉取HTTP流 , 命令如下 , 表示可以捕获成功 , 可以看到这里捕获的都是HTTP协议的内容 。
关于HLS手把手搭建流媒体服务器 , 可以参考这篇文章:手把手配置HLS流媒体服务器
这里拉取HTTP流:HLS拉流地址:ffplay
注意:HLS , 这里走的是HTTP协议 。
卜娃娃HLS实战之Wireshark抓包分析
本文插图
可以看到客户端请求服务器端livestream.m3u8的数据 。
卜娃娃HLS实战之Wireshark抓包分析
本文插图
通过HLS抓包分析 , 可以看到通过HTTP分段拉取ts片段 , 如下图中的livestream-148.ts、livestream-149.ts、livestream-150.ts、livestream-151.ts 。
注意:客户端会实时拉取更新的livestream.m3u8 。
卜娃娃HLS实战之Wireshark抓包分析
本文插图
卜娃娃HLS实战之Wireshark抓包分析
本文插图
还能抓取到PAT表、PMT表 。
卜娃娃HLS实战之Wireshark抓包分析
本文插图
有些为了降低延时 , 有些策略会去拉取最近的ts流 , 但是这样可能会有个问题 。 为什么呢?
如果直接播放最后一个ts文件 , 那播放完当前ts文件的时候 , 这个时候去拉更新m3u8文件 , 接下来的ts文件不一定生成好 。 这样就可能会有断音 , 造成不好的用户体验 。 比如当前播放的是9秒 , 新生成的ts要10秒 , 这样就会造成断音 。 为了兼容这两种情况 , 那就可以适当缓冲下 , 再播放 。
后面关于项目知识 , 后期会更新 。 欢迎关注微信公众号"记录世界 from antonio" 。