一种网络直播系统和方法与流程

文档序号:22554784发布日期:2020-10-17 02:35阅读:206来源:国知局
一种网络直播系统和方法与流程

本发明涉及直播服务领域,特别涉及一种网络直播系统和方法。



背景技术:

随着社会生活和通信技术的发展,出现越来越多的视频直播,用户可以在很多网站上进行观看直播。网站的页面在对直播内容进行呈现时,用户若想同时观看直播并且浏览该页面的其他内容,或进行手动触发均可以将当前直播的内容进行小窗播放。小窗播放的直播视频内容与原先在页面中嵌入的视频播放框中直播的内容相同,只是形式不同在网页的预定位置以小窗口的方式播放直播,用户可以对小窗口的位置进行调整。

而现有技术中使用的小窗播放,播放的视频与原先在页面中嵌入的视频播放框所播放的视频文件具有相同的大小和码率。但小窗播放时由于本身小窗的大小比比视频播放框的大小要小很多,采用相同大小和码率的视频文件不能带来任何观看上的提升,对清晰度没有帮助,同时也造成了网络资源的浪费,也提高了观看的费用。

为此,需要一种新的网络直播系统和方法。



技术实现要素:

为此,本发明提供一种网络直播系统和方法,以力图解决或者至少缓解上面存在的问题。

根据本发明的一个方面,提供一种网络直播系统,系统与一个或多个客户端通信连接,包括:代理服务器,适于获取直播的第一视频文件的第一配置文件,并基于第一配置文件获取第一视频文件;网络服务器,与代理服务器通信连接,适于:从代理服务器中获取第一配置文件,基于第一配置文件从代理服务器中获取第一视频文件;将第一视频文件进行处理得到第二视频文件存储到文件服务器,并生成第二视频文件的第二配置文件;响应来自客户端的直播获取请求,将第二配置文件下发到客户端;文件服务器,与网络服务器通信连接,适于存储第二视频文件,以便客户端根据述第二配置文件获取第二视频文件。

可选地,在根据本发明的系统中,网络服务器还适于:定时遍历预设直播列表,确定直播列表中处于直播状态的直播间;判断直播间是否需要小窗播放,若判断需要小窗播放则从代理服务器中获取相应的第一配置文件,小窗播放是指在网页预定位置以小窗口形式播放直播。

可选地,在根据本发明的系统中,还包括数据库,与网络服务器通信连接,适于存储第一视频文件的地址;其中,网络服务器包括缓存模块,适于存储第一视频文件的地址;网络服务器还适于:若按照预定次数进行重新获取第一视频文件仍获取失败,或按照预定次数进行重新存储第二视频文件仍存储失败,则将第一视频文件的地址存储到数据库和缓存模块中;根据接受到客户端的直播获取请求,从缓存模块中将第一视频文件的地址发送到客户端;以及当缓存模块中未存储地址时,从数据库中将第一视频文件的地址发送到客户端,并将地址在缓存模块中进行存储。

可选地,在根据本发明的系统中,数据库和缓存模块还适于存储第二配置文件,网络服务器还适于:将第二配置文件存储到数据库和缓存模块。

可选地,在根据本发明的系统中,网络服务器还适于:判断直播获取请求是否合法;若直播获取请求合法,则判断直播获取请求对应的直播间是否处于正在直播状态;若直播间正在直播,则判断是否根据第二视频文件生成第二配置文件;若判断未生成第二配置文件则向客户端发送标识信息。

可选地,在根据本发明的系统中,网络服务器还适于:若判断生成第二配置文件,则从缓存模块中将第二配置文件发送到客户端;以及当缓存模块中未存储第二配置文件时,从数据库中将第二配置文件发送到客户端,并将第二配置文件在缓存模块中进行存储。

可选地,在根据本发明的系统中,网络服务器还适于:判断直播获取请求是否符合预定获取频率;若符合预定获取频率则继续判断直播获取请求是否包括预定标识;若包括预定标识则判断直播获取请求合法,否则判断直播获取请求不合法。

可选地,在根据本发明的系统中,数据库和缓存模块还适于存储第一配置文件,网络服务器还适于:将第一视频文件存储到文件服务器中,并将第一配置文件在数据库和缓存模块中进行存储;接收来自客户端的点播获取请求从缓存模块将第一配置文件下发到客户端;当缓存模块未存储第一配置文件时,从数据库中将第一配置文件发送到客户端,并将第一配置文件在缓存模块中进行存储;文件服务器还适于存储第一视频文件,以便客户端根据第二配置文件获取第一视频文件。

可选地,在根据本发明的系统中,还包括一个或若干个边缘服务器,与文件服务器通信连接;文件服务器还适于将第一视频文件或第二视频文件发送到邻近客户端的边缘服务器;边缘服务器适于将第一视频文件或第二视频文件发送到客户端。

可选地,在根据本发明的系统中,代理服务器为分布式代理服务器。

可选地,在根据本发明的系统中,代理服务器获取的第一视频文件为第三方提供的直播视频文件。

根据本发明的另一个方面,提供一种网络直播方法,适于在一种网络直播系统中执行,方法包括:代理服务器获取直播的第一配置文件,基于第一配置文件获取第一视频文件;网络服务器从代理服务器获取第一配置文件,基于第一配置文件获取第一视频文件;网络服务器将第一视频文件进行处理得到第二视频文件存储到文件服务器,并生成第二视频文件的第二配置文件;网络服务器接收来自客户端的直播获取请求并将第二配置文件下发到客户端;以及文件服务器将第二配置文件对应的第二视频文件发送到客户端。

可选地,在根据本发明的方法中,网络服务器从代理服务器获取第一配置文件包括:定时遍历预设直播列表,确定直播列表中处于直播状态的直播间;判断直播间是否需要小窗播放,若判断需要小窗播放则从代理服务器中获取相应的第一配置文件,小窗播放是指在网页预定位置以小窗口形式播放直播。

可选地,在根据本发明的方法中,将第一视频文件进行处理得到第二视频文件存储到文件服务器包括:将高码率的第一视频文件转换为低码率的第二视频文件;将第二视频文件存储于文件服务器;以及若存储失败,则按照预定次数进行重新存储。

可选地,在根据本发明的方法中,还包括:若按照预定次数进行重新获取第一视频文件仍获取失败,或按照预定次数进行重新存储第二视频文件仍存储失败,则将第一视频文件的地址存储到数据库和缓存模块中;根据接收到客户端的直播获取请求,从缓存模块中将第一视频文件的地址发送到客户端;以及当缓存模块中未存储地址时,从数据库中将第一视频文件的地址发送到客户端,并将地址在缓存模块中进行存储。

