视频流切换方法、装置及系统的制作方法

文档序号:7986388阅读:163来源:国知局
视频流切换方法、装置及系统的制作方法
【专利摘要】本发明公开了一种视频流切换方法、装置及系统,属于多媒体处理领域。所述方法包括:保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;从当前视频流切换至备选视频流时,用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数;发送所述被替换解码参数后的视频流标签给视频播放器;发送所述备选视频流中的待播放数据给所述视频播放器。本发明通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,达到了两个视频数据流可以无缝切换,特别是两个解码参数不相同的视频数据流的无缝切换的效果。
【专利说明】视频流切换方法、装置及系统
【技术领域】
[0001]本发明涉及多媒体处理领域,特别涉及一种视频流切换方法、装置及系统。
【背景技术】
[0002]FLV (Flash Video,流媒体)是现在应用非常广泛的一种视频格式,可以采用不同的码率和分辨率来编码FLV流。
[0003]在进行视频直播的场景下,可能会同时存在多路FLV流可供播放,比如,在奥运会网络直播系统中,可能会接收到正在同时进行的足球直播和篮球直播两路FLV流,此时存在在两路FLV流之间来回切换的问题。现有的视频流切换方法主要包括:第一,切断当前一路FLV流的连接;第二,重新连接服务器获取另外一路FLV流的数据。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:重新链接服务器就像是从一个频道切换到另外一个频道一样,会导致数据缓冲,产生视频播放的中断,严重影响用户体验。

【发明内容】

[0005]为了解决现有视频流切换方法容易产生中断的问题,本发明实施例提供了一种视频流切换方法、装置及系统。所述技术方案如下:
[0006]第一方面,提供了一种视频流切换方法,所述方法包括:
[0007]保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0008]从当前视频流切换至备选视频流时,用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数;
[0009]发送所述被替换解码参数后的视频流标签给视频播放器;
[0010]发送所述备选视频流中的待播放数据给所述视频播放器。
[0011]进一步地,所述用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数之前,还包括:
[0012]判断所述备选视频流的视频流标签中的解码参数和所述当前视频流的视频流标签中的解码参数是否相同;
[0013]如果相同,则直接执行所述发送所述备选视频流中的待播放数据给所述视频播放器的步骤;
[0014]如果不相同,则执行所述用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数的步骤。
[0015]进一步地,所述发送所述备选视频流中的待播放数据给所述视频播放器之前,还包括:
[0016]保存所述当前视频流中被切换前所播放数据中的最后一个时间戳;
[0017]所述发送所述备选视频流中的待播放数据给所述视频播放器,对应包括:
[0018]修改所述备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于所述保存的最后一个时间戳;
[0019]将修改时间戳后的待播放数据发送给所述视频播放器。
[0020]进一步地,所述从当前视频流切换至备选视频流之前,还包括:
[0021]获取通往所述视频编码器的传输速率;
[0022]根据所述传输速率判断是否需要从当前视频流切换至备选视频流;
[0023]如果是,则执行所述从当前视频流切换至备选视频流的步骤。
[0024]进一步地,所述根据所述传输速率判断是否需要从当前视频流切换至备选视频流,具体包括:
[0025]检测所述传输速率是否大于第一预定阈值;
[0026]若检测到大于第一预定阈值,则从所述当前视频流切换至所述备选视频流,所述备选视频流的码率大于所述当前视频流的码率;
[0027]和/ 或,
[0028]检测所述传输速率是否小于第二预定阈值;
[0029]若检测到小于第二预定阈值,则从所述当前视频流切换至所述备选视频流,所述备选视频流的码率小于所述当前视频流的码率。
[0030]第二方面,提供了一种视频流切换装置,所述装置包括:
[0031]标签保存模块,用于保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0032]参数替换模块,用于从当前视频流切换至备选视频流时,用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数;
[0033]参数发送模块,用于发送所述被替换解码参数后的视频流标签给视频播放器;
[0034]数据发送模块,用于发送所述备选视频流中的待播放数据给所述视频播放器。
[0035]进一步地,所述视频流切换装置,还包括:
[0036]参数判断模块;
[0037]所述参数判断模块,用于判断所述备选视频流的视频流标签中的解码参数和所述当前视频流的视频流标签中的解码参数是否相同;
[0038]所述数据发送模块,还用于如果所述参数判断模块的判断结果为相同,则直接执行所述发送所述备选视频流中的待播放数据给所述视频播放器的步骤;
[0039]所述参数发送模块,具体用于如果所述参数判断模块的判断结果为不相同,则执行所述用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数的步骤。
[0040]进一步地,所述视频流切换装置,还包括:
[0041]时间保存模块;
[0042]所述时间保存模块,用于保存所述当前视频流中被切换前所播放数据中的最后一个时间戳;
[0043]所述数据发送模块,对应包括:
[0044]时间修改单元和数据发送单元;
[0045]所述时间修改单元,用于修改所述备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于所述保存的最后一个时间戳;[0046]所述数据发送单元,用于将修改时间戳后的待播放数据发送给所述视频播放器。
[0047]进一步地,所述视频流切换装置,还包括:
[0048]速率获取模块和切换判断模块;
[0049]所述速率获取模块,用于获取通往所述视频编码器的传输速率;
[0050]所述切换判断模块,用于根据所述传输速率判断是否需要从当前视频流切换至备选视频流;
[0051]所述参数修改模块,用于如果所述切换判断模块的判断结果为是,则执行所述从当前视频流切换至备选视频流的步骤。
[0052]进一步地,所述切换判断模块,具体用于:
[0053]检测所述传输速率是否大于第一预定阈值;若检测到大于第一预定阈值,则需要从所述当前视频流切换至所述备选视频流,所述备选视频流的码率大于所述当前视频流的码率;
[0054]和/ 或,
[0055]检测所述传输速率是否小于第二预定阈值;若检测到小于第二预定阈值,则需要从所述当前视频流切换至所述备选视频流,所述备选视频流的码率小于所述当前视频流的码率。
[0056]第三方面,提供了一种视频播放系统,其特征在于,所述系统包括:至少两个视频流提供服务器、视频流切换装置和包含视频播放器的客户端;
[0057]所述视频流切换装置是如第二方面或者第二方面的各种进一步实施方案中任一所述的视频流切换装置。
[0058]本发明实施例提供的技术方案带来的有益效果是:
[0059]通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,达到节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且需要重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。
【专利附图】

