本发明涉及互联网技术领域,特别涉及一种视频传输方法及系统。
背景技术:
经过近几年的互联网技术的飞速发展,互联网的业务不断增加,人们基于互联网可以接触到各种各样的信息,网络也成为人们日常工作和生活中不可或缺的一部分。比如,用户可以利用互联网收发工作邮件、进行视频会议等;或者,利用互联网浏览新闻、听音乐、购物、订餐、观看视频等。且随着互联网的不断发展进步,用户通过实时传输视频进行播放视频的情况也越来越多,但目前视频传输通常采用TCP协议(Transmission Control Protocol:传输控制协议),但TCP协议传输的数据包比较大,且其有严格的传输检测,也即,如果在传输过程中丢失数据包则必须重传;因此如果在网络带宽不好,或者终端的分辨率不高的情况下,并不能支持大数据包。
技术实现要素:
本发明实施例提供一种视频传输方法及系统,将视频的各个视频帧拆分为多个小数据包进行传输,且在视频的传输过程中允许丢失部分数据包而不要求重新传输,进而保证了视频传输的稳定和流畅,提升了用户体验。
本发明实施例提供一种视频传输方法,包括:
获取视频文件的视频帧,并将各所述视频帧拆分为多个数据包;
通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位置;
在所述视频帧的所有所述数据包传输完毕之后,检测未传输成功的所述数据包数量是否超过预设阈值;
在未传输成功的所述数据包数量并未超过预设阈值时,将所有传输成功的所述数据包合并为视频帧。
在一个实施例中,所述传输协议为HTTP传输协议。
在一个实施例中,所述方法还包括:
在未传输成功的所述数据包数量超过预设阈值时,重新传输所述视频帧中未传输成功的所述数据包或所述视频帧的所有所述数据包。
在一个实施例中,所述通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位之前,包括:
根据当前的网络带宽手动调整每次传输数据包的数量和/或数据包的大小。
在一个实施例中,所述通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位之前,还包括:
根据当前网络带宽以及预设的数据传输表自动配置每次传输数据包的数量和/或数据包的大小。
对应于以上实施例所提供的一种视频传输方法,本发明实施例还提供了一种视频传输系统,包括:
拆分模块,用于获取视频文件的视频帧,并将各所述视频帧拆分为多个数据包;
传输模块,用于通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位置;
检测模块,用于在所述视频帧的所有所述数据包传输完毕之后,检测未传输成功的所述数据包数量是否超过预设阈值;
合并模块,用于在未传输成功的所述数据包数量并未超过预设阈值时,将所有传输成功的所述数据包合并为视频帧。
在一个实施例中,所述传输协议为HTTP传输协议。
在一个实施例中,所述系统还包括:
重传模块,用于在未传输成功的所述数据包数量超过预设阈值时,重新传输所述视频帧中未传输成功的所述数据包或所述视频帧的所有所述数据包。
在一个实施例中,所述系统还包括:
手动调整模块,用于根据当前的网络带宽手动调整每次传输数据包的数量和/或数据包的大小。
在一个实施例中,所述系统还包括:
自动配置模块,用于根据当前网络带宽以及预设的数据传输表自动配置每次传输数据包的数量和/或数据包的大小。
以上实施例所描述的一种视频传输方法及系统,可以达到如下有益效果:获取视频文件的视频帧,并将各所述视频帧拆分为多个数据包;通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位置;在所述视频帧的所有所述数据包传输完毕之后,检测未传输成功的所述数据包数量是否超过预设阈值;在未传输成功的所述数据包数量并未超过预设阈值时,将所有传输成功的所述数据包合并为视频帧。该方案将视频的各个视频帧拆分为多个小数据包进行传输,且在视频的传输过程中允许丢失部分数据包而不要求重新传输,进而保证了视频传输的稳定和流畅,提升了用户体验。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明根据一示例性实施例示出的一种视频传输方法的一种实施例的流程图;
图2为本发明根据一示例性实施例示出的一种视频传输方法的另一种实施例的流程图;
图3为本发明根据一示例性实施例示出的一种视频传输方法的又一种实施例的流程图;
图4为本发明根据一示例性实施例示出的一种视频传输方法的再一种实施例的流程图;
图5为本发明根据一示例性实施例示出的一种视频传输系统的一种实施例的框图;
图6为本发明根据一示例性实施例示出的一种视频传输系统的另一种实施例的框图;
图7为本发明根据一示例性实施例示出的一种视频传输系统的又一种实施例的框图;
图8为本发明根据一示例性实施例示出的一种视频传输系统的再一种实施例的框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明公开的一实施例中提供了一种视频传输方法,用以将视频的各个视频帧拆分为多个小数据包进行传输,且在视频的传输过程中允许丢失部分数据包而不要求重新传输,进而保证了视频传输的稳定和流畅,提升了用户体验。如图1所示,图1为本发明根据一示例性实施例示出的一种视频传输方法的一种实施例的流程图;本发明实施例中一种视频传输方法包括步骤S10-S40:
在步骤S10中,获取视频文件的视频帧,并将各所述视频帧拆分为多个数据包;也即,在该实施例中,首先需要将将要进行视频传输的视频文件获取到并将该视频的每一帧视频均分解为多个小数据包,该数据包的大小和每次传输的所述数据包的数量可以根据预先设定的条件进行调整,比如,在网络带宽允许时,可以调大所述数据包的大小,而在网络带宽不允许时,可以调小所述数据包的大小,从而令所述数据包在各种情况下均被允许进行传输,且可以保证其传输速度可以流畅,从而在视频播放时令观众观看到的实时传输的视频是稳定的。可理解的,在该视频帧全部传输完成后,传输成功的所述数据包中,所有数据包可以合成一个高清视频帧,而丢失了部分数据包(在预设阈值内)之后的数据包可以合成一个标清视频帧。
在步骤S20中,通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位置;也即,在该实施例中,所述传输协议可以根据需要进行设定,比如,在通常情况下,观众需要看到的是稳定流畅的视频播放,因此,在一个实施例中,所述传输协议为HTTP传输协议(Hyper Text Transfer Protocol:超文本传输协议);可理解的,HTTP传输协议更通用,其适合于更多的播放器和浏览器,且在本实施例中,HTTP传输协议当发生数据包丢失的情况时,可以允许不再重传而直接在该状态下默认该帧视频已经完成传输,由于丢失的部分数据包只是一帧视频中数据的一部分,因此丢失的数据包的数量在预设阈值之内时,只是会使得视频播放的清晰度下降,而不影响观看,也即,优先保证实时流畅,画质可以其次保证。可理解的,在一些实施例中,在网络带宽允许且观众要求播放高清视频时,此时可以切换为采用TCP传输协议亦可。
在步骤S30中,在所述视频帧的所有所述数据包传输完毕之后,检测未传输成功的所述数据包数量是否超过预设阈值;也即,在数据包丢失超过预设阈值,比如全部丢失的情况下,此时肯定需要进行重传,因此首先需要检测丢失的数据包数量有多少,是否超过预设阈值,可理解的,所述预设阈值可以根据观看视频的对象进行设置;如果丢失的数据包数量并未超过预设阈值,则可以将传输成功的多个数据包合并为视频帧进行播放;而如果丢失的数据包数量超过预设阈值,则说明丢失的数据包过多,此时依旧需要进行重传以保证视频播放。
在步骤S40中,在未传输成功的所述数据包数量并未超过预设阈值时,将所有传输成功的所述数据包合并为视频帧。也即,当丢失的数据包并未影响到视频播放时,可以直接在该情况下直接将数据包合成视频帧进行播放,以优先保证视频的播放流畅。
在一个实施例中,如图2所示,图2为本发明根据一示例性实施例示出的一种视频传输方法的另一种实施例的流程图;所述方法的步骤S30之后还包括步骤S50:
在步骤S50中,在未传输成功的所述数据包数量超过预设阈值时,重新传输所述视频帧中未传输成功的所述数据包或所述视频帧的所有所述数据包。也即,当丢失的数据包以及超出预设阈值影响到视频播放时,在该情况下,需要进行重传以保证视频播放,而重传的方式可以有两种,一种是只重传丢失的那部分数据包,另一种方式是将该视频帧的所有拆分的数据包全部重传。
在一个实施例中,如图3所示,图3为本发明根据一示例性实施例示出的一种视频传输方法的又一种实施例的流程图;所述方法的步骤S20之前还包括步骤S60:
在步骤S60中,根据当前的网络带宽手动调整每次传输数据包的数量和/或数据包的大小。也即,本实施例中,手动调节的过程是采用了node(node.js)技术来进行的,可以利用node技术来根据网络带宽情况来调整每次传输的数据包的数量和/或每个所述数据包的大小,node在本实施例中作为一个微型服务器,且其更新时不用安装,可以运用node实现p2p传输和绕开防火墙,运用它来进行调整每次传输数据包的数量和/或数据包的大小,高效稳定,简单快捷。
在一个实施例中,如图4所示,图4为本发明根据一示例性实施例示出的一种视频传输方法的再一种实施例的流程图;所述方法的步骤S20之前还包括步骤S70:
在步骤S70中,根据当前网络带宽以及预设的数据传输表自动配置每次传输数据包的数量和/或数据包的大小。也即,本实施例中,自动配置的过程是采用了node(node.js)技术来进行的,可以利用node技术来根据网络带宽情况来调整每次传输的数据包的数量和/或每个所述数据包的大小,node在本实施例中作为一个微型服务器,且其更新时不用安装,可以运用node实现p2p传输和绕开防火墙,运用它来进行调整每次传输数据包的数量和/或数据包的大小,高效稳定,简单快捷。
以上实施例所描述的一种视频传输方法及系统,可以达到如下有益效果:获取视频文件的视频帧,并将各所述视频帧拆分为多个数据包;通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位置;在所述视频帧的所有所述数据包传输完毕之后,检测未传输成功的所述数据包数量是否超过预设阈值;在未传输成功的所述数据包数量并未超过预设阈值时,将所有传输成功的所述数据包合并为视频帧。该方案将视频的各个视频帧拆分为多个小数据包进行传输,且在视频的传输过程中允许丢失部分数据包而不要求重新传输,进而保证了视频传输的稳定和流畅,提升了用户体验。
对应本发明实施例提供的一种视频传输方法,本发明还提供了一种视频传输系统;如图5所示,图5为本发明根据一示例性实施例示出的一种视频传输系统的一种实施例的框图;所述一种视频传输系统,包括:
拆分模块61,用于获取视频文件的视频帧,并将各所述视频帧拆分为多个数据包;也即,在该实施例中,首先需要将将要进行视频传输的视频文件获取到并将该视频的每一帧视频均分解为多个小数据包,该数据包的大小和每次传输的所述数据包的数量可以根据预先设定的条件进行调整,比如,在网络带宽允许时,可以调大所述数据包的大小,而在网络带宽不允许时,可以调小所述数据包的大小,从而令所述数据包在各种情况下均被允许进行传输,且可以保证其传输速度可以流畅,从而在视频播放时令观众观看到的实时传输的视频是稳定的。可理解的,在该视频帧全部传输完成后,传输成功的所述数据包中,所有数据包可以合成一个高清视频帧,而丢失了部分数据包(在预设阈值内)之后的数据包可以合成一个标清视频帧。
传输模块62,用于通过预设的传输协议将所述视频帧的所有所述数据包传输至预设位置;也即,在该实施例中,所述传输协议可以根据需要进行设定,比如,在通常情况下,观众需要看到的是稳定流畅的视频播放,因此,在一个实施例中,所述传输协议为HTTP传输协议(Hyper Text Transfer Protocol:超文本传输协议);可理解的,HTTP传输协议更通用,其适合于更多的播放器和浏览器,且在本实施例中,HTTP传输协议当发生数据包丢失的情况时,可以允许不再重传而直接在该状态下默认该帧视频已经完成传输,由于丢失的部分数据包只是一帧视频中数据的一部分,因此丢失的数据包的数量在预设阈值之内时,只是会使得视频播放的清晰度下降,而不影响观看,也即,优先保证实时流畅,画质可以其次保证。可理解的,在一些实施例中,在网络带宽允许且观众要求播放高清视频时,此时可以切换为采用TCP传输协议亦可。
检测模块63,用于在所述视频帧的所有所述数据包传输完毕之后,检测未传输成功的所述数据包数量是否超过预设阈值;也即,在数据包丢失超过预设阈值,比如全部丢失的情况下,此时肯定需要进行重传,因此首先需要检测丢失的数据包数量有多少,是否超过预设阈值,可理解的,所述预设阈值可以根据观看视频的对象进行设置;如果丢失的数据包数量并未超过预设阈值,则可以将传输成功的多个数据包合并为视频帧进行播放;而如果丢失的数据包数量超过预设阈值,则说明丢失的数据包过多,此时依旧需要进行重传以保证视频播放。
合并模块64,用于在未传输成功的所述数据包数量并未超过预设阈值时,将所有传输成功的所述数据包合并为视频帧。也即,当丢失的数据包并未影响到视频播放时,可以直接在该情况下直接将数据包合成视频帧进行播放,以优先保证视频的播放流畅。
在一个实施例中,如图6所示,图6为本发明根据一示例性实施例示出的一种视频传输系统的另一种实施例的框图;所述系统还包括:
重传模块65,用于在未传输成功的所述数据包数量超过预设阈值时,重新传输所述视频帧中未传输成功的所述数据包或所述视频帧的所有所述数据包。也即,当丢失的数据包以及超出预设阈值影响到视频播放时,在该情况下,需要进行重传以保证视频播放,而重传的方式可以有两种,一种是只重传丢失的那部分数据包,另一种方式是将该视频帧的所有拆分的数据包全部重传。
在一个实施例中,如图7所示,图7为本发明根据一示例性实施例示出的一种视频传输系统的又一种实施例的框图;所述系统还包括:
手动调整模块66,用于根据当前的网络带宽手动调整每次传输数据包的数量和/或数据包的大小。也即,本实施例中,手动调节的过程是采用了node(node.js)技术来进行的,可以利用node技术来根据网络带宽情况来调整每次传输的数据包的数量和/或每个所述数据包的大小,node在本实施例中作为一个微型服务器,且其更新时不用安装,可以运用node实现p2p传输和绕开防火墙,运用它来进行调整每次传输数据包的数量和/或数据包的大小,高效稳定,简单快捷。
在一个实施例中,如图8所示,图8为本发明根据一示例性实施例示出的一种视频传输系统的再一种实施例的框图;所述系统还包括:
自动配置模块67,用于根据当前网络带宽以及预设的数据传输表自动配置每次传输数据包的数量和/或数据包的大小。也即,本实施例中,自动配置的过程是采用了node(node.js)技术来进行的,可以利用node技术来根据网络带宽情况来调整每次传输的数据包的数量和/或每个所述数据包的大小,node在本实施例中作为一个微型服务器,且其更新时不用安装,可以运用node实现p2p传输和绕开防火墙,运用它来进行调整每次传输数据包的数量和/或数据包的大小,高效稳定,简单快捷。
以上实施例所描述的一种视频传输系统,可以达到如下有益效果:将视频的各个视频帧拆分为多个小数据包进行传输,且在视频的传输过程中允许丢失部分数据包而不要求重新传输,进而保证了视频传输的稳定和流畅,提升了用户体验。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。