可选地,在根据本发明的方法中,还包括:将第二配置文件存储到数据库和缓存模块。

可选地,在根据本发明的方法中,接收来自客户端的直播获取请求并将第二配置文件下发到客户端包括:判断直播获取请求是否合法;若直播获取请求合法,则判断直播获取请求对应的直播间是否处于正在直播状态;若直播间正在直播,则判断是否根据第二视频文件生成第二配置文件;若判断未生成第二配置文件则向客户端发送标识信息。

可选地,在根据本发明的方法中,还包括步骤:若判断生成第二配置文件,则从缓存模块中将第二配置文件发送到客户端;以及当缓存模块中未存储第二配置文件时,从数据库中将第二配置文件发送到客户端,并将第二配置文件在缓存模块中进行存储。

可选地,在根据本发明的方法中,判断直播获取请求是否合法包括:判断直播获取请求是否符合预定获取频率;若符合预定获取频率则继续判断直播获取请求是否包括预定标识;若包括预定标识则判断直播获取请求合法,否则判断直播获取请求不合法。

可选地,在根据本发明的方法中,还包括步骤:网络服务器将第一视频文件存储到文件服务器中,并将第一配置文件在数据库和缓存模块中进行存储;接收来自客户端的点播获取请求从缓存模块将第一配置文件下发到客户端;当缓存模块未存储第一配置文件时,从数据库中将第一配置文件发送到客户端,并将第一配置文件在缓存模块中进行存储;以及文件服务器将第一配置文件对应的第一视频文件发送到客户端。

可选地,在根据本发明的方法中,文件服务器将第一视频文件或第二视频文件发送到客户端包括步骤:将第一视频文件或第二视频文件发送到邻近客户端的边缘服务器;以及边缘服务器将第一视频文件或第二视频文件发送到客户端。

可选地,在根据本发明的方法中,代理服务器为分布式代理服务器。

可选地,在根据本发明的方法中,代理服务器获取的第一视频文件为第三方提供的直播视频文件。

根据本发明的又一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的一种网络直播方法的任一方法的指令。

根据本发明的还有一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的一种网络直播方法中的任一方法。

本发明中,网络服务器从代理服务器获取第一配置文件,基于第一配置文件获取第一视频文件;将第一视频文件进行处理得到第二视频文件存储到文件服务器,并生成第二视频文件的第二配置文件;接收来自客户端的直播获取请求并将第二配置文件下发到客户端,文件服务器将第二配置文件对应的第二视频文件发送到客户端。从而能够实现将高码率的第一视频转换为低码率的第二视频文件,便于在网络中进行传输,在不影响直播视频在小窗播放的清晰度情况下,降低直播视频文件的大小和码率,节约网络传输资源并降低相应资费。

其次,在未能将低码率的第二视频文件发送给客户端的情况下,即获取第一视频文件失败或上传第二视频文件失败时,将第一视频文件的地址直接在数据库和缓存模块中进行存储,客户端需要获取直播视频资源时,直接将视频直播的地址提供给客户端,客户端直接通过直播的地址获取直播视频文件,在将视频进行文件进行转码率出现问题时,保证直播服务连续不中断。

再次,将第二视频文件的第二配置文件在数据库和缓存模块中进行存储,当获取到来自客户端的直播获取请求时,直接从缓存模块中将第二配置文件发送给客户端,提高客户端获取直播视频资源的速度。

与此同时,代理服务器获取第一配置文件和第一视频文件,文件服务器对第一视频文件转化后的第二视频文件进行存储,将第二视频文件提供给客户端。文件服务器在客户端根据第二配置文件获取第二视频文件时,进行直播引流,使用公司内部带宽流量将低码率的第二视频文件下发给客户端,减少了客户端直接从第三方获取视频资源,降低了流量资源消耗。

并进一步的,文件服务器在直播完毕后,将完整的直播视频,即直播文件及码率较大的直播视频文件进行存储,并将第一配置文件在数据库和缓存中进行存储。从而在直播结束后,向客户端提供完整的视频点播服务,同时,视频点播服务有和原始视频一样的视频清晰度,避免了直接从第三方获取完整直播视频文件,降低了流量资源消耗,并且从文件服务器中直接获取直播视频文件,也要比从第三方获取直播视频文件更快。

最后,在将第二视频文件或第一视频文件发送到客户端时,通过先将相应的直播视频文件发送到离获取视频直播服务较近的边缘服务器,再通过边缘服务器将直播视频文件分发给客户端,从而提高文件服务器向客户端发送直播视频文件的速度。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个示范性实施例的网络直播系统的示意图100;

图2示出了根据本发明一个示范性实施例的计算设备200的结构框图;

图3示出了根据本发明一个实施例的一种网络直播方法300的流程图;

图4a示出了根据本发明一个实施例的正常播放直播视频的示意图;以及

图4b示出了根据本发明一个实施例的小窗播放直播视频的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个示范性实施例的网络直播系统的示意图100。如图100所示,网络直播系统100包括网络服务器110,文件服务器140和数据库150。文件服务器140和数据库150与网络服务器110通信连接。文件服务器140可以实现为任一种能够存储多媒体文件的服务器,本发明对文件服务器140的类型不作限制。文件服务器140存储网络服务器110发送的第一视频文件和第二视频文件,根据用户端的按照第一配置文件发送的点播获取请求,将第一视频文件下发给客户端171~17n,以及根据客户端171~17n的按照第二配置文件发送的直播获取请求,将第二视频文件下发给客户端171~17n。

数据库150可以实现为一种关系型数据库,本发明对数据库150的类型不作限制。网络服务器110还包括缓存模块111。根据本发明的一个实施例,数据库150为mysql数据库,缓存模块111为radis缓存。数据库150和缓存模块111存储第一视频文件的地址,第一配置文件和第二配置文件。数据库150和缓存模块111还根据用户端发送的直播获取请求将第一视频文件的地址或第二配置文件下发到客户端171~17n,以及根据用户端发送的点播获取请求将第一配置文件发送给客户端171~17n。

网络服务器110与代理服务器121~12n通信连接。代理服务器121~12n可以实现为如图所示的多个分布式代理服务器,网络服务器110分别与多个分布式代理服务器121~12n通信连接。图中网络服务器110与代理服务器121~12n相连接的方式仅为示例性的,在具体的实践情况中,网络服务器110可以连接多个代理服务器,本发明对网络服务器110所链接的代理服务器数量不作限制。并且,每个代理服务器121~12n均连接到相对应的第三方直播资源服务器131~13n,如图所示,代理服务器121连接到第三方直播资源服务器131,代理服务器122连接到第三方直播资源服务器132,······代理服务器12n连接到第三方直播资源服务器13n。代理服务器121~12n连接第三方直播资源服务器131~13n的方式为连接地理上接近的第三方直播资源服务器,以便于就近获取相应的直播资源文件,提高获取直播资源文件的效率。代理服务器121~12n获取所链接的第三方直播资源服务器131~13n的直播资源文件,包括第一配置文件和第一视频文件,并先获取第一配置文件,根据第一配置文件获取第一视频文件。第三方直播资源服务器131~13n为第三方提供直播资源的服务器,可以实现为业务上对接的多个第三方所提供的服务器,第三方直播资源服务器131~13n可以实现为直播资源云服务器或直播资源文件服务器,本发明对第三方直播资源服务器131~13n的类型不作限制。第三方直播资源服务器131~13n提供用户需要的直播资源文件,将第一配置文件和第一视频文件发送给代理服务器121~12n,以便网络直播系统100进一步对第一视频文件进行处理,并发送给客户端171~17n。

网络服务器110为一种web服务器,对客户端171~17n发出的请求信息进行处理,以及从代理服务器121~12n中获取第一配置文件和第一视频文件,并对其进行处理。网络服务器110从代理服务器121~12n中获取第一配置文件,基于第一配置文件从代理服务器121~12n中获取第一视频文件;将第一视频文件进行处理得到第二视频文件存储到文件服务器140,并生成第二视频文件的第二配置文件;响应来自客户端171~17n的直播获取请求,将第二配置文件下发到客户端171~17n。

缓存模块111,文件服务器140和数据库150与边缘服务器161~16n通信连接。边缘服务器161~16n可以实现为如图所示的多个分布式边缘服务器,缓存模块111,文件服务器140和数据库150分别与多个分布式边缘服务器161~16n通信连接。图中缓存模块111,文件服务器140和数据库150与分布式边缘服务器161~16n相连接的方式仅为示例性的,在具体的实践情况中,缓存模块111,文件服务器140和数据库150可以连接多个边缘服务器,本发明对缓存模块111,文件服务器140和数据库150所链接的边缘服务器的数量不作限制。并且,每个边缘服务器161~16n均连接到对应的客户端171~17n,如图所示,边缘服务器161连接到客户端171,边缘服务器162连接到客户端172,······边缘服务器16n连接到客户端17n。并且,在具体的实践情况中,每个边缘服务器161~16n可以连接多个客户端,本发明对边缘服务器161~16n所链接的客户端数量不作限制。并且,边缘服务器161~16n可以连接不同类型的客户端,客户端171~17n可以实现为一种计算设备或移动终端,本发明对边缘服务器161~16n所链接的客户端类型不作限制。

根据本发明的一个实施例,边缘服务器161~16n可以实现为cdn内容分发网络上的一个服务器,缓存模块111,文件服务器140和数据库150通过cdn内容分发网络将相应内容发送给客户端171~17n。边缘服务器161~16n组成cnd内容分发网络,便于客户端171~17n就近获取相应的直播和点播视频内容。

网络服务器110,文件服务器140,数据库150,代理服务器121~12n和边缘服务器161~16n,均可以具体实现为一种计算设备。图2示出了根据本发明一个示范性实施例的计算设备200的结构框图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。

取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。

取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个程序222以及程序数据224。在一些实施方式中,程序222可以布置为在操作系统上由一个或者多个处理器204利用程序数据224执行指令。

计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个a/v端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个i/o端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

在根据本发明的计算设备200中,应用222包括执行一种网络直播方法300的多条程序指令,这些程序指令可以指示处理器204执行本发明的一种在网络直播系统100中运行的网络直播方法300中的部分步骤,以便网络直播系统100中的各部分通过执行本发明的一种网络直播方法300来实现向客户端171~17n提供网络直播服务。

计算设备200可以实现为服务器,例如文件服务器140、数据库150服务器、应用程序服务器等,这些电子设备可以是诸如个人数字助理(pda)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。可以实现为包括桌面计算机和笔记本计算机配置的个人计算机,也在一些实施例中,计算设备200被配置为执行一种网络直播方法300。

图3示出了根据本发明一个实施例的一种网络直播方法300的流程图。如图3所示,一种网络直播方法300始于步骤s310,代理服务器121~12n获取直播的第一配置文件,基于第一配置文件获取第一视频文件。下面以第三方直播资源服务器131,代理服务器121,边缘服务器161和客户端171为例,进一步结合相关步骤对本发明一种网络直播方法300进行说明。

代理服务器121获取的第一视频文件为第三方提供的直播视频文件。第三方直播资源服务器131在直播业务提供方通过拍摄,录制等方式,从直播信号源获取原始直播视频文件。第三方直播资源服务器131会对原始直播视频文件在后台进行处理。处理的步骤包括:视频编码器对原始直播视频文件进行编码,流切割器对编码后的原始直播视频文件进行分片操作,得到第一视频文件和第一视频文件的第一配置文件。根据本发明的一个实施例,第三方直播资源服务器131与代理服务器121通过httplivestreaming(hls)流媒体网络传输协议对直播视频文件进行传输。第三方直播资源服务器131所生成的第一视频文件为将原始直播视频文件切片后的多个ts媒体文件,第一配置文件为切片后的多个ts媒体文件对应的m3u8索引文件。

代理服务器121从第三方直播资源服务器131中获取动态变化的第一配置文件,并基于第一配置文件获取第一视频文件,即按照第一视频文件的顺序,依次获取第一视频文件。根据本发明的一个实施例,代理服务器121从第三方直播资源服务器131获取的视频流中包含10个ts媒体文件,分别为00.ts~09.ts。00.ts~09.ts即为第一视频文件,第一视频文件对应的第一配置文件为a.m3u8。a.m3u8文件中的一部分如下所示:

#extm3u

#ext-x-version:3

#ext-x-targetduration:15

#ext-x-media-sequence:00

#ext-x-playlist-type:vod

#extinf:11.800

news-00.ts?domain=hlslive-club.com.1.1

#extinf:10.120

news-01.ts?domain=hlslive-club.com.1.1

#extinf:11.952

news-02.ts?domain=hlslive-club.com.1.1

#extinf:12.640

news-03.ts?domain=hlslive-club.com.1.1

#extinf:11.160

news-04.ts?domain=hlslive-club.com.1.1

#extinf:11.751

news-05.ts?domain=hlslive-club.com.1.1

