一种视频数据传送方法及系统 【技术领域】
本发明涉及网络通信及多媒体技术领域,具体涉及一种视频数据传送方法及系统。
背景技术
近年来,宽带的普及和网络多媒体技术的发展,通过网络来传送视频数据成为互联网上广受欢迎的服务之一,视频用户数量庞大而且快速增长,网络视频的市场容量也在快速增长。目前,互联网视频、手机电视、网络电视(IPTV,Internet Protocol Television)等视频新媒体业务蓬勃发展,内容分发系统用于将视频数据从运营商传送至终端用户,是视频新媒体业务流程中最关键的环节之一。流媒体技术是当今业界最广泛采用的内容分发技术,它允许用户边下载边播放,无需等待视频全部下载完成。视频流媒体分发的效率和质量很大程度上决定了运营商的运营成本,并决定了终端用户的观赏体验。
采用流媒体的方式实现网络视频分发,客户端播放软件向流媒体服务器发送关于视频文件的请求报文,流媒体服务器则以特定的传输协议反馈发送视频文件的数据内容。流媒体传输协议目前较为广泛采用有HTTP超文件传输协议(HTTP,HyperText Transfer Protocol),实时流协议(RTSP,Real TimeStreaming Protocol)等标准协以及Adobe公司的私有协议实时消息传送协议(RTMP,Real-time Messaging Protocol)。各种流媒体协议因为其实现机制不同,所支持的功能也不相同。例如,Adobe公司的RTMP协议支持自适应带宽的视频分发功能,即能够根据网络的带宽环境,发送最适合数据量的视频数据。在内部实现中,Adobe公司的流媒体服务器Flash Media Server实际上需要预先存储不同码率的视频文件副本。比如,为了能够适应300Kbps,400Kbps和450Kbps的网络带宽条件,预先需将同一个视频文件转码为三份副本,即300Kbps、400Kbps和450Kbps码率的视频各一份。在分发过程中,检测带宽参数并选择对应码率的视频文件副本。
另外,一种业界常用的HTTP协议,由于其协议本身简单,支持的功能仅仅为简单的文件传送。在实际利用中,视频业务运营者往往将一个视频文件分割成多个视频片段文件,并且每个视频片段文件存储多个码率的副本,来达到减少流量和适应带宽的目的。
虽然上述的几种协议以及利用这些协议的具体做法在实际中解决了减少流量和自适应带宽的目的,但是同时也带来了一些弊端,如效率低下,需要准备多个视频片段文件和多份视频(片段)文件的副本;管理不便,需要对多个视频片段文件及其副本进行同步管理;不适应现在的内容分发网络(CDN,Content Delivery Network)架构。
【发明内容】
有鉴于此,本发明所要解决的技术问题是提供一种视频数据传送方法及系统,可自适应网络带宽进行视频数据发送,最大限度保证视频的流畅播放;而且在分发过程中,每次传送视频文件中的部分内容,避免了将一个视频文件分割成多个视频片断文件,简化了文件管理。
本发明实施例提供的一种视频数据传送方法,包括:
接收来自客户端的要求发送第一视频片段的请求,该请求携带有所述第一视频片段标识信息及当前可用网络带宽参数;
根据所述可用网络带宽调整所述第一视频片段的视频数据量,并将调整后的第一视频片段发送给所述客户端;
接收来自客户端的要求发送第二视频片段的请求,该请求携带有所述第二视频片段标识信息及检测到的网络带宽参数;
调整所述第二视频片段的视频数据内容,使其与所检测得到的网络带宽参数相匹配;
发送调整后的第二视频片段给所述客户端。
本发明实施例还提供一种视频数据传送系统,包括视频服务器和客户端;
所述客户端,用于发送请求分发视频片段的消息给所述视频服务器,并提供所请求的视频片段标识信息和网络带宽信息给视频服务器;
所述视频服务器,根据所述网络带宽信息调整所述视频片段的视频数据量,使其与所检测得到的网络带宽参数相匹配;并发送调整后的视频片段给所述客户端。
本发明实施例还提供一种视频服务器,包括:
接收单元,用于接收来自客户端的要求发送视频片段的请求,该请求携带有所述视频片段标识信息及当前可用网络带宽参数;
调整单元,根据所述可用网络带宽调整所述视频片段的视频数据量,使其与所述网络带宽相匹配;
发送单元,用于将调整后的视频片段发送给所述客户端。
更适宜地,该视频服务器还包括:
判断单元,用于判断所述视频片段的视频数据量是否大于所述网络带宽乘以所述视频片断正常播放所需的时间得到的数据量;
若所述判断单元判定所述视频片段的视频数据量大于所述网络带宽乘以所述视频片断正常播放所需地时间得到的数据量,则指示调整单元删减所述视频片段中的视频数据量,以适应网络带宽。
与现有技术中的视频数据分发技术方案相比,本发明提供的视频数据传送技术方案,在不同网络带宽条件下,能够根据用户的不同带宽自动选择传送最合适的数据量的内容,保证视频的流畅、高质量播放;传统的流媒体系统为了提供自适应码率分发功能,通过存储多份视频副本的来实现。应用本发明所公开的方法和系统,只需存储单份的视频文件,节省了存储空间和成本。本发明提供的视频数据分发方法和系统,在视频数据发送过程中,不是一次性传输整份视频内容,而是根据客户端请求每次传输视频内容的一个片断,并基于当前可用网络带宽进行传送,充分利用了网络带宽资源。现有技术的视频数据分发流程中,从流媒体服务器到终端用户客户端的各个中间环节中使用了很多缓存技术,例如CDN缓存,视频文件是数据密集型,而视频数据量大,不利于缓存系统处理。本发明提供的视频数据分发方法和系统,以视频片断为单位进行传送,视频片断的数据量比整个视频文件小很多,更有利于缓存系统处理,提高缓存效率。现有技术中的视频分发方法和系统采取了将单个视频文件显式地分割成多个视频片断文件的做法,每次分发单个视频片断文件,这给视频文件的管理增加了很大麻烦。根据本发明可最大限度保证视频的流畅播放;本发明提供的技术方案中存储和管理的对象仍然是完整的视频文件,而且在分发过程中,每次传送视频文件中的部分内容,避免了将一个视频文件分割成多个视频片断文件,因而简化了存储管理。
说明书附图
图1是本发明实施例提供的视频分发方法流程图;
图2a是本发明实施例提供的视频数据帧结构示意图;
图2b是本发明实施例提供的调整后的视频片段示意图;
图3是本发明实施例提供的视频分发系统架构示意图;
图4是本发明实施例提供的视频服务器构成示意图。
【具体实施方式】
为了解决如背景技术中所述的现有技术中存在的问题或弊端,本发明提供了一种能够自适应网络带宽的逐段发送视频文件内容的方法。通常所说的视频文件,实际上包括文件标志信息数据,音频编解码信息数据、视频编解码信息数据,音频内容数据和视频内容数据。本发明提供的视频文件发送方法,其基本原理是,在从服务器向客户端的发送过程中,每次只发送整个视频文件的一部分(称为视频片段),并且,根据网络带宽参数动态调整待发送的视频片段中的视频数据,比如在不影响视频信号正常播放的前提下,抛弃其中不重要的数据,使从服务器向客户端发送的整体数据量满足网络带宽条件。通常采用丢帧(Dropping Frame)这种简单、有效的码率适配方法,即通过丢弃视频序列中一定数量的编码帧来降低视频的数据量,自适应网络带宽的变化。可丢弃的帧为对用户的主观感知质量影响较小的编码帧,从而最大限度地保证视频重建质量。
参照图1,本发明提供的一种视频数据传送方法,包括如下步骤:
S101,客户端向服务器请求关于某待发送视频文件的元信息,该元信息包含所述待发送视频文件的视频片段数量及各视频片段标识信息;
S102,服务器将该视频文件的元信息反馈给客户端;
预先将待发送视频文件划分为若干视频片段,每个视频片段包含若干视频文件编码时设置的画面组(Group of Pictures)单元,并为每个视频片段设置标识,该标识可采用该视频片段序号或该视频片段在视频文件中的起始位置信息。根据具体情况,各视频片段包含的画面组单元数量可相同也可不同。
另外,客户端也可通过其他途径获得视频文件的元信息。因此S101及S102为可选步骤。
S103,客户端发送要求分发第一视频片段的请求,该请求携带有第一视频片段标识信息及当前可用网络带宽参数;
客户端根据视频文件的元信息和当前可用网络带宽参数构造对该视频中某一片段内容的请求报文,并发送给服务器。
S104,服务器根据接收到的请求报文中的网络带宽参数调整第一视频片段的视频数据量,并将调整后的第一视频片段发送给所述客户端;
在不影响视频信号正常播放的前提下,抛弃其中不重要的数据,使从服务器向客户端发送的整体数据量满足网络带宽条件。
通常,视频片段内容包括:
该视频文件的文件头标志数据;
该视频文件中视频部分解码时必需的解码参数数据;
该视频文件中音频部分解码时必需的解码参数数据;
该视频文件中从请求的视频片段的起始位置到终止位置之间的音频内容数据;
该视频文件中从请求的视频片段的起始位置到终止位置之间的视频数据,且数据量大小与客户端请求的带宽参数相匹配。
具体地,如图2a所示,一视频文件包含有三视频片段,每个片段有若干视频数据帧,如I帧、B帧和P帧以及相应的音频数据。
在视频编码中,I帧编码的基本流程为:进行帧内预测,决定所采用的帧内预测模式;像素值减去预测值,得到残差;对残差进行变换和量化;变长编码和算术编码;重构图像并滤波,得到的图像作为其它帧的参考帧。
P帧只参考前面的帧,B帧可参考前面或后面的帧,P帧和B帧编码的基本流程为:
首先,进行运动估计,计算采用帧间编码模式的率失真函数(节)值,进行帧内预测,选取率失真函数值最小的帧内模式与帧间模式比较,确定采用哪种编码模式,计算实际值和预测值的差值,对残差进行变换和量化,熵编码,如果是帧间编码模式,编码运动矢量。
由此可知,I帧是关键帧,属于帧内压缩,P帧是向前搜索,B帧是双向搜索,二者均基于I帧来压缩数据。I帧作为参考帧,采用帧内预测,P帧以前面的I帧或P帧作为参考帧,B帧以前面的I帧或P帧和后面的P帧作为参考帧。
若视频片段的视频数据量大于所述网络带宽乘以所述视频片断正常播放所需的时间得到的数据量,则服务器删减所述视频片段中的视频数据量,以适应网络带宽。因此,将视频数据B帧删除,得到新的第一视频片段并发送给客户端。
S105,客户端检测当前的视频传输网络带宽;
网络带宽的检测计算方法具体为:
客户端在接收第一视频片段期间的某个时间段单位时间内接收到的数据量。将已经接收到的当前视频片段的数据量除以接收这些数据所用时间,即得到当前的视频传输网络带宽。
S106,客户端发送要求分发第二视频片段的请求给服务器,该请求携带有所述第二视频片段标识信息及检测计算得到的网络带宽参数;
在下述情况下客户端发送要求分发第二视频片段的请求给服务器:
客户端接收完第一视频片段内容;或
客户端已接收完第一视频片段内容,并且离第一视频片段的播放完毕时间小于预定的阈值;或
客户端停止播放(比如,因意外或用户主动更换其他节目)第一视频片段,并请求另一视频片段。
S107,服务器根据所检测得到的网络带宽参数调整第二视频片段的视频数据内容,使其与所检测得到的网络带宽参数相匹配;
与步骤S104类似,基于所检测得到的网络带宽对第二视频片段的视频数据内容进行调整,使其与网络带宽参数匹配。
所述调整后的视频片段的视频数据量按照下述步骤确定:
根据所述网络带宽参数和视频片段的正常播放所需的时间长度计算相乘得到所述视频片段的数据量值;
若第二视频片段的视频数据量大于所述网络带宽乘以所述视频片断正常播放所需的时间得到的数据量,则服务器删减所述视频片段中的视频数据量,以适应网络带宽。因此,将视频数据B帧(即V5帧)删除,得到如图2b所示的视频片段作为新的第二视频片段。
S108,发送调整后的第二视频片段给所述客户端。
将删除视频数据帧V5后的第二视频片段给所述客户端。
如图3所示,本发明实施例提供的一种视频数据传送系统200,包括视频服务器210和至少一个客户端220。
客户端220,用于发送请求分发视频片段的消息给所述视频服务器,并提供所请求的视频片段标识信息和网络带宽信息给视频服务器;
视频服务器210,根据所述网络带宽信息调整视频片段的视频数据量,使其与所检测得到的网络带宽参数相匹配;并发送调整后的视频片段给客户端220。
其中,网络带宽信息为当前可用的网络带宽,或在所述视频片段传输期间检测得到的网络带宽参数。
当视频片段的视频数据量大于所述网络带宽乘以正常播放所需的时间得到的数据量,则视频服务器删减该视频片段中的视频数据量,以适应网络带宽。
在下述情况之一,客户端将要求发送另一视频片段的请求发送给视频服务器:
客户端接收完当前视频片段内容;或
客户端已接收完当前视频片段数据,并且离当前视频片段的播放完毕时间小于预定的阈值;或
客户端停止播放当前视频片段,并请求另一视频片段。
本发明实施例提供的视频数据传送系统中,服务器与客户端之间的交互过程如前述方法流程,在此不再赘述。
参照图4,本发明实施例还提供一种视频服务器300,包括:
接收单元310,用于接收来自客户端的要求发送视频片段的请求,该请求携带有所述视频片段标识信息及当前可用网络带宽参数;
调整单元320,根据所述可用网络带宽调整所述视频片段的视频数据量,使其与所述网络带宽相匹配;
发送单元330,用于将调整后的视频片段发送给所述客户端。
该视频服务器300,还包括:
判断单元340,用于判断待发送视频片段的视频数据量是否大于所述网络带宽乘以该视频片段正常播放所需的时间得到的数据量;
若判断单元340判定待发送视频片段的视频数据量大于所述网络带宽乘以该视频片段正常播放所需的时间得到的数据量,则指示调整单元320删减该待发送视频片段中的视频数据量,以适应网络带宽。
与现有技术中的视频数据分发技术方案相比,本发明提供的视频数据传送技术方案,在不同网络带宽条件下,能够根据用户的不同带宽自动选择传送最合适的数据量的内容,保证视频的流畅、高质量播放;传统的流媒体系统为了提供自适应码率分发功能,通过存储多份视频副本的来实现。应用本发明所公开的方法和系统,只需存储单份的视频内容,节省了存储空间和成本。本发明提供的视频数据分发方法和系统,在视频数据发送过程中,不是一次性传输整份视频内容,而是根据客户端请求每次传输视频内容的一个片断,并基于当前可用网络带宽进行传送,充分利用了网络带宽资源。现有技术的视频数据分发流程中,从流媒体服务器到终端用户客户端的各个中间环节中使用了很多缓存技术,例如内容分发网络CDN缓存,视频文件是数据密集型,而视频数据量大,不利于缓存系统处理。本发明提供的视频数据分发方法和系统,以视频片断为单位进行传送,视频片断的数据量比整个视频文件小很多,更有利于缓存系统处理,提高缓存效率。现有技术中的视频分发方法和系统采取了将单个视频文件显式地分割成多个视频片断文件的做法,每次分发单个视频片断文件,这给视频文件的管理增加了很大麻烦。根据本发明可最大限度保证视频的流畅播放;本发明提供的技术方案中存储和管理的对象仍然是完整的视频文件,而且在分发过程中,每次传送视频文件中的部分内容,避免了将一个视频文件分割成多个视频片断文件,因而简化了存储管理。
根据所述公开的实施例,可以使得本领域技术人员能够实现或者使用本发明。对于本领域技术人员来说,这些实施例的各种修改是显而易见的,并且这里定义的总体原理也可以在不脱离本发明的范围和主旨的基础上应用于其他实施例。以上所述的实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。