流媒体直播试看方法、系统、介质及装置与流程

文档序号:22554791发布日期:2020-10-17 02:35阅读:211来源:国知局
流媒体直播试看方法、系统、介质及装置与流程

本发明涉及直播技术领域,特别是涉及一种流媒体直播试看方法、系统、介质及装置。



背景技术:

电视直播作为市场上比较传统的音视频服务,近些年也逐渐从传统的有线电视渠道转移到互联网上,而在互联网上播放就需要强大的流媒体系统作为业务支撑,本发明所涉及的试看系统就是流媒体系统里的一部分。对于电视直播的一些精品频道,服务商往往会采用付费服务,这些付费频道往往希望让用户能够免费体验一下精品内容再进行后续的付费选购。

目前互联网电视直播试看服务主要通过app上层接口来跳转到直播地址,然后通过在app端限制播放时间来控制试看行为的时长。为了最大范围的吸引终端用户,在试看时并不会要求用户提供身份认证,如电话号码或者微信等。但是这样会给盗链者以机会通过网络抓包、模拟终端用户试看请求的方式来嗅探应用层接口。而因为没有用户认证过程,应用层接口无法区分真实用户与模拟用户,盗链者就能够直接访问带有防盗链的直播地址,虽然cdn(内容分发网络)厂家提供防盗链服务,但是因为传统的防盗链过期时间往往多达8小时以上,所以盗链者只要链接失效之前通过重新获取播放列表就能完成盗链的循环盗流过程,进而几乎无成本的盗用相应的直播资源。而众所周知在互联网上做视频服务最大的成本就是cdn费用,如果用户试看时因为播放接口被破解导致直播源被循环盗链,对于流媒体服务提供商无疑是巨大的损失,而以上防盗链场景对接的播放列表为直播地址,这个地址的过期时间高度依赖cdn的配置,在发生盗链情况时候,如果cdn批量调低过期时间会影响用户直播的体验,但是如果给试看频道单独配置过期时间在对接多家cdn时多频道试看时候就会异常繁琐不够灵活,成本也会相应增加。

因此,希望能够解决如何防止用户试看时因为播放接口被破解导致直播源被循环盗链的问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种流媒体直播试看方法、系统、介质及装置,用于解决现有技术中如何防止用户试看时因为播放接口被破解导致直播源被循环盗链的问题。

为实现上述目的及其他相关目的,本发明提供一种流媒体直播试看方法,包括以下步骤:通过时间处理模块获取客户端发送的试看请求,所述试看请求包括开始时间和试看时长,判断所述开始时间和当前时间的时间差是否小于等于第一预设时间,当大于第一预设时间时发送禁止访问信息至所述客户端,当小于等于第一预设时间时判断试看时长是否在第一预设时长范围内,当不在第一预设时长范围内时重置试看时长,当在第一预设时长范围内时发送所述试看请求至多任务处理模块;通过所述任务处理模块判断所述试看请求是否为首次试看请求,当为首次试看请求时为所述试看请求建立任务和对应的id,存储所述任务至任务列表,当不是首次试看请求时查询任务列表中是否已存在任务,当不存在任务时发送禁止访问信息至所述客户端,当存在任务时判断是否到达所述任务的试看结束时间,当到达试看结束时间时回收所述任务的id并发送生成endlist指令至播放列表返回模块,当未到试看结束时间时发送所述任务至播放列表返回模块;通过所述播放列表返回模块基于视频文件生成规则生成视频文件,将符合试看规则的视频文件的视频文件信息写入播放列表,返回所述播放列表至客户端。

于本发明的一实施例中,所述通过所述播放列表返回模块基于视频文件生成规则生成视频文件,将符合试看规则的视频文件的视频文件信息写入播放列表,返回所述播放列表至客户端包括:通过所述播放列表返回模块从源站直播切片列表中查询所述任务的当前时间的视频文件,当未查询到所述当前时间的视频文件时,获取距离当前时间最近的视频文件写入播放列表,当查询到所述当前时间的视频文件时,将所述当前时间的视频文件写入播放列表,通过开始时间和试看时长判断所述任务是否结束,当未结束时返回所述播放列表至客户端,当结束时在所述播放列表后加入endlist指令,并返回所述播放列表和成功返回信息至客户端。

于本发明的一实施例中,所述第一预设时间为30秒。

于本发明的一实施例中,所述第一预设时长范围为1到10分钟。

于本发明的一实施例中,所述播放列表为m3u8。

