您的位置:首页 > 其它

一种简单的实现hls流量统计的方法

2017-10-31 20:02 357 查看
一 为什么要流量统计?
很多cdn都是按流量算钱的,当然要统计
二 hls都是短链接,如何统计流量呢?
由于hls是基于http的,而且是短连接,服务端无法知道,哪两次http请求是属于同一个客户端的请求。(有人说通过ip和端口绑定,有的客户端是nat出口,还是变化的ip和端口)
三 简单的统计机制
根据hls的特性,在访问m3u8的时候,使用的url,客户端会保持原样,只是把默认的xx.m3u8替换为m3u8文件里面解析到的ts切片的路径。
比如:http://rtmp.live.com/live/hls/sessionid/stream.m3u8
内容是
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:29886
#EXT-X-TARGETDURATION:00013
#EXTINF:13.388,
20171012/20171012140000/stream_1-20171012141302-29886.ts
#EXTINF:13.330,
20171012/20171012140000/stream_1-20171012141316-29887.ts

。客户端下次下载ts切片的时候的路径将会是 http://rtmp.live.com/live/hls/sessionid/   http://rtmp.live.com/live/hls/sessionid/stream.m3u8

这样一来,实际上sessionid将会永远带过来,这样就有办法统计流量了。

我们在rtmp中配置vhost,通过正则匹配,
location ~ ^/play_with_flow/.*\*.(ts|m3u8)
{
}
实现一个新的http模块,在读取请求带过来的路径的时候,去掉sessionid,这一级子目录,这样就能直接访问到真实的切片文件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: