一种直播视频下发方法、装置、服务器及系统与流程

文档序号:14717776发布日期:2018-06-16 01:56阅读:277来源:国知局
一种直播视频下发方法、装置、服务器及系统与流程

本发明涉及数据处理技术领域,尤其是一种直播视频下发方法、装置、服务器及系统。



背景技术:

目前,随着在线视频业务的发展,用户对视频清晰度要求越来越高,而越清晰的视频对应的码率越高,因此,在互联网上进行大范围高码率视频数据的传输过程中,对网络带宽占用率过高,是急需解决的问题。

常用的流媒体协议包括HTTP渐进下载,其中,HLS(HTTP Live Streaming)协议是Apple公司的动态码率自适应技术,主要用于PC和Apple终端的音视频服务,包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。HLS协议支持现有的H.264和H.265编码格式。

但是,采用HLS协议进行直播视频下发不够平滑,瞬时下发速度较大,这对于大规格网络视频直播影响比较大。



技术实现要素:

本发明实施例所要解决的一个技术问题是:直播视频数据下发不够平滑,瞬时下发速度较大,对于大规格网络视频直播影响较大。

本发明实施例一种直播视频下发方法、装置、服务器及系统。所述技术方案如下:

根据本发明实施例的第一方面,提供一种直播视频下发方法,包括:

获取直播视频数据包;

判断所述直播视频数据包对应的第一直播时长是否大于预设时长;

当所述第一直播时长大于所述预设时长时,将所述直播视频数据包转换为至少两个子数据包,所述子数据包对应的第二直播时长小于或等于所述预设时长;

按照预设时间间隔,将所述子数据包下发到发送直播数据请求的终端。

可选的,所述方法还包括:

当所述第一直播时长小于或等于所述预设时长时,将所述直播视频数据包下发至所述终端;

和/或,

所述获取直播视频数据包,包括:

接收直播采集设备发送的传输流格式的直播视频文件;

将所述传输流格式的直播视频文件转换为预设视频流格式的直播视频数据包。

可选的,按照预设时间间隔,将所述子数据包下发到发送直播数据请求的终端,包括:

按照所述预设时间间隔,向所述终端发送数据获取通知,所述数据获取通知用于告知所述终端可以获取所述子数据包;

接收终端发送的直播数据请求;

根据所述直播数据请求,向所述终端下发所述子数据包。

可选的,第一直播时长为N秒,N为大于1的整数,所述预设时长为1秒,所述预设时间间隔为1秒;

所述根据所述预设时长将所述直播视频数据包转换为子数据包,包括:

每秒从所述直播视频数据包中转换出包括1秒直播视频数据的子数据包;

按照预设时间间隔,将所述子数据包下发到发送直播数据请求的终端,包括:

每秒将转换得到的子数据包下发到发送直播数据请求的终端。

根据本发明实施例的第二方面,提供一种直播视频下发装置,

包括:

获取模块,用于获取直播视频数据包;

判断模块,用于判断所述直播视频数据包对应的第一直播时长是否大于预设时长;

转换模块,用于当所述第一直播时长大于所述预设时长时,将所述直播视频数据包转换为至少两个子数据包,所述子数据包对应的第二直播时长小于或等于所述预设时长;

下发模块,用于按照预设时间间隔,将所述子数据包下发到发送直播数据请求的终端。

可选的,下发模块,用于当所述第一直播时长小于或等于所述预设时长时,将所述直播视频数据包下发至所述终端;

和/或,所述获取模块包括:

接收子模块,用于接收直播采集设备发送的传输流格式的直播视频文件;

转换子模块,用于将所述传输流格式的直播视频文件转换为预设视频流格式的直播视频数据包。

可选的,所述下发模块包括:

发送子模块,用于按照所述预设时间间隔,向所述终端发送数据获取通知,所述数据获取通知用于告知所述终端可以获取所述子数据包;

接收子模块,用于接收终端发送的直播数据请求;

下发子模块,用于根据所述直播数据请求,向所述终端下发所述子数据包。

可选的,第一直播时长为N秒,N为大于1的整数,所述预设时长为1秒,所述预设时间间隔为1秒;

所述转换模块,用于每秒从所述直播视频数据包中转换出包括1秒直播视频数据的子数据包;

所述下发模块,用于每秒将转换得到的子数据包下发到发送直播数据请求的终端。

根据本发明实施例的第三方面,提供一种直播视频下发服务器,包括:上述各实施例所述的直播视频下发装置。

根据本发明实施例的第四方面,提供一种直播视频下发系统,包括:上述实施例的直播视频下发服务器及终端,

所述终端,用于向所述直播视频下发服务器发送直播数据请求;

所述直播视频下发服务器,用于获取直播视频数据包;判断所述直播视频数据包对应的第一直播时长是否大于预设时长;当所述第一直播时长大于所述预设时长时,将所述直播视频数据包转换为至少两个子数据包,所述子数据包对应的第二直播时长小于或等于所述预设时长;按照预设时间间隔,将所述子数据包下发到所述终端。

本实施例中,对于从直播采集设备获取到直播视频数据包,首先判断其对应的直播时长是否大于预设时长,如果小于或等于,则可以直接下发,如果大于预设时长,则需要对该直播数据包进行分割,再按照预设时间间隔下发,以避免网络传输数据量的瞬时爆发,使得直播视频数据下发平滑,保证大规模网络视频直播的稳定性。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1是本发明实施例示出的直播视频下发方法的流程图;

图2是本发明另一实施例示出的直播视频下发方法的流程图;

图3是本发明另一实施例示出的直播视频下发方法的流程图;

图4是本发明实施例示出的直播视频下发装置的框图;

图5是本发明实施例示出的获取模块41的框图;

图6是本发明实施例示出的下发模块44的框图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

现有技术中,直播采集设备录制一段时间的直播视频后,如10秒,生成一个ts文件,也就是每10秒生成一个ts文件,然后发送给直播服务器。直播服务器采用HLS协议向终端发送ts文件。有可能1秒内便可将一个ts文件发送给终端,也就是1秒发了10秒的直播视频数据。因此,在这1秒内,网络传输的数据量会瞬时爆发,这对于大规格网络视频直播影响比较大。

采用HLS协议的直播服务器每隔一定的时间间隔(几秒或几十秒)传输一个直播视频段(segment),该视频段包含了几秒至几十秒的直播数据。直播服务器拿到该数据后,不应该马上向终端推送这些数据,而是先做个缓存,按数据时间长度,每隔一秒下发一秒的直播数据。

图1是本发明实施例示出的直播视频下发方法的流程图。如图1所示,该直播视频下发方法用于直播视频下发服务器,该方法包括以下步骤:

步骤S11,获取直播视频数据包。

步骤S12,判断直播视频数据包对应的第一直播时长是否大于预设时长。

步骤S13,当第一直播时长大于预设时长时,将直播视频数据包转换为至少两个子数据包。

步骤S14,按照预设时间间隔,将子数据包下发到发送直播数据请求的终端。

可选的,该方法还包括步骤S15,当第一直播时长小于或等于预设时长时,将直播视频数据包下发至终端。

本实施例中,对于从直播采集设备获取到直播视频数据包,首先判断其对应的直播时长是否大于预设时长,如果小于或等于,则可以直接下发,如果大于预设时长,则需要对该直播数据包进行分割,再按照预设时间间隔下发,以避免网络传输数据量的瞬时爆发,使得直播视频数据下发平滑,保证大规模网络视频直播的稳定性。

在另一实施例中,第一直播时长为N秒,N为大于1的整数,预设时长为1秒,预设时间间隔为1秒。

步骤S13中,根据预设时长将直播视频数据包转换为子数据包,包括:每秒从直播视频数据包中转换出包括1秒直播视频数据的子数据包。这样,该直播视频数据包经N秒转换完成为N个子数据包。步骤S14包括:每秒将转换得到的子数据包下发到发送直播数据请求的终端。

这样,每秒都下发直播时长为1秒的子数据包,整个直播视频数据包经过N秒后才完全下发到终端。使得直播视频数据下发平滑,有效地避免了网络传输数据量的瞬时爆发,不会影响大规模的网络视频直播的稳定性。