为实现上述目的,本发明还提供一种流媒体直播试看系统,包括:时间处理模块、任务处理模块和播放列表返回模块;所述时间处理模块获取客户端发送的试看请求,所述试看请求包括开始时间和试看时长,判断所述开始时间和当前时间的时间差是否小于等于第一预设时间,当大于第一预设时间时发送禁止访问信息至所述客户端,当小于等于第一预设时间时判断试看时长是否在第一预设时长范围内,当不在第一预设时长范围内时重置试看时长,当在第一预设时长范围内时发送所述试看请求至多任务处理模块;所述任务处理模块用于判断所述试看请求是否为首次试看请求,当为首次试看请求时为所述试看请求建立任务和对应的id,存储所述任务至任务列表,当不是首次试看请求时查询任务列表中是否已存在任务,当不存在任务时发送禁止访问信息至所述客户端,当存在任务时判断是否到达所述任务的试看结束时间,当到达试看结束时间时回收所述任务的id并发送生成endlist指令至播放列表返回模块,当未到试看结束时间时发送所述任务至播放列表返回模块;所述播放列表返回模块用于基于视频文件生成规则生成视频文件,将符合试看规则的视频文件的视频文件信息写入播放列表,返回所述播放列表至客户端。

于本发明的一实施例中,所述播放列表返回模块还用于从源站直播切片列表中查询所述任务的当前时间的视频文件,当未查询到所述当前时间的视频文件时,获取距离当前时间最近的视频文件写入播放列表,当查询到所述当前时间的视频文件时,将所述当前时间的视频文件写入播放列表,通过开始时间和试看时长判断所述任务是否结束,当未结束时返回所述播放列表至客户端,当结束时在所述播放列表后加入endlist指令,并返回所述播放列表和成功返回信息至客户端。

为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一上述流媒体直播试看方法。

为实现上述目的,本发明还提供一种流媒体直播试看装置,包括:处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述流媒体直播试看装置执行任一上述的流媒体直播试看方法。

最后,本发明还提供一种流媒体直播试看系统,包括:包括上述的流媒体直播试看装置和客户端;所述客户端用于发送试看请求至所述流媒体直播试看装置,所述客户端用于接收播放列表。

如上所述,本发明的一种流媒体直播试看方法、系统、介质及装置,具有以下有益效果:用于防止用户试看时因为播放接口被破解导致直播源被循环盗链。

附图说明

图1a显示为本发明的流媒体直播试看方法于一实施例中的流程图;

图1b显示为本发明的流媒体直播试看方法于又一实施例中的流程图;

图1c显示为本发明的流媒体直播试看方法于再一实施例中的流程图;

图1d显示为本发明的流媒体直播试看方法于还一实施例中的流程图;

图2显示为本发明的流媒体直播试看系统于一实施例中的结构示意图;

图3显示为本发明的流媒体直播试看装置于一实施例中的结构示意图;

图4a显示为本发明的流媒体直播试看系统于又一实施例中的结构示意图;

图4b显示为本发明的流媒体直播试看系统于再一实施例中的结构示意图。

元件标号说明

21时间处理模块

22任务处理模块

23播放列表返回模块

31处理器

32存储器

41流媒体直播试看装置

42客户端

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,故图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

本发明的流媒体直播试看方法、系统、介质及装置,用于防止用户试看时因为播放接口被破解导致直播源被循环盗链。

如图1a所示,于一实施例中,本发明的流媒体直播试看方法,包括以下步骤:

步骤s11、通过时间处理模块获取客户端发送的试看请求,所述试看请求包括开始时间和试看时长,判断所述开始时间和当前时间的时间差是否小于等于第一预设时间,当大于第一预设时间时发送禁止访问信息至所述客户端,当小于等于第一预设时间时判断试看时长是否在第一预设时长范围内,当不在第一预设时长范围内时重置试看时长,当在第一预设时长范围内时发送所述试看请求至多任务处理模块。

步骤s12、通过所述任务处理模块判断所述试看请求是否为首次试看请求,当为首次试看请求时为所述试看请求建立任务和对应的id,存储所述任务至任务列表,当不是首次试看请求时查询任务列表中是否已存在任务,当不存在任务时发送禁止访问信息至所述客户端,当存在任务时判断是否到达所述任务的试看结束时间,当到达试看结束时间时回收所述任务的id并发送生成endlist指令至播放列表返回模块,当未到试看结束时间时发送所述任务至播放列表返回模块。

步骤s13、通过所述播放列表返回模块基于视频文件生成规则生成视频文件,将符合试看规则的视频文件的视频文件信息写入播放列表,返回所述播放列表至客户端。

如图1b所示,于一实施例中,本发明的流媒体直播试看方法,包括以下步骤:

