自适应网络带宽的多协议多播放器视频播放方法和系统
技术领域
本发明涉及视频播放技术领域,尤其涉及一种自适应网络带宽的多协议多播放器视频播放方法和系统。
背景技术
现有技术移动互联网领域,在网络带宽良好,使用wifi或4G等网络的情况下播放视频,已实现根据网络带宽状况自适应选择不同码率的视频源进行播放,但若播放过程中出现网络状况变得非常差或网络类型改变时,则容易出现播放器绿屏、缓冲时间太长及无法获取视频资源等问题;同样,在网络带宽不好,使用2G或3G等网络播放码率较低的视频,但若播放过程中出现网络状况变好,无法自适应改变网络类型,未享受到高清晰度视频播放的服务,也造成不必要的2G、3G网络流量浪费。
发明内容
本发明实施例的目的在于提出一种自适应网络带宽的多协议多播放器视频播放方法,旨在解决现有技术移动互联网在良好宽带网络视频播放过程中,当网络状况变得非常差或网络类型改变时,则容易出现播放器绿屏、缓冲时间太长及无法获取视频资源的问题,和在网络带宽不好,使用2G或3G等网络播放码率较低的视频的过程中出现网络状况变好,无法自适应改变网络类型,未享受到高清晰度视频播放的服务,也造成不必要的2G、3G网络流量浪费的问题。
本发明实施例是这样实现的,一种自适应网络带宽的多协议多播放器视频播放方法,所述方法包括以下步骤:
服务器预先存储至少两种类型协议封装的视频数据、及不同码率视频数据对应的播放地址信息;
接收用户的点播请求;
检测当前网络是否连通,若连通则,
判断当前网络类型,
若当前网络类型为2G或3G网络,则采用第二播放器播放相应的第二协议封装的视频数据;
若当前网络类型为非2G、3G网络,则采用第一播放器播放相应的第一协议封装的视频数据。
在采用第一或第二播放器播放相应协议封装的视频数据的过程中,实时监测网络状况:
当监测到网络出现缓冲并持续一段时间,判断当前播放的视频是否是所属协议封装的视频数据中的最低码率等级,若是,则不处理,若否,则记录当前播放时间,选择低一等级码率的播放地址,切换视频数据,通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
当监测到网络带宽提高并超过当前网络带宽阈值时,判断当前播放的视频是否是所属协议封装的视频数据中的最高码率等级,若是,则不处理,若否,则记录当前播放时间,选择高一等级码率的播放地址,切换视频数据,通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
当监测到网络类型发生改变时,则返回步骤“判断当前网络类型”。
本发明实施例的另一目的在于提出一种自适应网络带宽的多协议多播放器视频播放系统,所述系统包括:
视频数据存储模块,用于存储至少两种类型协议封装的视频数据、及不同码率视频数据对应的播放地址信息;
接收模块,用于接收用户的点播请求;
网络连通检测模块,用于检测当前网络是否连通,若连通则进入网络类型判断模块,若未连通则提示用户连接失败;
网络类型判断模块,用于判断当前网络类型,若为2G或3G网络,则进入第二播放装置;否则进入第一播放装置;
第一播放装置,采用第一播放器播放相应的第一协议封装的视频数据;
第二播放装置,采用第二播放器播放相应的第二协议封装的视频数据。
进一步地,所述系统还包括码率自适应播放装置,
自适应播放装置,用于根据网络状况的不同,自适应选择不同码率的视频数据进行播放。
进一步地,所述码率自适应播放装置包括以下模块:
网络状况监测模块,用于检测网络状况,当网络出现缓冲并持续一段时间,进入最低码率等级判断模块,当监测到网络带宽提高并超过当前网络带宽阈值时时,进入最高码率等级判断模块,个网络类型发生改变时,进入网络类型判断模块;
最低码率等级判断模块,判断当前播放的视频是否是所属协议封装的视频数据中的最低码率等级,若是,则不处理,若否,则进入第一播放时间记录模块;
第一播放时间记录模块,用于记录当前播放时间;
第一视频切换模块,用于选择低一等级码率的播放地址,切换视频数据;
第一关键帧查找及播放模块,用于通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
最高码率等级判断模块,用于判断当前播放的视频是否是所属协议封装的视频数据中的最高码率等级,若是,则不处理,若否,则进入第二播放时间记录模块;
第二播放时间记录模块,用于记录当前播放时间;
第二视频切换模块,用于选择高一等级码率的播放地址,切换视频数据;
第二视频切换模块,用于通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放。
本发明的有益效果
本发明实施例服务器预先存储至少两种类型协议封装的视频数据、及不同码率视频数据对应的播放地址信息;所述第一协议封装的视频数据,按照码率的高低分为至少两种等级码率;所述第二协议封装的视频数据,按照码率的高低分为至少一种等级码率;判断当前网络类型,若为2G或3G网络,则采用第二播放器播放相应的第二协议封装的视频数据;否则(非2G、3G网络),采用第一播放器播放相应的第一协议封装的视频数据。本发明可解决在使用wifi、4G或蓝牙等宽带网络的情况下播放视频的过程中出现网络状况变得非常差或网络类型改变时,容易出现播放器绿屏、缓冲时间太长及无法获取视频资源等问题;和在网络带宽不好,使用2G或3G等网络播放码率较低的视频的过程中出现网络状况变好,无法自适应改变网络类型,未享受到高清晰度视频播放的服务,也造成不必要的2G、3G网络流量浪费的问题。
附图说明
图1是本发明优选实施例自适应网络带宽的多协议多播放器视频播放方法流程图;
图2是本发明优选实施例自适应网络带宽的多协议多播放器视频播放系统结构图;
图3是图2中第一播放装置的结构图;
图4是图2中第二播放装置的结构图;
图5是本发明优选实施例自适应网络带宽的多协议多播放器视频播放系统中的码率自适应播放装置的结构图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。
本发明实施例服务器预先存储至少两种类型协议封装的视频数据、及不同码率视频数据对应的播放地址信息;所述第一协议封装的视频数据,按照码率的高低分为至少两种等级码率;所述第二协议封装的视频数据,按照码率的高低分为至少一种等级码率;判断当前网络类型,若为2G或3G网络,则采用第二播放器播放相应的第二协议封装的视频数据;否则(非2G、3G网络),采用第一播放器播放相应的第一协议封装的视频数据。本发明可解决在使用wifi、4G或蓝牙等宽带网络的情况下播放视频的过程中出现网络状况变得非常差或网络类型改变时,容易出现播放器绿屏、缓冲时间太长及无法获取视频资源等问题;和在网络带宽不好,使用2G或3G等网络播放码率较低的视频的过程中出现网络状况变好,无法自适应改变网络类型,未享受到高清晰度视频播放的服务,也造成不必要的2G、3G网络流量浪费的问题。
实施例一
图1是本发明优选实施例自适应网络带宽的多协议多播放器视频播放方法流程图;所述方法包括以下步骤:
S101,服务器预先存储至少两种类型协议封装的视频数据、及不同码率视频数据对应的播放地址信息;
所述第一协议封装的视频数据,按照码率的高低分为至少两种等级码率;所述第二协议封装的视频数据,按照码率的高低分为至少一种等级码率;
所述播放地址信息包括视频数据的封装协议类型、码率等级、播放地址;
以下是列举的映射信息的例子,此表中,第一协议封装的视频数据,按照码率的不同,分为第一等级(高清)、第二等级(标清)、第三等级(流畅)、第四等级(基本)四种不同码率的视频数据,分别对应的播放地址是地址1、地址2、地址3、地址4;第二协议封装的视频数据包含一种基本码率的视频数据第四等级(基本),对应的播放地址是地址5;
第一协议,为HLS协议;其封装后的文件为.ts文件(媒体数据)及.m3u8文件(媒体数据索引);HLS使用的是mpeg2ts的流封装,每188个字节一个ts包,每个包包含头部,如果不足188字节,还需要填充0xff,额外增加了数据量,在hls索引文件中,每个ts都带有标识信息和路径信息(HTTP目录信息),每个.ts文件的路径信息都是一样的,不同就是文件名字,因此存在大量的冗余信息;
第一播放器,为客户端当前浏览器调用的Apple系统播放器,用于播放采用第一协议封装的媒体数据;
第二播放器,为支持第二协议的播放器,用于播放采用第二协议封装的媒体数据;
第二协议为本发明自定义的私有协议,所述第二协议中的封装文件定义了媒体数据包的特定封装格式和相应的索引信息;所有视频包和音频包按照输入的时间顺序存放在所述封装文件中;
所述媒体数据包(音频包或视频包)的特定封装格式具体为:
每个媒体数据包的2字节头部信息0-15位的格式如下:
每个音频包和视频包格式一样,头长度为2个字节(16bits位),目前只用了第一个字节,第二字节保留。
视频帧的负荷信息,每个视频帧单独一个负荷,紧跟在时间戳信息后面,
视频帧的负荷信息结构为:
时间戳1 |
视频帧1 |
时间戳2 |
视频帧2 |
……. |
时间戳N |
视频帧N |
音频帧的负荷信息结构有两种:
结构1:音频帧的负荷信息结构1为每个音频帧单独一个负荷,紧跟在时间戳信息后面,具体为:
时间戳1 |
音频帧1 |
时间戳2 |
音频帧2 |
……. |
时间戳N |
音频帧N |
结构2:为了进一步减少负荷,可将多个音频帧合并成一个数据包负荷,每一音频帧前面2个字节为本音频帧的长度,具体为:
所述索引信息也即媒体数据的描述信息,其为文本文件,记录了整个流媒体的全局信息。所述索引信息包括如下字段:
所述第二协议支持的数据格式下:
名称 |
类别 |
H264码流 |
视频 |
AAC,AAC+ |
音频 |
AMR-NB |
音频 |
AMR-WB |
音频 |
相比HLS协议,第二协议封装的媒体数据包中减少了0xff字段,将索引文件中相同的路径信息单独提出了,减少了部分信息,这样在2G/3G网络中能减少非数据流所占用的带宽,尽可能的提高码率的利用率。
S102,接收用户的点播请求;
S103,检测当前网络是否连通,若连通则进入步骤S104;若未连通则提示用户连接失败;
S104,判断当前网络类型,若为2G或3G网络,则进入步骤S105;否则(非2G、3G网络)进入步骤S106;
S105,采用第二播放器播放相应的第二协议封装的视频数据;
具体为:检测客户端是否保存有所述点播请求对应的播放地址,若是,则根据所述播放地址采用第二播放器播放相应的第二协议封装的视频数据;若否,则向服务器请求所述点播请求对应的播放地址并保存在客户端中,然后再根据所述播放地址采用第二播放器播放相应的第二协议封装的视频数据;
进一步地,视频播放过程中,客户端实时监测网络状况:
当监测到网络出现缓冲并持续一段时间,判断当前播放的视频是否是第二协议封装的视频数据中的最低码率等级,若是,则不处理,若否,则记录当前播放时间,选择低一等级码率的播放地址,切换视频数据,通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
所述一段时间由客户端预先设定,例如设置20s;
当监测到网络带宽提高并超过当前网络带宽阈值时,判断当前播放的视频是否是第二协议封装的视频数据中的最高码率等级,若是,则不处理,若否,则记录当前播放时间,选择高一等级码率的播放地址,切换视频数据,通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
所述带宽阈值由客户端可预先设置,不同网络带宽阈值对应不同码率等级的视频数据;例如可设置网络带宽阈值G1对应的码率等级为768kbps,网络带宽阈值G2对应的码率等级为1.5Mbps;
当监测到网络类型发生改变时(非2G、3G网络),则返回步骤S104;
S106,采用第一播放器播放相应的第一协议封装的视频数据;
具体为:检测客户端是否保存有所述点播请求对应的播放地址,若是,则根据所述播放地址采用第一播放器播放相应的第一协议封装的视频数据;若否,则向服务器请求所述点播请求对应的播放地址并保存在客户端中,然后再根据所述播放地址采用第一播放器播放相应的第一协议封装的视频数据;
进一步地,视频播放过程中,客户端实时监测网络状况:
当监测到出现网络出现缓冲时并持续一段时间,判断当前播放的视频是否是第一协议封装的视频数据中的最低码率等级,若是,则不处理,若否,则记录当前播放时间,选择低一等级码率的播放地址,切换视频数据,通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
所述一段时间由客户端预先设定,例如设置20s;
当监测到网络带宽提高并超过当前网络带宽阈值时时,判断当前播放的视频是否是第一协议封装的视频数据中的最高码率等级,若是,则不处理,若否,则记录当前播放时间,选择高一等级码率的播放地址,切换视频数据,通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
所述带宽阈值由客户端可预先设置,不同网络带宽阈值对应不同码率等级的视频数据;例如可设置网络带宽阈值G1对应的码率等级为768kbps,网络带宽阈值G2对应的码率等级为1.5Mbps;
当监测到网络类型发生改变时(非2G、3G网络,例如可以为wifi或4G等带宽流量大的网络),则返回步骤S104;
实施例二
图2是本发明优选实施例自适应网络带宽的多协议多播放器视频播放系统结构图,所述系统包括:
视频数据存储模块,用于存储至少两种类型协议(第一协议和第二协议)封装的视频数据、及不同码率视频数据对应的播放地址信息;
接收模块,用于接收用户的点播请求;
网络连通检测模块,用于检测当前网络是否连通,若连通则进入网络类型判断模块,若未连通则提示用户连接失败;
网络类型判断模块,用于判断当前网络类型,若为2G或3G网络,则进入第二播放装置;否则(非2G、3G网络)进入第一播放装置;
第一播放装置,采用第一播放器播放相应的第一协议封装的视频数据;
第二播放装置,采用第二播放器播放相应的第二协议封装的视频数据;
其中,第一协议封装的视频数据,按照码率的高低分为至少两种等级码率;第二协议封装的视频数据,按照码率的高低分为至少一种等级码率;
所述播放地址信息包括网络类型、播放器类型、协议封装类型、码率等级、播放地址;
第一协议,为HLS协议;其封装后的文件为.ts文件(媒体数据)及.m3u8文件(媒体数据索引);HLS使用的是mpeg2ts的流封装,每188个字节一个ts包,每个包包含头部,如果不足188字节,还需要填充0xff,额外增加了数据量,在hls索引文件中,每个ts都带有标识信息和路径信息(HTTP目录信息),每个.ts文件的路径信息都是一样的,不同就是文件名字,因此存在大量的冗余信息;
第一播放器,为客户端当前浏览器调用的Apple系统播放器,用于播放采用第一协议封装的媒体数据;
第二播放器,为支持第二协议的播放器,用于播放采用第二协议封装的媒体数据;
第二协议为本发明自定义的私有协议,所述第二协议中的封装文件定义了媒体数据包的特定封装格式和相应的索引信息;所有视频包和音频包按照输入的时间顺序存放在所述封装文件中;
所述媒体数据包(音频包或视频包)的特定封装格式具体为:
每个媒体数据包的2字节头部信息0-15位的格式如下:
每个音频包和视频包格式一样,头长度为2个字节(16bits位),目前只用了第一个字节,第二字节保留。
视频帧的负荷信息,每个视频帧单独一个负荷,紧跟在时间戳信息后面,
视频帧的负荷信息结构为:
时间戳1 |
视频帧1 |
时间戳2 |
视频帧2 |
……. |
时间戳N |
视频帧N |
音频帧的负荷信息结构有两种:
结构1:音频帧的负荷信息结构1为每个音频帧单独一个负荷,紧跟在时间戳信息后面,具体为:
时间戳1 |
音频帧1 |
时间戳2 |
音频帧2 |
……. |
时间戳N |
音频帧N |
结构2:为了进一步减少负荷,可将多个音频帧合并成一个数据包负荷,每一音频帧前面2个字节为本音频帧的长度,具体为:
所述索引信息也即媒体数据的描述信息,其为文本文件,记录了整个流媒体的全局信息。所述索引信息包括如下字段:
所述第二协议支持的数据格式下:
名称 |
类别 |
H264码流 |
视频 |
AAC,AAC+ |
音频 |
AMR-NB |
音频 |
AMR-WB |
音频 |
相比HLS协议,第二协议封装的媒体数据包中减少了0xff字段,将索引文件中相同的路径信息单独提出了,减少了部分信息,这样在2G/3G网络中能减少非数据流所占用的带宽,尽可能的提高码率的利用率。
进一步地,第一播放装置还包括(图3是图2中第一播放装置的结构图;):
第一播放地址检测模块,用于检测客户端是否保存有所述点播请求对应的播放地址,若是进入第一播放模块,若否,则进入第一播放地址请求模块;
第一播放地址请求模块,用于向服务器请求所述点播请求;
第一播放地址存储模块,用于接收服务器发送的对应的播放地址并保存在客户端;
第一播放模块,用于根据所述播放地址采用第一播放器播放相应的第一协议封装的视频数据;
进一步地,所述第二播放装置还包括(图4是图2中第二播放装置的结构图;),
第二播放地址检测模块,用于检测客户端是否保存有所述点播请求对应的播放地址,若是进入第二播放模块,若否,则进入第二播放地址请求模块;
第二播放地址请求模块,用于向服务器请求所述点播请求;
第二播放地址存储模块,用于接收服务器发送的对应的播放地址并保存在客户端;
第二播放模块,用于根据所述播放地址采用第二播放器播放相应的第二协议封装的视频数据;
进一步地,所述系统还包括码率自适应播放装置(图5是本发明优选实施例自适应网络带宽的多协议多播放器视频播放系统中的码率自适应播放装置的结构图;),
码率自适应播放装置,用于根据网络状况的不同,自适应选择不同码率的视频数据进行播放,所述码率自适应播放装置包括以下模块:
网络状况监测模块,用于检测网络状况,当网络出现缓冲并持续一段时间,进入最低码率等级判断模块,当监测到网络带宽提高并超过当前网络带宽阈值时时,进入最高码率等级判断模块,个网络类型发生改变时,进入网络类型判断模块;
所述一段时间由客户端预先设定,例如设置20s;
所述带宽阈值由客户端可预先设置,不同网络带宽阈值对应不同码率等级的视频数据;例如可设置网络带宽阈值G1对应的码率等级为768kbps,网络带宽阈值G2对应的码率等级为1.5Mbps;
最低码率等级判断模块,判断当前播放的视频是否是所属协议封装的视频数据中的最低码率等级,若是,则不处理,若否,则进入第一播放时间记录模块;
第一播放时间记录模块,用于记录当前播放时间;
第一视频切换模块,用于选择低一等级码率的播放地址,切换视频数据;
第一关键帧查找及播放模块,用于通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
最高码率等级判断模块,用于判断当前播放的视频是否是所属协议封装的视频数据中的最高码率等级,若是,则不处理,若否,则进入第二播放时间记录模块;
第二播放时间记录模块,用于记录当前播放时间;
第二视频切换模块,用于选择高一等级码率的播放地址,切换视频数据;
第二视频切换模块,用于通过记录的播放时间查找相应的视频数据的关键帧,使用切换后的视频数据开始播放;
本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为ROM、RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。