#extinf:2.040

news-06.ts?domain=hlslive-club.com.1.1

#extinf:12.640

news-07.ts?domain=hlslive-club.com.1.1

#extinf:11.160

news-08.ts?domain=hlslive-club.com.1.1

#extinf:11.751

news-09.ts?domain=hlslive-club.com.1.1

a.m3u8文件中,extm3u起标识作用,表名该文件为m3u8文件。ext-x-version标识协议版本,该文件中该值为3,及采用的是hls协议第三个版本。ext-x-targetduration为a.m3u8文件中所有的ts切片媒体文件的最大时长,该文件中该值为15,表示00.ts~09.ts文件的最大时长为15秒。ext-x-media-sequence为a.m3u8文件中所有的ts切片媒体文件的开始序号,每一个ts切片媒体文件都具有唯一一个序号,相邻之间序号加一并保持继续增长,应该这10个ts切片媒体文件的序号为从00到09。ext-x-playlist-type标识a.m3u8文件的类型,vod表示为点播。extinf为每个ts切片媒体文件的实际时长,例如00.ts的时长为11.800秒,01.ts的时长为10.120秒。00.ts,01.ts等为每一个ts切片媒体文件的文件名。domain=hlslive-club.com.1.1为每一个ts切片媒体文件在第三方直播资源服务器131中的地址,通过该地址,代理服务器121可以获取到相应的ts切片媒体文件。

在a.m3u8文件中,00.ts~09.ts文件从00.ts到09.ts依次顺序排列,标识从从00.ts到09.ts的依次播放顺序。代理服务器121获取a.m3u8文件后,根据a.m3u8文件获取ts媒体文件时,按照a.m3u8文件中的顺序,从00.ts到09.ts依次进行获取。

代理服务器121获取第一配置文件和第一视频文件后,对获取到的文件临时进行存储,以便提供给网络服务器110从而对第一视频文件进行处理。代理服务器121~12n为分布式代理服务器,每个代理服务器121~12n均在地理上邻近于该地区范围内的第三方直播资源服务器,每个代理服务器121~12n均可以通信连接多个及不同类型的第三方直播资源服务器,本发明对代理服务器121~12n所链接的第三方直播资源服务器的类型和数量不作限制。

随后,执行步骤s320,网络服务器110从代理服务器121获取第一配置文件,基于第一配置文件获取第一视频文件。网络服务器110获取第一配置文件和第一视频文件的方式与代理服务器121从第三方直播资源服务器131中获取的方式相同,此处便不再赘述。网络服务器110从多个代理服务器121中获取第一配置文件和第一视频文件,将代理服务器121所获取的文件进行汇总和进一步进行处理。网络服务器110在从代理服务器121获取第一配置文件,基于第一配置文件获取第一视频文件获取失败时,按照预定次数对第一配置文件和第一视频文件进行重复获取。根据本发明的一个实施例,预定次数设置为三次,本发明对预定次数的大小不作限制。

在该步骤中,网络服务器110定时遍历预设直播列表,确定直播列表中处于直播状态的直播间。判断直播间是否需要小窗播放,若判断需要小窗播放则从代理服务器121中获取相应的第一配置文件。预设直播列表和与设置直播列表中的直播间是否需要小窗播放均可以由网络服务器110根据具体业务情况预先进行配置。具体在配置过程中依据网络服务器110与第三方直播资源服务器131之间订立的直播视频引流协议进行判断。根据本发明的一个实施例,如与第三方直播资源服务器131之间确定,需要将某几个直播视频流作为预设直播列表,直播列表包括“老铁快上车”、“新车上市”、“娱乐圈”、“车友圈”四个直播间。其中,需要将“车友圈”直播间进行直播引流操作,将“车友圈”直播间的直播视频内容进行小窗播放。小窗播放是指在网页预定位置以小窗口形式播放直播。以小窗口形式播放直播视频内容时,小窗的大小小于页面的尺寸,也小于在网页页面中嵌入视频播放器的尺寸,相对于在浏览器视口中的页面的比例小。由于“小窗”的面积较小,对分辨率,码率的要求不高,因此可以将“车友圈”直播间的直播的第一视频文件进行转化为低码率,体积小的第二视频文件进行播放。小窗播放的位置可以由用户在页面范围内进行拖动,也可以随用户在页面上的滚动浏览操作随之下移。小窗播放可以由客户端171的用户进行手动触发,也可以由网页根据用户在网页上的行为进行自动触发。手动触发是指用户在页面上点击按钮“以小窗形式播放”进行触发,本发明对按钮的样子及字样不作限制。自动触发是指用户的操作行为——在当前页面的滚动操作使嵌入式的视频框消失在页面的视口内时,触发对直播内容的小窗播放。但无论以何种方式触发对直播视频的小窗播放,客户端171都会向网络服务器110发送直播获取请求。

随后,执行步骤s330,网络服务器110将第一视频文件进行处理得到第二视频文件存储到文件服务器140,并生成第二视频文件的第二配置文件。由于要在网页中,将正在直播的视频流进行小窗播放,小窗播放的视频流由于在进行播放时,小窗的面积较小,相对与嵌入式的直播框及整个页面占比也不多,因此不需要采用较大及码率较高的视频文件。因而本发明将高码率的第一视频文件转化为低码率的第二文件。第二视频文件不仅在码率上比第一视频文件的要小,而且在文件的体积上也比第一视频文件的要小,节约了获取视频流的流量,降低了获取直播内容的资费。

并且在转化第一视频文件得到第二视频文件后,将第二视频文件存储到文件服务器140,以便客户端171从文件服务器140中获取第二视频文件。在将第二视频文件存储到第一视频文件时,若存储失败,则按照预定次数对第二视频文件重新进行存储。根据本发明的一个实施例,预定次数设置为三次,本发明对预定次数的大小不作限制。

根据本发明的一个实施例,在网络服务器110从代理服务器121中按照预定次数重新获取第一视频文件仍获取失败,或按照预定次数进行重新存储第二视频文件仍存储失败,则将第一视频文件的地址存储到数据库150和缓存模块111中。避免因获取第一视频文件或存储第二视频文件失败时,客户端171不能收看直播内容的情况,保证了直播服务不因存储故障而导致暂停。