通过时间处理模块获取客户端发送的试看请求,所述试看请求包括开始时间和试看时长。所述开始时间是指客户端当前时间的时间戳,也就是客户端的自身当前的时间,试看时长是指用户试看请求观看直播的试看时间长度。

判断所述开始时间和当前时间的时间差是否小于等于第一预设时间。具体地,所述第一预设时间为30秒。所述当前时间是指时间处理模块所在流媒体直播试看系统的时间。即判断开始时间和当前流媒体直播试看系统时间的时间差的绝对值是否小于等于30秒。只有在一定的时间差范围内才能确保该试看请求的有效性。因为互联网视频播放设备多种多样,有ott盒子或者智能电视等,这些客户端的时间戳很可能跟流媒体直播试看系统的时间戳并非完全一致,所以流媒体直播试看系统为了保证试看的有效性,增加了冗余时间处理。客户端传入时间戳如果和流媒体直播试看系统的时间戳之差的绝对值小于等于30s,就认为是合理范围,为其提供试看服务。这样既允许一定误差时间的存在,又保证了试看请求的有效性。

当大于第一预设时间时发送禁止访问信息至所述客户端。所述禁止访问信息包括但不限于以403的方式发送至客户端。

当小于等于第一预设时间时判断试看时长是否在第一预设时长范围内,当不在第一预设时长范围内时重置试看时长。例如,所述第一预设时间为1到10分钟,如果试看时长不在第一预设时长范围内时,重置试看时长为预设试看时长例如8分钟。为了保证试看的效果和防止持续盗流,在流媒体直播试看系统做了二次限制,只提供1~10分钟的试看时长,即便客户端请求超过这个范围也会被重置为此范围。

当在第一预设时长范围内时发生所述试看请求至多任务处理模块。在满足开始时间和当前时间的时间差小于等于第一预设时间,且试看时长在第一预设时长范围内,发送所述试看请求至多任务处理模块。

如图1c所示,于一实施例中,本发明的流媒体直播试看方法,包括以下步骤:

通过所述任务处理模块判断所述试看请求是否为首次试看请求。因为流媒体直播试看系统大规模部署后,试看请求的请求量很大,所以需要对多任务做处理。判断所述试看请求是否为首次试看请求是指是否为同一个请求,因为在同一个请求的试看时长内,客户端是每间隔6秒向流媒体直播试看系统不停发送试看请求,由流媒体直播试看系统反馈试看内容的。

当为首次试看请求时为所述试看请求建立任务和对应的id。即一个是试看请求对应一个任务和id。

存储所述任务至任务列表。所述任务列表包括但不限于红黑树数据结构。

当不是首次试看请求时查询任务列表中是否已存在任务,当不存在任务时发送禁止访问信息至所述客户端。在后续的试看过程中根据这个id来查询到对应的任务,并持续更新此次试看请求的内容,当不是首次试看请求且不存在任务时,说明出错,没有对应的试看任务,因此返回禁止访问信息(403)至所述客户端。

当存在任务时判断是否到达所述任务的试看结束时间,当到达试看结束时间时回收所述任务的id并发送生成endlist指令至播放列表返回模块,当未到试看结束时间时发送所述任务至播放列表返回模块。如果试看请求到期结束,则回收此id的任务的流媒体直播试看系统资源,后面再次访问此id的任务返回403给客户端。当刚刚到达试看结束时间时回收所述任务的id并发送生成endlist指令至播放列表返回模块,即通知播放列表返回模块所述试看任务已经到达试看结束时间,需要结束试看,并通知客户端。所述endlist指令为通知客户端结束试看的指令。在图1c所示的m3u8生成模块即为播放列表返回模块。

具体地,客户端访问的流媒体直播试看系统示例如下。

#extm3u

#ext-x-stream-inf:bandwidth=1300000,resolution=1024x576

1300.m3u8?session=0

如图1d所示,于一实施例中,本发明的流媒体直播试看方法,包括以下步骤:

通过所述播放列表返回模块基于视频文件生成规则生成视频文件,将符合试看规则的视频文件的视频文件信息写入播放列表,返回所述播放列表至客户端。所述ts为一视频的格式后缀,与mp4等类似。而视频文件为视频切片。

具体地,所述试看规则是指:视频文件对应的试看请求符合试看规则,所述试看请求包括开始时间和试看时长,开始时间满足所述开始时间和当前时间的时间差小于等于第一预设时间,且试看时长满足试看时长在第一预设时长范围内。