【附图说明】
[0060]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0061]图1是本发明实施例一提供的视频流切换方法的方法流程图;
[0062]图2A是本发明实施例二提供的视频流切换方法的实施环境示意图;
[0063]图2B是本发明实施例二提供的视频流切换方法的方法流程图;
[0064]图3A是本发明实施例三提供的视频流切换方法的实施环境示意图;
[0065]图3B是本发明实施例三提供的视频流切换方法的方法流程图;
[0066]图4是本发明实施例四提供的视频流切换装置的结构示意图;[0067]图5是本发明实施例五提供的视频流切换装置的结构示意图;
[0068]图6是本发明实施例六提供的视频流切换装置的结构示意图;
[0069]图7是本发明实施例七提供的视频播放系统的结构示意图。
【具体实施方式】
[0070]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0071]FLV (Flash Video,流媒体)流是一种用于封装视频编码数据的流媒体格式,其内部的视频编码数据可以用H.264标准编码。当视频编码数据采用H.264编码时,FLV流包括三种类型的标签,分别为音频标签、视频标签和元数据(Metadata)标签。元数据标签中通常都包含有解码参数SPS (sequence parameterset序列参数集)和解码参数PPS (pictureparameter set,图像参数集)。其中:
[0072]解码参数SPS是指:将一个视频序列(从一个IDR帧开始到下一个IDR帧之前的数据称之为一个视频序列)中的全部图像的共同特征抽取出来,存放在SPS语法单元中。也即,只有两个视频序列之间才能切换SPS。换句话说,只有IDR帧的第一个片可以切换SPS。“共同特征”包括分辨率和码率之类的信息,通常在一个视频序列里保持不变,并可用于解码。
[0073]解码参数PPS是指:将各个图像的典型特征抽取出来,存放在PPS语法单元中。也即,只有图像之间才能切换PPS。换句话说,只有每帧图像的第一个片可以切换PPS。
[0074]其中,IDR帧属于一种特殊的I帧。解码器收到IDR帧时,将所有的参考帧队列丢弃。这点是所有I帧共有的特性,但是收到IDR帧时,解码器另外需要做的工作就是:把所有的解码参数PPS和SPS进行更新,使得解码器的解码参数得到更新。
[0075]请参考图1,其示出了本发明实施例一提供的视频流切换方法的方法流程图。该视频流切换方法,包括:
[0076]步骤102,保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0077]步骤104,从当前视频流切换至备选视频流时,用备选视频流的视频流标签中的解码参数替换当前视频流的视频流标签中的解码参数;
[0078]步骤106,发送被替换解码参数后的视频流标签给视频播放器;
[0079]步骤108,发送备选视频流中的待播放数据给视频播放器。
[0080]综上所述,本发明实施例提供的视频流切换方法,通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。
[0081]在上一实施例中,视频流是否需要切换,可以是由其它设备触发当前设备进行切换;也可以是由当前设备自身触发进行切换。为了对由其它设备触发当前设备进行切换的情形做详细描述,请参考如下:
[0082]见图2A,其示出了本发明实施例二提供的视频流切换方法所涉及的一种实施环境的结构示意图。该实施环境为一个视频播放系统,该视频播放系统包括:第一视频流提供服务器21、第二视频流提供服务器22、第三视频流提供服务器23、直播服务器24、导播台25、Q)N (Content Delivery Network,内容分发网络)网络26和包含视频播放器的客户端27。
[0083]其中,第一视频流提供服务器21、第二视频流提供服务器22和第三视频流提供服务器23各自分别提供一路FLV流给直播服务器24,这三路FLV流的分辨率和码率可以相同,也可以互不相同。
[0084]直播服务器24可以接收到来自第一视频流提供服务器21、第二视频流提供服务器22和第三视频流提供服务器23的三路FLV流,然后根据导播台25的切换控制信号,选择其中一路FLV流输出给⑶N网络26,以便由⑶N网络26转发给包含视频播放器的客户端27。
[0085]见图2B,其示出了本发明实施例二提供的视频流切换方法的方法流程图。本实施例主要以该视频流切换方法应用于如图2A所示的直播服务器24中来举例说明。同时,本实施例也仅以FLV为视频流的封装格式来举例说明,对于该视频流切换方法应用于其他具有相同或者相类似结构的流媒体切换场景的实施例,为本领域技术人员所易于思及的部分,不再一一赘述。该视频流切换方法,包括:
[0086]步骤201,保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0087]直播服务器可以接收到来自第一视频流提供服务器、第二视频流提供服务器和第三视频流提供服务器的三路FLV流,每个FLV流分别用于承载不同的视频内容。此时,直播服务器可以提取各路FLV流中包含解码参数的视频流标签,并且存储至预定位置。另外,直播服务器也可以先将一路FLV流输出给⑶N网络,以便实时播放。
[0088]步骤202,接收导播台的切换控制信号;
[0089]导播台可以在需要进行视频内容切换时,向直播服务器发出切换控制信号。该切换控制信号用于指示直播服务器从当前播放的FLV流切换至另外一个备选的FLV流。比如,切换控制信号用于指示直播服务器从当前播放的、来自第一视频流提供服务器的FLV流切换至来自第二转码播放器的FLV流。
[0090]步骤203,保存当前视频流中被切换前所播放数据中的最后一个时间戳;
[0091]播放数据包括音频标签和视频标签,时间戳(Timestamp)是音视频标签中存在的一个数据,其并不一定与实际时间有联系,仅用于标识各个音视频标签的先后顺序。在直播服务器接收到切换控制信号之后,可以保存当前视频流中被切换前所播放数据中的最后一个时间戳。具体地讲,可以是当前正在播放的视频序列中的最后一个音频标签或者视频标签内的时间戳。
[0092]步骤204,判断备选视频流的视频流标签中的解码参数和当前视频流的视频流标签中的解码参数是否相同;如果相同,则进入步骤205 ;如果不相同,则进入步骤206 ;
[0093]当前视频流的视频流标签可以是当前视频流中当前播放的视频序列之后的下一视频序列中的第一个包含编码参数的视频流标签,也即与下一个IDR帧的第一个片有关的视频流标签,编码参数包括PPS和SPS ;备选视频流的视频流标签可以是备选视频流中最近接收到的视频序列中的第一个包含编码参数的视频流标签,也即与最近已接收IDR帧的第一个片有关的视频流标签,编码参数同样包括PPS和SPS。直播服务器可以判断两者的解码参数是否相同。
[0094]步骤205,发送备选视频流中的待播放数据给视频播放器;
[0095]如果两者的解码参数相同,则直播服务器可以将备选视频流中的最近接收到的视频序列作为待播放数据发送给视频播放器。具体在本实施例中,直播服务器可以经由CDN网络的传递,将备选视频流发送给包含视频播放器的客户端。具体地讲,本步骤可以包括如下两个子步骤:
[0096]第一,修改备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于保存的最后一个时间戳;
[0097]由于备选视频流中音视频标签的时间戳可能会小于当前视频流中音视频标签的时间戳,所以,需要修改备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于步骤203保存的最后一个时间戳。
[0098]第二,将修改时间戳后的待播放数据发送给视频播放器。
[0099]在备选视频流中音视频标签的时间戳均被修改之后,直播服务器可以将修改时间戳后的待播放数据发送给视频播放器。
[0100]步骤206,用备选视频流的视频流标签中的解码参数替换当前视频流的视频流标签中的解码参数;
[0101]如果两者的解码参数不相同,直播服务器可以用备选视频流的视频流标签中的解码参数替换当前视频流的视频流标签中的解码参数。
[0102]步骤207,发送被替换解码参数后的视频流标签给视频播放器;
[0103]直播服务器可以发送被替换解码参数后的视频流标签给视频播放器。这时,视频播放器可以自然地利用现有IDR更新机制重置解码参数,而重置后的解码参数实质上已经由当前视频流的解码参数切换为了备选视频流的解码参数。
[0104]步骤205,发送备选视频流中的待播放数据给视频播放器。
[0105]如果两者的解码参数不相同,但是直播服务器将当前视频流的解码参数进行了替换,直播服务器仍然可以发送备选视频流中的待播放数据给视频播放器。具体的发送过程参考前述。由于此时视频播放器中的解码参数实质上已经切换为了备选视频流的解码参数,尽管两者的分辨率或者码率之类的数据不同,但是视频播放器仍然可以直接对备选视频流进行播放。
[0106]显然,整个切换过程是无缝进行的,不需要进行重新连接服务器等操作,除去网络速率的影响,不会产生卡顿现象。
[0107]综上所述,本发明实施例提供的视频流切换方法,通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,达到节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。[0108]视频流是否需要切换,也可以是由当前设备自身触发进行切换。为了对由当前设备自身触发进行切换的情形做详细描述,请参考如下:
[0109]见图3A,其示出了本发明实施例三提供的视频流切换方法所涉及的一种实施环境的结构示意图。该实施环境为一个直播系统,该直播系统包括:第一视频流提供服务器31、第二视频流提供服务器32、第三视频流提供服务器33、直播服务器34、⑶N (ContentDelivery Network,内容分发网络)网络36和客户端37。
[0110]其中,第一视频流提供服务器31、第二视频流提供服务器32和第三视频流提供服务器33各自分别提供一路FLV流给直播服务器34,这三路FLV流的内容可以完全一样,但是分辨率和码率可以互不相同。比如,第一视频流提供服务器31提供的分辨率和码率最高,可以简称为当前视频的高清版本;第二视频流提供服务器32提供的分辨率和码率中等,可以简称为当前视频的标清版本;第三视频流提供服务器33提供的分辨率和码率最小,可以简称为当前视频的普清版本。
[0111]直播服务器34可以接收到来自第一视频流提供服务器31、第二视频流提供服务器32和第三视频流提供服务器33的三路FLV流,然后同时将三路FLV流输出给⑶N网络36,以便由⑶N网络36选择其中一路FLV流转发给包含视频播放器的客户端37进行播放。
[0112]见图3B,其示出了本发明实施例二提供的视频流切换方法的方法流程图。本实施例主要以该视频流切换方法应用于如图3A所示的CDN网络36中来举例说明。同时,本实施例也仅以FLV为视频流的封装格式来举例说明,对于该视频流切换方法应用于其他具有相同或者相类似结构的流媒体切换场景的实施例,为本领域技术人员所易于思及的部分,不再一一赘述。该视频流切换方法,包括:
[0113]步骤301,保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0114]⑶N网络可以接收到由直播服务器发送的、来自第一视频流提供服务器、第二视频流提供服务器和第三视频流提供服务器的三路FLV流,每个FLV流的内容可以完全一样,但是分辨率和码率可以互不相同。此时,CDN网络可以提取各路FLV流中包含解码参数的视频流标签,并且存储至预定位置。另外,CDN网络也可以先将一路FLV流输出给客户端,以便实时播放。比如,⑶N网络可以选择标清视频发送给客户端,或者,⑶N网络可以根据客户端当前的网络速率选择一路合适的FLV流发送给客户端。
[0115]步骤302,获取通往视频编码器的传输速率;
[0116]⑶N网络可以获取通往视频编码器的传输速率,也即⑶N网络与客户端之间的网络速率。因为实际使用中,CDN网络与客户端之间的网络速率可能会随时波动。
[0117]步骤303,根据传输速率判断是否需要从当前视频流切换至备选视频流;
[0118]CDN网络可以根据传输速率判断是否需要从当前视频流切换至备选视频流。具体地讲,本步骤可以包括如下两种实现方式中的任一一种:
[0119]第一,检测传输速率是否大于第一预定阈值;若检测到大于第一预定阈值,则从当前视频流切换至备选视频流,备选视频流的码率大于当前视频流的码率;
[0120]此种情况下,⑶N网络与客户端之间的网络速率由差变好,⑶N网络可以判断到当前视频流需要切换至具有更高的码率的备选视频流,比如:从标清视频切换至高清视频,或者,从普清视频切换至标清视频。[0121]第二,检测传输速率是否小于第二预定阈值;若检测到小于第二预定阈值,则从当前视频流切换至备选视频流,备选视频流的码率小于当前视频流的码率
[0122]此种情况下,⑶N网络与客户端之间的网络速率由好变差,⑶N网络可以判断到当前视频流需要切换至具有更低的码率的备选视频流,比如:从标清视频切换至普清视频,或者,从高清视频切换至标清视频。
[0123]步骤304,保存当前视频流中被切换前所播放数据中的最后一个时间戳;
[0124]播放数据包括音频标签和视频标签,时间戳(Timestamp)是音视频标签中存在的一个数据,其并不一定与实际时间有联系,仅用于标识各个音视频标签的先后顺序。在CDN网络判断到需要切换视频流之后,可以保存当前视频流中被切换前所播放数据中的最后一个时间戳。具体地讲,可以是当前正在播放的视频序列中的最后一个音频标签或者视频标签内的时间戳。
[0125]步骤305,用备选视频流的视频流标签中的解码参数替换当前视频流的视频流标签中的解码参数;
[0126]由于本实施例中当前视频流和备选视频流两者的解码参数不相同,CDN网络可以用备选视频流的视频流标签中的解码参数替换当前视频流的视频流标签中的解码参数。
[0127]其中,当前视频流的视频流标签可以是当前视频流中当前播放的视频序列之后的下一视频序列中的第一个包含编码参数的视频流标签,也即与下一个IDR帧的第一个片有关的视频流标签,编码参数包括PPS和SPS ;备选视频流的视频流标签可以是备选视频流中最近接收到的视频序列中的第一个包含编码参数的视频流标签,也即与最近已接收IDR帧的第一个片有关的视频流标签,编码参数同样包括PPS和SPS。
[0128]步骤306,发送被替换解码参数后的视频流标签给视频播放器;
[0129]CDN网络可以发送被替换解码参数后的视频流标签给客户端。这时,客户端可以自然地利用现有IDR更新机制重置解码参数,而重置后的解码参数实质上已经由当前视频流的解码参数切换为了备选视频流的解码参数。
[0130]步骤307,发送备选视频流中的待播放数据给视频播放器。
[0131]CDN网络发送备选视频流中的待播放数据给客户端的具体发送过程,可以参考如下:
[0132]第一,修改备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于保存的最后一个时间戳;
[0133]由于备选视频流中音视频标签的时间戳可能会小于当前视频流中音视频标签的时间戳,所以,需要修改备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于步骤304保存的最后一个时间戳。
[0134]第二,将修改时间戳后的待播放数据发送给视频播放器。
[0135]在备选视频流中音视频标签的时间戳均被修改之后,CDN网络可以将修改时间戳后的待播放数据发送给客户端。
[0136]由于此时客户端中的解码参数实质上已经切换为了备选视频流的解码参数,尽管两者的分辨率或者码率之类的数据不同,但是客户端仍然可以直接对备选视频流进行播放。
[0137]显然,整个切换过程是无缝进行的,不需要进行重新连接服务器等操作,除去网络速率的影响,不会产生卡顿现象。
[0138]综上所述,本发明实施例提供的视频流切换方法,通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,达到节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且需要重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。另外,还通过根据客户端的网络速率,动态调整视频切换,可以为客户端提供最佳的播放效果。
[0139]需要说明的是,尽管在本实施例中以CDN网络预先知道每路视频流的分辨率和码率来举例说明。但是事实上,仍然可以增加由CDN网络判断各路视频流中的解码参数是否相同的步骤,以便CDN网络可以判断和识别各路视频流的分辨率和码率。此乃本领域技术人员易于思及的内容,不再一一赘述。
[0140]实施例四
[0141]请参考图4,其示出了本发明实施例四提供的视频流切换装置的结构方框图。该视频流切换装置可以实现成为直播服务器或者CDN网络中的一部分。该视频流切换装置,包括:标签保存模块420、参数替换模块440、参数发送模块460和数据发送模块480。
[0142]标签保存模块420,用于保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0143]参数替换模块440,用于从当前视频流切换至备选视频流时,用所述标签保存模块420保存的备选视频流的视频流标签中的解码参数替换所述标签保存模块420保存的当前视频流的视频流标签中的解码参数;
[0144]参数发送模块460,用于发送所述被参数替换模块440替换解码参数后的视频流标签给视频播放器;
[0145]数据发送模块480,用于在所述参数发送模块460发送替换解码参数后的视频流标签之后,发送所述备选视频流中的待播放数据给所述视频播放器。
[0146]综上所述,本发明实施例提供的视频流切换装置,通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,达到节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且需要重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。
[0147]实施例五
[0148]请参考图5,其示出了本发明实施例五提供的视频流切换装置的结构方框图。该视频流切换装置可以实现成为直播服务器或者CDN网络中的一部分。该视频流切换装置,包括:标签保存模块420、时间保存模块432、参数判断模块434、参数替换模块440、参数发送模块460和数据发送模块480。
[0149]标签保存模块420,用于保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0150]时间保存模块432,用于从当前视频流切换至备选视频流之前,保存所述当前视频流中被切换前所播放数据中的最后一个时间戳;
[0151]参数判断模块434,用于从当前视频流切换至备选视频流之前,判断所述备选视频流的视频流标签中的解码参数和所述当前视频流的视频流标签中的解码参数是否相同;
[0152]参数替换模块440,具体用于如果所述参数判断模块434的判断结果为不相同,则用所述标签保存模块420保存的备选视频流的视频流标签中的解码参数替换所述标签保存模块420保存的当前视频流的视频流标签中的解码参数;
[0153]参数发送模块460,用于发送所述被参数替换模块440替换解码参数后的视频流标签给视频播放器;
[0154]数据发送模块480,用于在所述参数发送模块460发送替换解码参数后的视频流标签之后,发送所述备选视频流中的待播放数据给所述视频播放器。
[0155]所述数据发送模块480,还用于如果所述参数判断模块434的判断结果为相同,则直接执行所述发送所述备选视频流中的待播放数据给所述视频播放器的步骤。
[0156]所述数据发送模块480,可以包括:时间修改单元482和数据发送单元484 ;
[0157]所述时间修改单元482,用于修改所述备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于所述时间保存模块432保存的最后一个时间戳;
[0158]所述数据发送单元484,用于将修改时间戳后的待播放数据发送给所述视频播放器。
[0159]综上所述,本发明实施例提供的视频流切换装置,通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,达到节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且需要重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。
[0160]实施例六
[0161]请参考图6,其示出了本发明实施例六提供的视频流切换装置的结构方框图。该视频流切换装置可以实现成为直播服务器或者CDN网络中的一部分。该视频流切换装置,包括:标签保存模块420、速率获取模块436、切换判断模块438、时间保存模块432、参数替换模块440、参数发送模块460和数据发送模块480。
[0162]标签保存模块420,用于保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;
[0163]速率获取模块436,用于获取通往视频编码器的传输速率;
[0164]切换判断模块438,用于根据所述速率获取模块436获取到的传输速率判断是否需要从当前视频流切换至备选视频流;
[0165]时间保存模块432,具体用于如果所述切换判断模块438的判断结果为需要时,保存所述当前视频流中被切换前所播放数据中的最后一个时间戳;
[0166]参数替换模块440,具体用于如果所述切换判断模块438的判断结果为需要时,则用所述标签保存模块420保存的备选视频流的视频流标签中的解码参数替换所述标签保存模块420保存的当前视频流的视频流标签中的解码参数;
[0167]参数发送模块460,用于发送所述被参数替换模块440替换解码参数后的视频流标签给视频播放器;
[0168]数据发送模块480,用于在所述参数发送模块460发送替换解码参数后的视频流标签之后,发送所述备选视频流中的待播放数据给所述视频播放器。
[0169]所述数据发送模块480,可以包括:时间修改单元482和数据发送单元484 ;
[0170]所述时间修改单元482,用于修改所述备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于所述时间保存模块432保存的最后一个时间戳;
[0171]所述数据发送单元484,用于将修改时间戳后的待播放数据发送给所述视频播放器。
[0172]更进一步地讲,上述切换判断模块438,具体用于:
[0173]检测所述传输速率是否大于第一预定阈值;若检测到大于第一预定阈值,则需要从所述当前视频流切换至所述备选视频流,所述备选视频流的码率大于所述当前视频流的码率;
[0174]和/ 或,
[0175]检测所述传输速率是否小于第二预定阈值;若检测到小于第二预定阈值,则需要从所述当前视频流切换至所述备选视频流,所述备选视频流的码率小于所述当前视频流的码率。
[0176]综上所述,本发明实施例提供的视频流切换装置,通过利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,达到节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且需要重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。另外,还通过根据视频播放器的网络速率,动态调整视频切换,可以为客户端提供最佳的播放效果。
[0177]实施例七
[0178]请参考图7,其示出了本发明实施例七提供的视频播放系统的结构方框图。该视频播放系统,包括:至少两个视频流提供服务器720、视频流切换装置740和包含视频播放器的客户端760。
[0179]至少两个视频流提供服务器720用于分别提供一路视频流给视频流切换装置740,各个视频流提供服务器720向视频流切换装置740提供的视频流的内容、分辨率和码率可以相同,也可以各不相同。
[0180]包含视频播放器的客户端760用于在接收到视频流切换装置740发送的数据后进行视频播放。
[0181]由图2A和图3A可知,视频流切换装置740可以实现成为直播服务器、⑶N网络、直播服务器中的一部分或者⑶N网络中的一部分。其中:
[0182]第一,当视频流切换装置740实现成为直播服务器或者直播服务器中的一部分时;
[0183]由至少两个视频流提供服务器720提供两路或者两路以上视频流给视频流切换装置740。视频流切换装置740具体用于保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;然后从当前视频流切换至备选视频流时,用备选视频流的视频流标签中的解码参数替换当前视频流的视频流标签中的解码参数;再者,可以经由CDN网络的传递,发送所述替换解码参数后的视频流标签给包含视频播放器的客户端760 ;最后,在发送替换解码参数后的视频流标签之后,还可以经由CDN网络的传递,继续发送所述备选视频流中的待播放数据给包含视频播放器的客户端760。
[0184]第二,当视频流切换装置740实现成为⑶N网络或者⑶N网络中的一部分时;
[0185]至少两个视频流提供服务器720发送两路或者两路以上的视频流,并且可以经由直播服务器的传递后,发送至视频流切换装置740。视频流切换装置740具体用于保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签;然后从当前视频流切换至备选视频流时,用备选视频流的视频流标签中的解码参数替换当前视频流的视频流标签中的解码参数;再者,发送所述替换解码参数后的视频流标签给包含视频播放器的客户端760 ;最后,在发送替换解码参数后的视频流标签之后,还发送所述备选视频流中的待播放数据给包含视频播放器的客户端760。
[0186]本领域技术人员所易于思及的是,上述视频流提供服务器720还可以是实施例四、实施例五或者实施例六提供的视频流提供服务器。
[0187]综上所述,本发明实施例提供的视频播放系统,通过使视频流切换装置利用替换当前视频流中的视频流标签中的解码参数,来使得视频播放器可以自动重置解码参数,解决了现有视频流切换方法重新连接服务器容易产生中断的问题,达到节省了现有视频流切换方法在两个视频流切换时,直播服务器需要断开对应于当前视频流的网络连接,重新再建立对应于备选视频流的网络连接,并且需要重新读取备选视频流的相关数据(比如头文件)所耗费的较多时间,达到了无需重新建立连接,两个视频数据流就可以无缝切换,特别是两个解码参数不相同的视频数据流可以无缝切换的效果。
[0188]需要说明的是:上述实施例提供的视频流切换装置在切换视频流时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频流切换装置与视频流切换方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0189]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0190]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0191]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种视频流切换方法,其特征在于,所述方法包括: 保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签; 从当前视频流切换至备选视频流时,用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数; 发送所述被替换解码参数后的视频流标签给视频播放器; 发送所述备选视频流中的待播放数据给所述视频播放器。
2.根据权利要求1所述的视频流切换方法,其特征在于,所述用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数之前,还包括: 判断所述备选视频流的视频流标签中的解码参数和所述当前视频流的视频流标签中的解码参数是否相同; 如果相同,则直接执行所述发送所述备选视频流中的待播放数据给所述视频播放器的步骤; 如果不相同,则执行所述用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数的步骤。
3.根据权利要求1或2所述的视频流切换方法,其特征在于,所述发送所述备选视频流中的待播放数据给所述视频播放器之前,还包括: 保存所述当前视频流中被切换前所播放数据中的最后一个时间戳; 所述发送所述备选视频流中的待播放数据给所述视频播放器,对应包括: 修改所述备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于所述保存的最后一个时间戳; 将修改时间戳后的待播放数据发送给所述视频播放器。
4.根据权利要求1或2所述的视频流切换方法,其特征在于,所述从当前视频流切换至备选视频流之前,还包括: 获取通往所述视频编码器的传输速率; 根据所述传输速率判断是否需要从当前视频流切换至备选视频流; 如果是,则执行所述从当前视频流切换至备选视频流的步骤。
5.根据权利要求4所述的视频流切换方法,其特征在于,所述根据所述传输速率判断是否需要从当前视频流切换至备选视频流,具体包括: 检测所述传输速率是否大于第一预定阈值; 若检测到大于第一预定阈值,则从所述当前视频流切换至所述备选视频流,所述备选视频流的码率大于所述当前视频流的码率; 和/或, 检测所述传输速率是否小于第二预定阈值; 若检测到小于第二预定阈值,则从所述当前视频流切换至所述备选视频流,所述备选视频流的码率小于所述当前视频流的码率。
6.一种视频流切换装置,其特征在于,所述装置包括: 标签保存模块,用于保存接收到的两路或者两路以上视频流中包含解码参数的视频流标签; 参数替换模块,用于从当前视频流切换至备选视频流时,用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数; 参数发送模块,用于发送所述被替换解码参数后的视频流标签给视频播放器; 数据发送模块,用于发送所述备选视频流中的待播放数据给所述视频播放器。
7.根据权利要求6所述的视频流切换装置,其特征在于,所述视频流切换装置,还包括: 参数判断模块; 所述参数判断模块,用于判断所述备选视频流的视频流标签中的解码参数和所述当前视频流的视频流标签中的解码参数是否相同; 所述数据发送模块,还用于如果所述参数判断模块的判断结果为相同,则直接执行所述发送所述备选视频流中的待播放数据给所述视频播放器的步骤; 所述参数发送模块,具体用于如果所述参数判断模块的判断结果为不相同,则执行所述用所述备选视频流的视频流标签中的解码参数替换所述当前视频流的视频流标签中的解码参数的步骤。
8.根据权利要求6或7所述的视频流切换装置,其特征在于,所述视频流切换装置,还包括: 时间保存模块; 所述时间保存模块,用于保存所述当前视频流中被切换前所播放数据中的最后一个时间戳; 所述数据发送模块,对应包括: 时间修改单元和数据发送单元; 所述时间修改单元,用于修改所述备选视频流中的待播放数据中的所有时间戳,使修改后的时间戳均大于所述保存的最后一个时间戳; 所述数据发送单元,用于将修改时间戳后的待播放数据发送给所述视频播放器。
9.根据权利要求6或7所述的视频流切换装置,其特征在于,所述视频流切换装置,还包括: 速率获取模块和切换判断模块; 所述速率获取模块,用于获取通往所述视频编码器的传输速率; 所述切换判断模块,用于根据所述传输速率判断是否需要从当前视频流切换至备选视频流; 所述参数修改模块,用于如果所述切换判断模块的判断结果为是,则执行所述从当前视频流切换至备选视频流的步骤。
10.根据权利要求9所述的视频流切换装置,其特征在于,所述切换判断模块,具体用于: 检测所述传输速率是否大于第一预定阈值;若检测到大于第一预定阈值,则需要从所述当前视频流切换至所述备选视频流,所述备选视频流的码率大于所述当前视频流的码率; 和/或, 检测所述传输速率是否小于第二预定阈值;若检测到小于第二预定阈值,则需要从所述当前视频流切换至所述备选视频流,所述备选视频流的码率小于所述当前视频流的码率。
11.一种视频播放系统,其特征在于,所述系统包括:至少两个视频流提供服务器、视频流切换装置和包含视频播放器的客户端; 所述视频流切换装置是如权利要 求6至10任一所述的视频流切换装置。
【文档编号】H04N21/438GK103856806SQ201210495363
【公开日】2014年6月11日 申请日期:2012年11月28日 优先权日:2012年11月28日
【发明者】赖晶 申请人:腾讯科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1