一种hls直播在线用户统计方法和系统的制作方法

文档序号:9914806阅读:1344来源:国知局
一种hls直播在线用户统计方法和系统的制作方法
【技术领域】
[0001]本发明涉及直播统计技术领域,尤其涉及一种HLS直播在线用户统计方法和系统。
【背景技术】
[0002]HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在1S系统,为1S设备(如iPhone、iPad)提供音视频直播和点播方案C=HLS点播,基本上就是常见的分段HTTP点播,不同在于,它的分段非常小。相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、丽S协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器端总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。由此可见,基本上可以认为,HLS是以点播的技术方式来实现直播。由于数据通过HTTP协议传输,所以完全不用考虑防火墙或者代理的问题,而且分段文件的时长很短,客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。
[0003]HLS直播基于HTTP的流媒体传输协议,客户端不停的按顺序播放从服务器获取的文件,来实现直播,所以客户端与服务器上的网络连接不像RTSP和RTMP等协议使用的是TCP长连接,而是每下载一个文件,与服务器建立一个连接,下载完成后连接就断开。因此就不能通过网络是否连接来确定客户端是否在线。也不能通过一个网络连接ID来标识一个客户端,所以对HLS直播服务器来说,在线播放人数的统计是一个比较麻烦的事情。

【发明内容】

