背景技术
近年来,伴随着网络的普及、带宽的提升、服务模式的成熟,视频逐渐成为互联网的主流应用,通过网络来分发视频数据成为互联网上广受欢迎的服务之一,视频用户数量庞大而且快速增长,网络视频的市场容量也在快速增长。但是互联网毕竟不是专为视频应用而生的专用网,而是承载众多业务的综合网络。在这个综合网络架构上,各种业务竞争使用基础资源,例如网络带宽等。视频作为一种特殊的应用,对网络带宽有着特殊的要求:如果网络带宽不足以在规定的时间内传输规定的视频文件数据量,那么终端的网络用户就会感觉到视频播放经常停顿、音视频不同步等问题,损害用户的观赏体验。
在不同的地区由于网络基础设施的优劣,或者相同区域的不同时段由于在线用户数的多寡,都导致每个具体的终端用户所能享受到的带宽资源不同。在这种情况下,为了仍然保持终端用户能够流畅播放视频,就需要视频文件的数据分发具备自适应码率功能,即根据不同的网络带宽环境,在规定的时间内传送不同大小的视频文件数据量。
现有技术中,为了提供自适应带宽(码率)功能,通常有两种实现方案:
第一种方案是对每份视频文件存储多份不同码率的副本,在传输时根据带宽参数选择对应码率的视频版本。例如,为了适应800Kbps,700Kbps,600Kbs,500Kbps,400Kbps,300Kbps,200Kbps和100Kbps的带宽环境,必须对每份视频文件都准备相应的8种码率的副本,显然,这种做法大大增加了存储成本。
第二种方案是存储单份视频文件,而在视频传输过程中根据带宽参数丢弃视频中的某些数据,例如丢帧。但是如果丢弃过多的数据帧,会造成视频播放时画面跳跃、模糊的不良体验。因此这种做法能适应的码率(带宽)浮动范围有限。
发明内容
有鉴于此,本发明提供一种视频数据分发方法及系统,可自适应网络带宽或用户码率要求进行视频数据发送,保证视频的流畅播放。
本发明实施例提供的一种视频数据分发方法,预先存储有至少两个不同码率的视频文件副本,包括:
接收客户端的视频访问请求,该请求携带视频文件名及网络带宽参数或指定的视频码率;
选择与所述网络带宽参数或指定的视频码率最接近的视频文件副本;
当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差小于预定值,将所选择的视频文件副本的数据发送给所述客户端。
当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差大于预定值,调整所选择的视频文件副本的数据量,以使所述视频文件副本得数据量与所述网络带宽或指定的视频码率匹配,并将调整后的视频文件数据发送给所述客户端。
本发明实施例提供的一种视频数据分发系统,包括:
客户端,用于视频访问请求消息给所述视频服务器,并提供所请求的视频文件标识信息和网络带宽信息或指定的视频码率给视频服务器;
视频服务器,用于选择与所述网络带宽参数或指定的视频码率最接近的视频文件副本;当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差小于预定值,将所选择的视频文件副本的数据发送给所述客户端。
当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差大于预定值,所述视频服务器调整所选择的视频文件副本的数据量,以使所述视频文件副本得数据量与所述网络带宽或指定的视频码率匹配,并将调整后的视频文件数据发送给所述客户端。
本发明实施例还提供一种视频服务器,包括:
接收单元,用于接收来自客户端的视频访问请求,该请求携带视频文件名及网络带宽参数或指定的视频码率;
选择单元,选择与所述网络带宽参数或指定的视频码率最接近的视频文件副本;
判断单元,用于判断所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差是否小于预定值;
发送单元,用于发送视频文件副本的数据给所述客户端;
当所述判断单元判定所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差小于预定值,所述发送单元将所选择的视频文件副本的数据发送给所述客户端。
该视频服务器,还包括:
调整单元,当所述判断单元判定所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差大于预定值,用于调整所选择的视频文件副本的数据量,以使所述视频文件副本得数据量与所述网络带宽或指定的视频码率匹配,并将调整后的视频文件数据提供给所述发送单元。
与现有技术中的视频数据分发技术方案相比,本发明提供的视频数据分发技术方案,基于网络可能的带宽,预先生成几种对应于不同带宽(码率)的视频文件并保存,通过改变视频的清晰度或者分辨率,得到相应的视频文件副本,以自适应网络带宽的变化,这样对用户的主观感知质量影响较小,而最大限度地保证视频重建质量。根据分发时的网络带宽情况或用户的码率要求选择与当前网络带宽或用户的码率要求选择相适应的视频文件进行传输,这样可很大程度上实现自适应码率(带宽)发送视频文件数据。根据本发明,在不同网络带宽条件下,能够根据用户的不同带宽自动选择分发最合适的数据量的内容,保证视频的流畅、高质量播放;应用本发明所公开的方法和系统,只需存储有限的几份的视频文件副本,节省了存储空间和成本。而且在满足用户要求的前提下,可实现自适应码率分发功能。
具体实施方式
为了解决如背景技术中所述的现有技术中存在的问题或弊端,本发明提供了一种能够自适应网络带宽的视频数据发送方法,具有自适应码率(带宽)功能,相对第一种方案减少了存储成本,而相对于第二种做法又扩大了码率(带宽)的浮动范围。通常所说的视频文件,实际上包括文件标志信息数据,音频编解码信息数据、视频编解码信息数据,音频内容数据和视频文件数据。本发明提供的视频文件发送方法,其基本原理是,基于网络可能的带宽,预先生成几种对应于不同带宽(码率)的视频文件并保存,即通过适度改变视频的清晰度或者分辨率,来降低视频的数据量,自适应网络带宽的变化,这样对用户的主观感知质量影响较小的编码帧,而最大限度地保证视频重建质量。根据分发时的网络带宽情况或用户的码率要求选择与当前网络带宽或用户的码率要求选择相适应的视频文件进行传输,从而实现自适应码率(带宽)分发视频文件数据。
为使本发明的原理、特性和优点更加清楚,下面结合具体实施例进行描述。
参照图1,本发明实施例提供的一种视频数据分发方法,包括如下步骤:
S100,首先,在网络侧(服务器端),基于网络可能的带宽,按照预定的码率间隔预先生成至少两个不同码率的视频文件并保存。
例如,对于某一视频文件,分别存储800Kbps,500Kbps,300Kbps,100Kbps的四个不同码率的副本。
S101,客户端向服务器发送视频访问请求,该请求携带视频文件名及网络带宽参数或指定的视频码率;
网络带宽参数,如2Mb/s,或者指定的视频码率512kb/s。
S102,服务器选择与所得到的网络带宽参数或指定的视频码率最接近的视频文件副本;
例如,当客户端请求1Mbps视频时,在保存的视频文件副本中最接近的码率为800Kbps,因此,选择800Kbps码率的视频副本,并由后续流程将该副本的内容数据传输给客户端;
S103,判断所选择的视频文件副本的码率与网络带宽或指定的视频码率之差是否小于预定值;若是,则转到步骤S104;否则执行步骤S105;
S104;当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差小于预定值,将所选择的视频文件副本的数据发送给客户端。
其中预定值通常为不超过50Kbps,在此假定预定值为20Kbps即视频文件副本的码率与所述网络带宽或指定的视频码率差值允许在0~20Kbps。当客户端请求495Kbps码率的视频时,选择500Kbps码率的视频副本,码率差值为5Kbps,小于20Kbps,则服务器直接将该视频文件副本的内容数据发送给客户端;
S105;当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差大于预定值,调整所选择的视频文件副本的数据量,以使所述视频文件副本得数据量与所述网络带宽或指定的视频码率匹配,并将调整后的视频文件数据发送给所述客户端。
调整所选择的视频文件副本的数据量,具体包括:
所述视频文件副本的数据量大于所述网络带宽或指定的视频码率乘以所述视频文件正常播放所需的时间得到的数据量,则删减视频文件副本的数据量。
具体地,例如客户端请求450Kbps码率的视频时,而预设的码率差别允许在0~20Kbps范围,选择500Kbps码率的视频副本,调整该视频副本的数据量,可以丢弃该视频中某些重要性不大的帧,或重复帧中之一帧或多帧,使调整后的该视频副本的数据量达到450Kbps,并将调整的数据发送给客户端。视频文件,实际上包括文件标志信息数据,音频编解码信息数据、视频编解码信息数据,音频内容数据和视频文件数据。如图2a和2b所示分别为本发明实施例中提供的调整前、后的视频数据帧结构示意图。
如图3所示,本发明实施例提供的一种视频数据分发系统200,包括视频服务器210和至少一个客户端220。
客户端220,用于视频访问请求消息给所述视频服务器,并提供所请求的视频文件标识信息和网络带宽信息或指定的视频码率给视频服务器;
视频服务器210,用于选择与所述网络带宽参数或指定的视频码率最接近的视频文件副本;当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差小于预定值,将所选择的视频文件副本的数据发送给客户端220。
当所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差大于预定值,视频服务器210调整所选择的视频文件副本的数据量,以使所述视频文件副本得数据量与所述网络带宽或指定的视频码率匹配,并将调整后的视频文件数据发送给客户端220。
参照图4,本发明实施例还提供一种视频服务器300,包括:
接收单元310,用于接收来自客户端的视频访问请求,该请求携带视频文件名及网络带宽参数或指定的视频码率;
选择单元320,选择与所述网络带宽参数或指定的视频码率最接近的视频文件副本;
判断单元330,用于判断所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差是否小于预定值;
发送单元340,用于发送视频文件副本的数据给所述客户端;
当判断单元330判定所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差小于预定值,发送单元340将所选择的视频文件副本的数据发送给客户端。
视频服务器,还包括:
调整单元350,当判断单元330判定所选择的视频文件副本的码率与所述网络带宽或指定的视频码率之差大于预定值,用于调整所选择的视频文件副本的数据量,以使所述视频文件副本得数据量与所述网络带宽或指定的视频码率匹配,并将调整后的视频文件数据提供给发送单元340。
本发明提供的视频数据分发技术方案,基于网络可能的带宽,预先生成几种对应于不同带宽(码率)的视频文件并保存,即通过丢弃视频序列中一定数量的编码帧来降低视频的数据量,得到相应的视频文件副本,以自适应网络带宽的变化,其中丢弃的帧为对用户的主观感知质量影响较小的编码帧,从而最大限度地保证视频重建质量。根据分发时的网络带宽情况或用户的码率要求选择与当前网络带宽或用户的码率要求选择相适应的视频文件进行传输,这样可很大程度上实现自适应码率(带宽)发送视频文件数据。根据本发明,在不同网络带宽条件下,能够根据用户的不同带宽自动选择分发最合适的数据量的内容,保证视频的流畅、高质量播放;应用本发明所公开的方法和系统,只需存储有限的几份的视频文件副本,节省了存储空间和成本。而且在满足用户要求的前提下,可实现自适应码率分发功能。
根据所述公开的实施例,可以使得本领域技术人员能够实现或者使用本发明。对于本领域技术人员来说,这些实施例的各种修改是显而易见的,并且这里定义的总体原理也可以在不脱离本发明的范围和主旨的基础上应用于其他实施例。以上所述的实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。