图2是本发明另一实施例示出的直播视频下发方法的流程图。如图2所示,步骤S11还包括:

步骤S21,接收直播采集设备发送的传输流格式的直播视频文件。

步骤S22,将传输流格式的直播视频文件转换为预设视频流格式的直播视频数据包。

其中,转换的过程可以包括:先解析出直播视频文件中每个媒体流的元信息、视频信息及音频信息。分别封装成预设视频流格式。传输下发前,在此基础上添加时间戳与校验信息切割成定长小包进行下发。

本实施例中,由于从直播视频采集设备获得的直播视频文件为传输流格式,可能不是直播视频下发服务器所支持的数据格式,因此,需要将直播视频文件进行格式转换后,再进行后续处理。

图3是本发明另一实施例示出的直播视频下发方法的流程图。如图3所示,步骤S14包括:

步骤S31,按照预设时间间隔,向终端发送数据获取通知,数据获取通知用于告知终端可以获取子数据包。

步骤S32,接收终端发送的直播数据请求。

步骤S33,根据直播数据请求,向终端下发子数据包。

例如,当每转换完一个子数据包后,通知终端可获取该子数据包,终端向直播视频下发服务器发送请求,请求获取该子数据包,该直播视频下发服务器将子数据包下发到终端。一个直播时长为10秒的直播视频数据包,如按照1秒进行分割为10个子数据包,每秒下发一个子数据包,则需要10秒发送给终端。实现了直播视频的平滑下发,网络传输数据量保持平稳。

下述为本发明装置实施例,可以用于执行本发明方法实施例。

图4是本发明实施例示出的直播视频下发装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图4所示,该直播视频下发装置,包括:

获取模块41,用于获取直播视频数据包。

判断模块42,用于判断直播视频数据包对应的第一直播时长是否大于预设时长。

转换模块43,用于当第一直播时长大于预设时长时,将直播视频数据包转换为至少两个子数据包,子数据包对应的第二直播时长小于或等于预设时长。

下发模块44,用于按照预设时间间隔,将子数据包下发到发送直播数据请求的终端。

该下发模块44,用于当第一直播时长小于或等于预设时长时,将直播视频数据包下发至终端。

图5是本发明实施例示出的获取模块41的框图,如图5所示,获取模块41包括:

接收子模块51,用于接收直播采集设备发送的传输流格式的直播视频文件。

转换子模块52,用于将传输流格式的直播视频文件转换为预设视频流格式的直播视频数据包。

图6是本发明实施例示出的下发模块44的框图,如图6所示,下发模块44包括:

发送子模块61,用于按照预设时间间隔,向终端发送数据获取通知,数据获取通知用于告知终端可以获取子数据包。

接收子模块62,用于接收终端发送的直播数据请求。

下发子模块63,用于根据直播数据请求,向终端下发子数据包。

在另一实施例中,第一直播时长为N秒,N为大于1的整数,预设时长为1秒,预设时间间隔为1秒。

转换模块43,用于每秒从直播视频数据包中转换出包括1秒直播视频数据的子数据包。

下发模块44,用于每秒将转换得到的子数据包下发到发送直播数据请求的终端。

本发明还提供一种直播视频下发服务器,包括:上述各实施例的直播视频下发装置。

本发明还提供一种直播视频下发系统,其特征在于,包括:上述实施例的直播视频下发服务器及终端。

终端,用于向直播视频下发服务器发送直播数据请求。

直播视频下发服务器,用于获取直播视频数据包;判断直播视频数据包对应的第一直播时长是否大于预设时长;当第一直播时长大于预设时长时,将直播视频数据包转换为至少两个子数据包,子数据包对应的第二直播时长小于或等于预设时长;按照预设时间间隔,将子数据包下发到终端。

本实施例中,对于从直播采集设备获取到直播视频数据包,首先判断其对应的直播时长是否大于预设时长,如果小于或等于,则可以直接下发,如果大于预设时长,则需要对该直播数据包进行分割,再按照预设时间间隔下发,以避免网络传输数据量的瞬时爆发,使得直播视频数据下发平滑,保证大规模网络视频直播的稳定性。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

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