具体地,通过所述播放列表返回模块从源站直播切片列表中查询所述任务的当前时间的视频文件,当未查询到所述当前时间的视频文件时,获取距离当前时间最近的视频文件写入播放列表(m3u8即为播放列表),当查询到所述当前时间的视频文件时,将所述当前时间的视频文件写入播放列表,通过开始时间和试看时长判断所述任务是否结束,当未结束时返回所述播放列表至客户端,当结束时在所述播放列表后加入endlist指令,当结束时返回所述播放列表、endlist指令和成功返回信息(200)至客户端。本发明在源站的流媒体层提供一个新的试看接口,因为试看的长度在流媒体直播试看系统高度可控可配置,则即便上层接口被破解,在防盗链过期时间内,流媒体直播试看系统也会根据内置的过期时间自动停止播放,因为hls流媒体协议的特性,一旦过期退出播放,再次请求试看的m3u8,因为切片的时间差,直播视频的流畅性就会大打折扣,这样的盗链也毫无意义,这样就可以有效地降低被盗链的可能性,降低电视直播服务提供商的损失。

具体地,试看结束的m3u8示例如下:

#extm3u

#ext-x-version:3

#ext-x-targetduration:6

#ext-x-media-sequence:1

#extinf:6,

1300/20200609/20200609t182520.ts

#ext-x-endlist

如图2所示,于一实施例中,本发明的流媒体直播试看系统,包括时间处理模块21、任务处理模块22和播放列表返回模块23。

所述时间处理模块21获取客户端发送的试看请求,所述试看请求包括开始时间和试看时长,判断所述开始时间和当前时间的时间差是否小于等于第一预设时间,当大于第一预设时间时发送禁止访问信息至所述客户端,当小于等于第一预设时间时判断试看时长是否在第一预设时长范围内,当不在第一预设时长范围内时重置试看时长,当在第一预设时长范围内时发送所述试看请求至多任务处理模块22.

所述任务处理模块22用于判断所述试看请求是否为首次试看请求,当为首次试看请求时为所述试看请求建立任务和对应的id,存储所述任务至任务列表,当不是首次试看请求时查询任务列表中是否已存在任务,当不存在任务时发送禁止访问信息至所述客户端,当存在任务时判断是否到达所述任务的试看结束时间,当到达试看结束时间时回收所述任务的id并发送生成endlist指令至播放列表返回模块,当未到试看结束时间时发送所述任务至播放列表返回模块23。

所述播放列表返回模块23用于基于视频文件生成规则生成视频文件,将符合试看规则的视频文件的视频文件信息写入播放列表,返回所述播放列表至客户端。

所述播放列表返回模块23还用于从源站直播切片列表中查询所述任务的当前时间的视频文件,当未查询到所述当前时间的视频文件时,获取距离当前时间最近的视频文件写入播放列表,当查询到所述当前时间的视频文件时,将所述当前时间的视频文件写入播放列表,通过开始时间和试看时长判断所述任务是否结束,当未结束时返回所述播放列表至客户端,当结束时在所述播放列表后加入endlist指令,并返回所述播放列表和成功返回信息至客户端。

具体地,所述第一预设时间为30秒。

具体地,所述第一预设时长范围为1到10分钟。

需要说明的是,时间处理模块21、任务处理模块22和播放列表返回模块23的结构和原理与上述流媒体直播试看方法中的步骤一一对应,故在此不再赘述。

需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(microprocessoruint,简称mpu),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。

于本发明一实施例中,本发明还包括一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一所述流媒体直播试看方法。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

如图3所示,于一实施例中,本发明的流媒体直播试看装置包括:处理器31和存储器32;所述存储器32用于存储计算机程序;所述处理器31与所述存储器32相连,用于执行所述存储器32存储的计算机程序,以使所述流媒体直播试看装置执行任一所述的流媒体直播试看方法。

具体地,所述存储器32包括:rom、ram、磁碟、u盘、存储卡或者光盘等各种可以存储程序代码的介质。

优选地,所述处理器31可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

如图4a所示,于一实施例中,本发明的流媒体直播试看系统,包括上述的流媒体直播试看装置41和客户端42;

所述客户端42用于发送试看请求至所述流媒体直播试看装置41,所述客户端41用于接收播放列表。

如图4b所示,于一实施例中,本发明的流媒体直播试看系统,所述流媒体直播试看系统包括时间处理模块、任务处理模块和播放列表返回模块(试看m3u8返回模块)。客户端发送试看请求(用户请求)至流媒体直播试看系统,所述试看请求包括开始时间和试看时长。所述流媒体直播试看系统发送播放列表或错误码至所述客户端。

综上所述,本发明流媒体直播试看方法、系统、介质及装置,用于防止用户试看时因为播放接口被破解导致直播源被循环盗链。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1