数据库150和缓存模块111在获取或存储故障时,存储第一视频文件的地址。并在接收到客户端171的直播获取请求后,从缓存模块111中将第一视频文件的地址发送到客户端171。从缓存模块111中直接将地址返回给客户端171要比从数据库150中将地址返回给客户端171要快,提高了直播获取请求的响应速度。当缓存模块111中未存储地址时,从数据库150中将第一视频文件的地址发送到客户端171,并将地址在缓存模块111中进行存储,避免未来得及将视频的地址在缓存模块111中缓存时,无法将第一视频文件提供给客户端171的情况。客户端171在接收到第一视频文件的地址后,直接通过第一视频文件的地址获取第一视频文件,保证直播业务的稳定持久。

网络服务器110还基于转化得到的第二视频文件生成第二视频文件的第二配置文件。第二配置文件为第二视频文件的直播视频播放索引文件。根据本发明的一个实施例,将第一视频文件00.ts~09.ts文件转化得到s00.ts~s09.ts文件,基于转化得到的s00.ts~s09.ts文件生成s00.ts~s09.ts的直播视频播放索引文件sa.m3u8文件。s00.ts~s09.ts文件与00.ts~09.ts文件视频的内容相同,但文件的大小和码率比00.ts~09.ts文件要小,索引文件sa.m3u8与原第一视频文件的索引文件a.m3u8的格式相同,但内容基于s00.ts~s09.ts文件生成。

生成第二配置文件的过程为解析原来第一配置文件中每个文件的播放时长,并基于新生成的第二视频文件及其现地址生成第二配置文件,第二视频文件的现地址即为第二视频文件存储在文件服务器140中的地址。根据本发明的一个实施例,生成sa.m3u8文件的过程为,解析a.m3u8文件中每个ts切片媒体文件的时长,00.ts的时长为11.800秒,01.ts的时长为10.120秒。00.ts的时长即为生成的第二视频文件s00.ts对应时长,为11.800秒,01.ts的时长即为生成的第二视频文件s01.ts对应时长,为10.120秒,依次类推得到所有第二视频文件s00.ts~s09.ts的对应时长。第二视频文件s00.ts~s09.ts的现地址即为在文件服务器140中存储的地址fileserver.1.1。将s00.ts~s09.ts的对应时长回填到m3u8索引文件中,并与s00.ts~s09.ts在文件服务器140中存储的地址fileserver.1.1组合,得到第二配置文件。第二配置文件的一个示例如下:

#extm3u

#ext-x-version:3

#ext-x-targetduration:15

#ext-x-media-sequence:00

#ext-x-playlist-type:vod

#extinf:11.800

news-s00.ts?domain=fileserver.1.1

#extinf:10.120

news-s01.ts?domain=fileserver.1.1

#extinf:11.952

news-s02.ts?domain=fileserver.1.1

#extinf:12.640

news-s03.ts?domain=fileserver.1.1

#extinf:11.160

news-s04.ts?domain=fileserver.1.1

#extinf:11.751

news-s05.ts?domain=fileserver.1.1

#extinf:2.040

news-06.ts?domain=fileserver.1.1

#extinf:12.640

news-s07.ts?domain=fileserver.1.1

#extinf:11.160

news-s08.ts?domain=fileserver.1.1

#extinf:11.751

news-s09.ts?domain=fileserver.1.1

网络服务器110还将第二配置文件发送到数据库150和存储模块中进行存储,以便后续将第二配置文件发送给客户端171。

随后,执行步骤s340,网络服务器110接收来自客户端171的直播获取请求并将第二配置文件下发到客户端171。在该步骤中,网络服务器110判断来自客户端171的直播获取请求是否合法。判断直播获取请求是否合法的步骤包括:判断直播获取请求是否符合预定获取频率。是否复合预定频率是指是否复合视频播放时,按照ts媒体文件的时长来进行直播获取请求。根据本发明的一个实施例,s00.ts~s09.ts的对应时长被sa.m3u8文件设置为在15秒以下,但每个ts媒体文件s00.ts~s09.ts的时长也在10秒以上。因此,客户端171向网络服务器110发送直播获取请求的频率应该为10秒~15秒一次。网络服务器110据此来判断客户端171的直播获取请求是否在预定频率之内。

如果直播获取请求过快,则可以该直播获取请求为一种恶意攻击行为,大量的客户端171~171n在短时间内发起成千上万次的请求,以求瘫痪本网络直播系统100中的网络服务器110和文件服务器140等,网络服务器110在遇到这种直播获取请求时,将其视为一种非法的攻击行为,不对其进行相关操作。

若符合预定获取频率则继续判断直播获取请求是否包括预定标识。若包括预定标识则判断所述直播获取请求合法,否则判断所述直播获取请求不合法。预定标识是指从网路服务器提供的官方网站或者是在移动终端上的官方app上,请求直播服务时直播获取请求所携带的可以进行认证的标识。从网路服务器提供的官方网站或是不同系统的移动终端上的不同版本官方app上访问直播间进行小窗播放时,客户端171向网络服务器110发送的直播获取请求中包含预定标识,从而网络服务器110能认证该直播获取请求为合法的直播获取请求。

若接受到的直播获取请求合法,则判断直播获取请求对应的直播间是否处于正在直播状态。若直播间正在直播,则判断是否根据第二视频文件生成第二配置文件。若判断未生成第二配置文件则向所述客户端171发送标识信息。根据本发明的一个实施例,客户端171向网络服务器110发送将“车友圈”直播间进行小窗播放的直播获取请求,网络服务器110判断“车友圈”直播间是否正在直播,若“车友圈”直播间未开播则向客户端171发送直播间未开播的状态码,客户端171解析状态码提示用户当前直播间未开播。若“车友圈”直播间正在直播,则判断是否根据“车友圈”直播间的第二视频文件s00.ts~s09.ts生成了第二配置文件sa.m3u8。网络服务器110在数据库150和缓存模块111中查找相应的第二配置文件,若数据库150和缓存模块111中没有保存该第二配置文件sa.m3u8,则判断未生成第二视频文件s00.ts~s09.ts的第二配置文件。则直接从缓存模块111或数据库150中将相应的第一视频文件00.ts~09.ts在第三方直播资源服务器131中的地址hlslive-club.com.1.1发送给客户端171,以便客户端171直接根据00.ts~09.ts的地址获取相应的第一视频文件,保证直播业务不被中断。