[0004]本发明实施例的目的在于提出一种HLS直播在线用户统计方法,旨在解决现有技术网络视频直播业务中的基于HLS直播服务器统计在线播放人数的繁琐的问题。
[0005]本发明实施例是这样实现的,一种HLS直播在线用户统计方法,所述方法包括以下步骤:
[0006]步骤A,预先创建一个文件及播放信息记录器;
[0007]步骤B,nginx服务器中的HTTP服务模块接收播放器提交的播放请求,判断播放请求的文件类型,若为ts文件,则进入步骤C,否则若为m3u8文件,进入步骤F;
[0008]步骤C,HTTP服务模块发送文件请求消息通知给文件及播放信息记录器;
[0009]步骤D,文件及播放信息记录器根据文件请求消息中的ts文件请求中的url,获得播放ID,记录该播放器的播放信息;
[0010]步骤E,Http服务模块将ts文件内容返回给播放器进行播放,结束;
[0011]步骤F,将播放请求通过HTTP服务模块代理,转发给文件及播放信息记录器;
[0012I步骤G,文件及播放信息记录器接收HTTP服务模块代理发送的m3u8文件请求,判断m3u8文件请求是否为第一次请求,若是则进入步骤H;若否,则进入步骤J,
[0013]步骤H,给m3u8文件请求分配一个唯一播放ID,添加到播放路径上,记录该播放器的播放信息,然后返回重定向m3u8文件给HTTP服务模块;
[0014]步骤I,HTTP服务模块将重定向m3u8文件返回给播放器进行播放,结束;
[0015]步骤J,获取m3u8文件信息,给m3u8文件信息中每一个ts文件url加上播放ID,记录该播放器的播放信息,然后将修改后的m3u8文件给HTTP服务模块;
[0016]步骤K,HTTP服务模块将文件及播放信息记录器修改后的m3u8文件返回给播放器进行播放,结束;
[0017]在步骤A-步骤K整个步骤中,文件及播放信息记录器定时扫描所有的播放信息,并统计所有播放ID的个数,如果播放最后时间与当前系统时间差超过了 m3u8文件中所有TS文件的时长总和,则认定该播放ID的播放器播放请求已经结束,播放记录信息已经无效并删除该播放ID ;否则认定播放ID的播放信息继续有效。
[0018]本发明实施例的另一目的在于提出一种HLS直播在线用户统计系统,所述系统包括nginx服务器、文件及播放信息记录器和播放器;
[0019]所述nginx服务器包括HTTP服务模块;
[0020]HTTP服务模块,用于接收播放器提交的播放请求,判断播放请求的文件类型,若为ts文件,则发送文件请求消息通知给文件及播放信息记录器,否则若为m3u8文件请求,贝Ij判断m3u8文件请求是否为第一次请求,若为第一次请求则发送文件请求消息通知给文件及播放信息记录器,并将文件及播放信息记录器返回的重定向的m3u8文件内容返回给播放器;若为非第一次请求,则发送文件请求消息通知给文件及播放信息记录器,并将文件及播放信息记录器返回的修改后的m3u8文件内容返回给播放器;
[0021 ]文件及播放信息记录器,用于记录播放请求的播放信息;并用于为首次m3u8文件请求的m3u8文件请求分配一个唯一播放ID,添加到播放路径上;根据播放请求,传输相应的重定向m3u8文件或修改后的m3u8文件;并且定时扫描所有的播放信息,并统计所有播放ID的个数,如果播放最后时间与当前系统时间差超过了 m3u8文件中所有TS文件的时长总和,则认定该播放ID的播放器播放请求已经结束,播放记录信息已经无效并删除该播放ID;否则认定播放ID的播放信息继续有效。
[0022]本发明的有益效果
[0023]本发明方法通过利用开源nginx服务器来实现http服务功能;通过文件及播放信息记录器,为HLS客户端分配一个唯一的播放ID,并通过该播放ID记录对应客户端的播放信息,来解决HLS通过http文件下载方式来实现直播中统计在线用户数的问题。为HLS直播并发统计提供了一个简单有效的方案。
【附图说明】
[0024]图1是本发明优选实施例一种HLS直播在线用户统计方法流程图;
[0025]图2是本发明优选实施例一种HLS直播在线用户统计系统结构图。
【具体实施方式】
[0026]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
[0027]本发明实施例通过利用开源nginx服务器来实现http服务功能;通过文件及播放信息记录器,为HLS客户端分配一个唯一的播放ID,并通过该播放ID记录对应客户端的播放信息,来解决HLS通过http文件下载方式来实现直播中统计在线用户数的问题。为HLS直播并发统计提供了一个简单有效的方案。
[0028]实施例一
[0029]图1是本发明优选实施例一种HLS直播在线用户统计方法流程图;所述方法包括以下步骤:
[0030]SlOl,预先创建一个文件及播放信息记录器;
[0031 ] S102,nginx服务器中的HTTP服务模块接收播放器提交的播放请求,判断播放请求的文件类型,若为ts文件,则进入步骤S103,否则若为m3u8文件,进入步骤S106 ;
[0032]S103,HTTP服务模块发送文件请求消息通知给文件及播放信息记录器;
[0033]S104,文件及播放信息记录器根据文件请求消息中的ts文件请求中的url,获得播放ID,记录该播放器的播放信息,
[0034]当播放请求为ts文件请求时,所述播放信息包括播放ID和播放请求的最后时间;
[0035]S105,Http服务模块将ts文件内容返回给播放器进行播放,结束。
[0036]S106,将播放请求通过HTTP服务模块代理,转发给文件及播放信息记录器;
[0037]S107,文件及播放信息记录器接收HTTP服务模块代理发送的m3u8文件请求,判断m3u8文件请求是否为第一次请求,若是则进入S108;若否,则进入SI 10,
[0038]S108,给m3u8文件请求分配一个唯一播放ID,添加到播放路径上,记录该播放器的播放信息,然后返回重定向m3u8文件给HTTP服务模块;
[0039]首次m3u8文件请求,所述文件及播放信息记录器记录的播放信息包括播放ID和播放请求的最后时间;
[0040]S109,HTTP服务模块将重定向m3u8文件返回给播放器进行播放,结束。
[0041 ] SI 10,获取m3u8文件信息,给m3u8文件信息中每一个ts文件url加上播放ID,记录该播放器的播放信息,然后将修改后的m3u8文件给HTTP服务模块;
[0042]非首次m3u8文件请求,所述文件及播放信息记录器记录的播放信息包括播放ID、播放请求的最后时间;
[0043]Slll,HTTP服务模块将文件及播放信息记录器修改后的m3u8文件返回给播放器进行播放,结束。
[0044]在SlOl-Sl11整个步骤中,文件及播放信息记录器定时扫描所有的播放信息,并统计所有播放ID的个数,如果播放最后时间与当前系统时间差超过了 m3u8文件中所有TS文件的时长总和,则认定该播放ID的播放器播放请求已经结束,播放记
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1