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

一 为什么要流量统计?

很多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,这一级子目录,这样就能直接访问到真实的切片文件了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值