若网络直播间判断生成了第二配置文件,则从缓存模块111中将第二配置文件发送到客户端171;以及当缓存模块111中未存储第二配置文件时,从数据库150中将第二配置文件发送到客户端171,并将第二配置文件在缓存模块111中进行存储。优先从缓存模块111中将第二配置文件发送给客户端171,能够对来自客户端171的直播获取请求进行快速响应。其次,当未来得及将第二配置文件存储在缓存模块111中时,从数据库150中将第二配置文件发送给客户端171,保证能够向客户端171提供第二视频文件和第二配置文件的服务。当客户端171接收到第二配置文件后,根据第二配置文件向网络服务器110发送直播获取请求,文件服务器140将第二视频文件发送给客户端171。客户端171根据第二配置文件从文件服务器140获取第二视频文件的方法,与代理服务器121根据第一配置文件从第三方直播资源服务器131中获取第一视频文件,网络服务器110根据第一配置文件从代理服务器121中获取第一配置文件相同。

根据本发明的一个实施例,客户端171根据第二配置文件从文件服务器140获取第二视频文件,文件服务器140将第二视频文件下发给客户端171的过程具体为:客户端171按照第二视频文件s00.ts~s09.ts在第二配置文件sa.m3u8中的顺序进行请求第二视频文件,并且根据第二视频文件中每个ts媒体文件的播放时长,作为预设频率向网络服务器110发送直播获取请求。文件服务器140根据第二配置文件sa.m3u8中第二视频文件s00.ts~s09.ts的顺序将第二视频文件,从文件s00.ts开始,依次根据用户的直播获取请求下发到客户端171,直到将文件s09.ts发送完毕。

根据本发明又一个实施例,由于网络直播系统100是对直播视频文件进行发送,而直播视频文件由于自身特性,处于不断变化的过程中。因此,由第三方直播资源服务器131生成的第一视频文件不断变化,第一视频文件对应的第一配置文件也在不断变化。第一配置文件每次进行更新时,将第一视频文件列表的第一个ts媒体文件移除,并在最后加入更新的一个ts媒体文件。与此同时,改变第一配置文件即m3u8文件中ext-x-media-sequence的参数,每次更新m3u8文件变更该参数时将该参数加1,并保持不间断的正向递增。根据本发明的一个实施例,当第三方直播资源服务器131产生了新的ts媒体文件10.ts时,将a.m3u8文件进行更改为b.m3u8文件。具体实现方式为将00.ts文件在m3u8文件中的信息删除,默认00.ts文件已经在客户端171播放完毕,并在列表最后加入10.ts文件的信息,包括实际持续时间,10.ts文件在第三方直播资源服务器131中的位置。与此同时,改变标签ext-x-media-sequence的参数,将其加1,变为01,代表该m3u8文件播放时,从01.ts文件开始播放,到10.ts文件结束。b.m3u8文件的一个示例如下:

#extm3u

#ext-x-version:3

#ext-x-targetduration:15

#ext-x-media-sequence:01

#ext-x-playlist-type:vod

#extinf:10.120

news-01.ts?domain=hlslive-club.com.1.1

#extinf:11.952

news-02.ts?domain=hlslive-club.com.1.1

#extinf:12.640

news-03.ts?domain=hlslive-club.com.1.1

#extinf:11.160

news-04.ts?domain=hlslive-club.com.1.1

#extinf:11.751

news-05.ts?domain=hlslive-club.com.1.1

#extinf:2.040

news-06.ts?domain=hlslive-club.com.1.1

#extinf:12.640

news-07.ts?domain=hlslive-club.com.1.1

#extinf:11.160

news-08.ts?domain=hlslive-club.com.1.1

#extinf:11.751

news-09.ts?domain=hlslive-club.com.1.1

#extinf:11.800

news-10.ts?domain=hlslive-club.com.1.1

第三方直播资源服务器131增加新的ts媒体文件10.ts,并修改a.m3u8文件得到b.m3u8文件后,代理服务器121获取新的m3u8索引文件b.m3u8,并根据b.m3u8文件获取10.ts媒体文件。接着,网络直播系统100重复执行网络直播方法300步骤s310~步骤s340,直到直播间直播完成整个直播。

直播间完成整个直播后,网络服务器110对直播的第一视频文件和第一配置文件进行汇总。将第一视频文件合并为完成的直播视频文件,并将第一视频文件存储到文件服务器140中。在对第一配置文件进行处理时,将第一配置文件进行合并,得到最终的第一配置文件。并在第一配置文件的结尾加上ext-x-endlist标签。ext-x-endlist为a.m3u8文件的结束符号,表示不再向m3u8索引文件中继续添加媒体文件。根据本发明的一个实施例,最终生成的第一配置文件为final.m3u8,文件中的一部分如下所示:

#extm3u

#ext-x-version:3

#ext-x-targetduration:15

#ext-x-media-sequence:00

#ext-x-playlist-type:vod

news-00.ts?domain=fileserver.1.1

#extinf:10.120

news-01.ts?domain=fileserver.1.1

#extinf:11.952

news-02.ts?domain=fileserver.1.1

#extinf:12.640

news-03.ts?domain=fileserver.1.1

#extinf:11.160

news-04.ts?domain=fileserver.1.1

#extinf:11.751

news-05.ts?domain=fileserver.1.1

#extinf:2.040

news-06.ts?domain=fileserver.1.1

#extinf:12.640

news-07.ts?domain=fileserver.1.1

#extinf:11.160

news-08.ts?domain=fileserver.1.1

#extinf:11.751

news-09.ts?domain=fileserver.1.1

#extinf:11.800

news-10.ts?domain=fileserver.1.1

#ext-x-endlist

final.m3u8中按顺序记载了第一视频文件从00.ts到10.ts,包括每个ts媒体文件的实际时长和在文件服务器140中的存储的位置。网络服务器110接收来自客户端171的点播获取请求,向客户端171提供高清晰度的第一视频文件。网络服务器110将最终的第一配置文件即final.m3u8在数据库150和缓存模块111中进行存储。并在接收来自客户端171的点播获取请求从缓存模块111将所述第一配置文件下发到客户端171。当缓存模块111未存储第一配置文件时,从数据库150中将第一配置文件发送到客户端171,并将第一配置文件在缓存模块111中进行存储;以及文件服务器140根据第一配置文件将第一视频文件发送到客户端171。

根据本发明的一个实施例,文件服务器140在向每个请求直播视频的客户端171发送第一视频文件或第二视频文件时,先将第一视频文件或第二视频文件发送到边缘服务器161。边缘服务器161组成一个cdn内容分发网络,每个边缘服务器161为cdn内容分发网络的一个节点。边缘服务器161接收地理上附近客户端171需要的第二视频文件,将接收到的第二视频文件转发给相应的客户端171,从而能够提高视频文件的转发效率,提高客户端接收第二视频文件的速度,增加流畅度,改善用户在客户端的观看体验。

根据本发明的一个实施例,文件服务器140向客户端171发送第一视频文件和第二视频文件使用的是内部流量,与客户端171直接从第三方直播资源服务器131中获取第一视频文件所使用的外部流量不同,充分利用网络资源对直播流量进行配置,降低直播的资费。网络服务器110对文件服务器140向客户端171发送第一视频文件和第二视频文件的使用的内部流量进行实时监控,当监控到所使用的内部流量超过预定阈值时,及时停止从文件服务器140向客户端171提供视频资源,客户端171及时进行切换从第三方直播资源服务器131中获取第一视频文件,以避免内部流量使用超出预定阈值导致出现超额费用,并同时保证用户观看直播不受影响,避免直播的卡顿。

根据本发明的一个实施例,下面结合图4a和图4b进一步的对本发明的网络直播系统100和网络直播方法300进行说明。说明过程中以代理服务器121,第三方直播资源服务器131,边缘服务器161,客户端171为例。代理服务器121是第三方直播资源服务器131地理上一定范围内最近的代理服务器121,从第三方直播资源服务器131中获取第一配置文件和第一视频文件。边缘服务器161组成cdn内容分发网络,边缘服务器161是在地理上距离客户端171最近的一个cdn内容分发网络的节点,客户端171从边缘服务器161中获取第一视频文件和第二视频文件。

如图4a所示,图4a示出了根据本发明一个实施例的正常播放直播视频的示意图。图4a中“车友圈”直播间正在处于直播状态。第三方直播资源服务器131对“车友圈”直播间视频流进行编码后,分片得到第一视频文件00.ts~09.ts,为10个ts媒体文件,以及第一视频文件对应的第一配置文件a.m3u8。代理服务器121获取第一配置文件a.m3u8,并根据第一配置文件获取第一视频文件00.ts~09.ts。网络服务器110按照同样的方式获取第一配置文件和第一视频文件。如果获取失败则将第一视频文件在第三方直播资源服务器131中的地址在数据库150和缓存模块111中进行存储,以便客户端171通过该地址直接从第三方直播资源服务器131中获取第一视频文件观看直播。

如果获取成功则继续对第一视频文件进行处理,将高码率的第一视频文件处理得到低码率的第二视频文件s00.ts~s09.ts。第二视频文件s00.ts~s09.ts与第一视频文件内容相同,但体积和码率要比第一视频文件低。保证在进行小窗播放时,不降低用户的观看体验的情况下,提高直播视频的速度降低流量的消耗。网络服务器110得到第二视频文件后将第二视频文件上传到文件服务器140,以便从文件服务器140将第二视频文件发送给客户端171。如果上传失败,则将第一视频文件在第三方直播资源服务器131中的地址在数据库150和缓存模块111中进行存储,以便客户端171通过该地址直接从第三方直播资源服务器131中获取第一视频文件观看直播。

并进一步的根据获得的第二视频文件,生成第二配置文件sa.m3u8。将第二配置文件发送到数据库150和缓存模块111,以便将第二配置文件发送到客户端171。网络服务器110对预设的直播间列表“老铁快上车”、“新车上市”、“娱乐圈”、“车友圈”进行轮询,判断“车友圈”直播间正在直播并且需要进行直播引流操作。客户端171根据用户在页面上的手动操作或自动向网络服务器110发送直播获取请求。网络服务器110接受到直播获取请求要将“车友圈”直播间的直播视频内容进行小窗播放。缓存模块111将第二配置文件发送给客户端171,其次,当未来得及将第二配置文件存储在缓存模块111中时,从数据库150中将第二配置文件发送给客户端171。客户端171根据第二配置文件从文件服务器140获取第二视频文件。文件服务器140在先将第一视频文件或第二视频文件发送到边缘服务器161,边缘服务器161将接收到的第二视频文件转发给客户端171。图4b示出了根据本发明一个实施例的小窗播放直播视频的示意图。“车友圈”直播间的直播内容在页面右侧进行小窗播放。

当直播正在进行时,第三方直播资源服务器131生成新的第二配置文件b.m3u8和第二视频文件10.ts。代理服务器121获取新的m3u8索引文件b.m3u8,并根据b.m3u8文件获取10.ts媒体文件。接着,网络直播系统100重复执行以上步骤,直到直播间直播完成整个直播。直播间完成整个直播后,网络服务器110对直播的第一视频文件和第一配置文件进行汇总。网络服务器110将第一视频文件合并为完整的直播视频文件00.ts~10.ts,并将第一视频文件存储到文件服务器140中,将第一配置文件进行汇总得到final.m3u8,在数据库150和缓存模块111中进行存储。在接收来自客户端171的点播获取请求从缓存模块111将所述第一配置文件下发到客户端171。当缓存模块111未存储第一配置文件时,从数据库150中将第一配置文件发送到客户端171,并将第一配置文件在缓存模块111中进行存储;以及文件服务器140根据第一配置文件将第一视频文件发送到客户端171,提供视频点播服务。将第一视频文件发送到客户端171时,文件服务器140在先将第一视频文件或第二视频文件发送到边缘服务器161,边缘服务器161将接收到的第二视频文件转发给客户端171。

并进一步的,网络服务器110对文件服务器140将第一视频文件或第二视频文件发送给客户端171的内部流量进行监控,避免内容流量的使用超于预定限制产生额外费用。当达到预定限制时,停止从文件服务器140向客户端171发送直播资源,客户端171直接通过第一视频文件的地址从第三方直播资源服务器131中获取直播资源。

本发明中,网络服务器从代理服务器获取第一配置文件,基于第一配置文件获取第一视频文件;将第一视频文件进行处理得到第二视频文件存储到文件服务器,并生成第二视频文件的第二配置文件;接收来自客户端的直播获取请求并将第二配置文件下发到客户端,文件服务器将第二配置文件对应的第二视频文件发送到客户端。从而能够实现将高码率的第一视频转换为低码率的第二视频文件,便于在网络中进行传输,在不影响直播视频在小窗播放的清晰度情况下,降低直播视频文件的大小和码率,节约网络传输资源并降低相应资费。

其次,在未能将低码率的第二视频文件发送给客户端的情况下,即获取第一视频文件失败或上传第二视频文件失败时,将第一视频文件的地址直接在数据库和缓存模块中进行存储,客户端需要获取直播视频资源时,直接将视频直播的地址提供给客户端,客户端直接通过直播的地址获取直播视频文件,在将视频进行文件进行转码率出现问题时,保证直播服务连续不中断。

再次,将第二视频文件的第二配置文件在数据库和缓存模块中进行存储,当获取到来自客户端的直播获取请求时,直接从缓存模块中将第二配置文件发送给客户端,提高客户端获取直播视频资源的速度。

与此同时,代理服务器获取第一配置文件和第一视频文件,文件服务器对第一视频文件转化后的第二视频文件进行存储,将第二视频文件提供给客户端。文件服务器在客户端根据第二配置文件获取第二视频文件时,进行直播引流,使用公司内部带宽流量将低码率的第二视频文件下发给客户端,减少了客户端直接从第三方获取视频资源,降低了流量资源消耗。

并进一步的,文件服务器在直播完毕后,将完整的直播视频,即直播文件及码率较大的直播视频文件进行存储,并将第一配置文件在数据库和缓存中进行存储。从而在直播结束后,向客户端提供完整的视频点播服务,同时,视频点播服务有和原始视频一样的视频清晰度,避免了直接从第三方获取完整直播视频文件,降低了流量资源消耗,并且从文件服务器中直接获取直播视频文件,也要比从第三方获取直播视频文件更快。

最后,在将第二视频文件或第一视频文件发送到客户端时,通过先将相应的直播视频文件发送到离获取视频直播服务较近的边缘服务器,再通过边缘服务器将直播视频文件分发给客户端,从而提高文件服务器向客户端发送直播视频文件的速度。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

a8、如a6或a7所述的系统,其中,所述网络服务器还适于:

判断所述直播获取请求是否符合预定获取频率;

若符合预定获取频率则继续判断所述直播获取请求是否包括预定标识;

若包括预定标识则判断所述直播获取请求合法,否则判断所述直播获取请求不合法。

a9、如a1所述的系统,其中,所述数据库和所述缓存模块还适于存储第一配置文件,所述网络服务器还适于:

将所述第一视频文件存储到所述文件服务器中,并将所述第一配置文件在所述数据库和所述缓存模块中进行存储;

接收来自所述客户端的点播获取请求从所述缓存模块将所述第一配置文件下发到所述客户端;

当所述缓存模块未存储所述第一配置文件时,从所述数据库中将所述第一配置文件发送到所述客户端,并将所述第一配置文件在所述缓存模块中进行存储;

所述文件服务器还适于存储第一视频文件,以便客户端根据所述第二配置文件获取所述第一视频文件。

a10、a1-a9中任一项所述的系统,还包括一个或若干个边缘服务器,与所述文件服务器通信连接;

所述文件服务器还适于将所述第一视频文件或所述第二视频文件发送到邻近所述客户端的边缘服务器;

所述边缘服务器适于将所述第一视频文件或所述第二视频文件发送到所述客户端。

a11、如a1-a10中任一项所述的系统,其中,所述代理服务器为分布式代理服务器。

a12、如a1-a11中任一项所述的系统,其中,所述代理服务器获取的第一视频文件为第三方提供的直播视频文件。

b14、如b13所述的方法,其中,所述网络服务器从所述代理服务器获取第一配置文件包括:

定时遍历预设直播列表,确定所述直播列表中处于直播状态的直播间;

判断所述直播间是否需要小窗播放,若判断需要小窗播放则从所述代理服务器中获取相应的第一配置文件,所述小窗播放是指在网页预定位置以小窗口形式播放直播。

b15、如b13或b14所述的方法,其中,所述将所述第一视频文件进行处理得到第二视频文件存储到文件服务器包括:

将高码率的所述第一视频文件转换为低码率的所述第二视频文件;

将所述第二视频文件存储于所述文件服务器;以及

若存储失败,则按照预定次数进行重新存储。

b16、如b13-b15中任一项所述的方法,还包括:

若按照预定次数进行重新获取所述第一视频文件仍获取失败,或按照预定次数进行重新存储所述第二视频文件仍存储失败,则将所述第一视频文件的地址存储到所述数据库和所述缓存模块中;

根据接收到所述客户端的直播获取请求,从所述缓存模块中将所述第一视频文件的地址发送到所述客户端;以及

当所述缓存模块中未存储所述地址时,从所述数据库中将所述第一视频文件的地址发送到所述客户端,并将所述地址在所述缓存模块中进行存储。

b17、如b13-b16中任一项所述的方法,还包括:将所述第二配置文件存储到所述数据库和所述缓存模块。

b18、如b13-b17中任一项所述的方法,其中,所述接收来自所述客户端的直播获取请求并将所述第二配置文件下发到所述客户端包括:

判断所述直播获取请求是否合法;

若所述直播获取请求合法,则判断所述直播获取请求对应的直播间是否处于正在直播状态;

若所述直播间正在直播,则判断是否根据所述第二视频文件生成所述第二配置文件;

若判断未生成所述第二配置文件则向所述客户端发送标识信息。

b19、如b18所述的方法,还包括步骤:

若判断生成所述第二配置文件,则从所述缓存模块中将所述第二配置文件发送到所述客户端;以及

当所述缓存模块中未存储所述第二配置文件时,从所述数据库中将所述第二配置文件发送到所述客户端,并将所述第二配置文件在所述缓存模块中进行存储。

b20、如权利要求b18或b19所述的方法,其中,所述判断所述直播获取请求是否合法包括:

判断所述直播获取请求是否符合预定获取频率;

若符合预定获取频率则继续判断所述直播获取请求是否包括预定标识;

若包括预定标识则判断所述直播获取请求合法,否则判断所述直播获取请求不合法。

b21、如b13所述的方法,还包括步骤:

所述网络服务器将所述第一视频文件存储到所述文件服务器中,并将所述第一配置文件在所述数据库和所述缓存模块中进行存储;

接收来自所述客户端的点播获取请求从所述缓存模块将所述第一配置文件下发到所述客户端;

当所述缓存模块未存储所述第一配置文件时,从所述数据库中将所述第一配置文件发送到所述客户端,并将所述第一配置文件在所述缓存模块中进行存储;以及

所述文件服务器将所述第一配置文件对应的所述第一视频文件发送到所述客户端。

b22、如b13-b21中任一项所述的方法,其中,所述文件服务器将所述第一视频文件或所述第二视频文件发送到所述客户端包括步骤:

将所述第一视频文件或所述第二视频文件发送到邻近所述客户端的边缘服务器;以及

所述边缘服务器将所述第一视频文件或所述第二视频文件发送到所述客户端。

b23、如b13-b22中任一项所述的方法,其中,所述代理服务器为分布式代理服务器。

b24、如b13-b23中任一项所述的方法,其中,所述代理服务器获取的第一视频文件为第三方提供的直播视频文件。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、cd-rom、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。

在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的设备停机状态的判断方法。

以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

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