频道切换的方法及装置与流程

文档序号:12379170阅读:468来源:国知局
频道切换的方法及装置与流程

本发明实施例涉及视频领域,并且更具体地,涉及频道切换的方法及装置。



背景技术:

OTT是“Over The Top”的缩写,是指通过互联网向用户提供各种应用服务。这种应用和目前运营商所提供的通信业务不同,它仅利用运营商的网络,而服务则由运营商之外的第三方提供。目前,典型的OTT业务有互联网电视业务(OTT视频业务),苹果应用商店等。

“Over The Top”这个词汇来源于篮球等体育运动,是“过顶传球”之意,指的是篮球运动员在他们头之上来回传送篮球而达到目的地。互联网企业利用电信运营商的宽带网络发展自己的业务,如国外的谷歌、苹果、Skype、Netflix、国内的QQ等。如Netflix网络视频以及各种移动应用商店里的应用就都是OTT。不少OTT服务商直接面向用户提供服务和计费,使运营商沦为单纯的“传输管道”,根本无法触及管道中传输的巨大价值。

OTT视频业务近年来呈现快速发展的趋势,不仅传统的视频网站进军OTT领域,传统的电信运营商也开始涉足OTT业务分一杯羹,如德国电信计划在2016年推出的4K视频业务,就是IPTV+OTT的模式。与传统的IPTV业务类似,OTT业务主要场景同样包括直播和点播。不同的是:传统的IPTV业务多采用RTP/RTSP协议,底层多基于不可靠传输的UDP协议;而OTT的直播和点播,多采用HLS/DASH/MSS等流媒体协议,底层基于可靠传输的TCP协议。而且,电信运营商传统的IPTV业务包含点播和直播,其中直播多采用RTP组播的方式,这种方式对网络有较高的要求,通常要求专网专用。如果电信运营商想要在同一网络中既提供普通数据业务(如宽带上网),同时又提供直播和点播等视频业务,那么OTT业务比传统IPTV业务更适合,因为OTT业务多采用单播的方式。因此,OTT业务较之传统IPTV业务的优势是显而易见的。

然而,传统的IPTV直播业务发展多年,已经形成一套较为稳定的CBR组播+倍速单播+组播切换的FCC方案,并形成相应的IETF标准(draft-ietf-avt-rapid-acquisition-for-rtp),这可以将IPTV直播下的频道切换时延控制在1秒左右,引入的时移深度亦可控。而在OTT场景的直播业务中,由于底层流化协议和传输方式发生变化,IPTV的FCC解决方案已经不再适用,而OTT采用的主流协议HLS/DASH/MSS中也没有FCC相关的建议或者标准,由此使得OTT场景的直播业务中,频道切换时延较大,且频道切换引入的时移也较大。



技术实现要素:

本发明实施例提供一种频道切换方法及装置,应用在OTT视频业务,,能够减少频道切换过程中的时延,为OTT场景下的直播业务提供高效的频道切换功能。

第一方面,本发明实施例提供一种频道切换方法,应用在OTT(Over The Top)视频业务,所述方法包括:

接收第一频道的直播码流,所述第一频道的直播码流中包含N个媒体文件集合,其中,第一媒体文件集合中包含n个媒体文件,其中N为大于或等于1的整数,n为大于或等于2的整数,所述第一媒体文件集合为所述N个媒体文件集合中的任意一个媒体文件集合;

采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流;所述主流包含所述N个媒体文件集合和主流编码信息,所述辅流包含所述N个媒体文件集合和辅流编码信息,所述主流用于直播,所述辅流用于频道切换;

根据所述第一频道的频道信息、所述主流的编码信息和所述辅流的编码信息,生成所述第一频道的播放列表,所述播放列表用于当客户端发出频道切换指令时,指引所述客户端根据所述主流和所述辅流进行频道切换。

第一方面的频道切换方法是由服务器执行的,服务器通过采用不同编码方式对所述第一频道的直播码流分别进行编码生成主流和辅流,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

在第一方面的一种可能的实现方式中,所述采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流,包括:

采用视频编码标准对所述第一频道的直播码流进行编码生成主流;

采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成辅流。

由于这种实现方式在第一频道的直播码流中插入辅助帧生成辅流,这样为频道切换时码流的接入提供了更多的接入点,从而能够即时的获取解码刷新的图像帧进行播放,使得频道切换可以有更少的切换时延。

可选的,在这种可能的实现方式中,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,所述在所述第一频道的直播码流中插入辅助帧生成辅流,具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行插入。

在第一方面的一种可能的实现方式中,所述n个媒体文件中的每一个媒体文件均包含一个或多个GOP(group of picture画面组),其中,每一个GOP中包含两帧或两帧以上图像帧;

所述将所述切换I帧和所述切换P帧依次插入具体包括:将所述切换I帧和所述切换P帧按预设密度依次插入,其中所述预设密度根据所述GOP的长度设置,所述GOP的长度由所述GOP所包含的图像帧的数目表征。

在第一方面的另一种可能的实现方式中,所述第一频道的播放列表中包含所述主流的编码信息、所述辅流的编码信息、所述第一频道的ID号以及所述N个媒体文件集合中所包含的媒体文件的下载链接。

第二方面,本发明实施例提供一种频道切换方法,应用在OTT(Over The Top)视频业务,所述方法包括:

发出频道切换指令,并停止获取当前播放频道的媒体文件;

向服务器请求第一频道的播放列表,所述第一频道为所述频道切换指令指示的待切换至的新频道;

接收所述第一频道的播放列表,并根据所述第一频道的播放列表和主流、辅流进行频道切换,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的。

第二方面的频道切换方法是由终端执行的,终端通过接收第一频道的播放列表,并根据第一频道的播放列表和主流、辅流进行频道切换,其中主流和辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

在第二方面的一种可能的实现方式中,所述第一频道的播放列表中包含主流的编码信息、辅流的编码信息、所述第一频道的ID号以及所述第一频道的直播码流中包含的N个媒体文件集合中的媒体文件的下载链接,所述N为大于或等于1的整数。

在第二方面的另一种可能的实现方式中,所述根据所述第一频道的播放列表和主流、辅流进行频道切换包括:

根据所述第一频道的播放列表选择所述辅流中离所述频道切换指令的接收时刻最近的码流接入点;并根据所述第一频道的播放列表中的所述N个媒体文件集合所包含的媒体文件的下载链接,下载当前媒体文件中尚未播放的图像帧并播放所述图像帧,所述当前媒体文件为所述辅流中与所述最近的码流接入点一一对应的图像帧所在的媒体文件;直至所述当前媒体文件中的所有图像帧均播放完毕则切换到所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件进行播放。

由于该实现方式为频道切换提供了辅流,而不仅仅依赖于主流进行频道切换,我们知道,主流中一个媒体文件只有一个码流接入点用于接入,且主流的解码依赖性比较复杂,而该实现方法中提供的辅流为频道切换提供了另一种可能,使得发生频道切换时可以根据第一频道的播放列表选择辅流中离频道切换指令的接收时刻最近的码流接入点进行接入,由此减少了切换时延且引入更少的切换时移。

根据上一种可能的实现方式,在第二方面的另一种可能的实现方式中,所述方法还包括:

在所述下载当前媒体文件中尚未播放的图像帧之后,所述直至所述当前媒体文件中的所有图像帧均播放完毕之前,下载所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件。

这种可能的实现方式在辅流播放完毕之前即开始下载主流中与当前媒体文件一一对应的媒体文件的下一个媒体文件,这样,一旦当前媒体文件播放完成,就可以直接接入主流的下一个媒体文件开始播放,由此使得辅流和主流之间的切换无缝链接,减少切换时延。

在第二方面的又一种可能的实现方式中,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,具体包括:

所述主流为采用视频编码标准对所述第一频道的直播码流进行编码生成的;

所述辅流为采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成的。

由于这种实现方式在第一频道的直播码流中插入辅助帧生成辅流,这样为频道切换时码流的接入提供了更多的接入点,从而能够即时的获取解码刷新的图像帧进行播放,使得频道切换可以有更少的切换时延。

在第二方面的再一种可能的实现方式中,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,所述在所述第一频道的直播码流中插入辅助帧,具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧按预设密度依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧按照预设密度依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延。

第三方面,本发明实施例提供一种频道切换装置,应用在OTT(Over The Top)视频业务,其特征在于,所述装置包括:

接收模块,用于接收第一频道的直播码流,所述第一频道的直播码流中包含N个媒体文件集合,其中,第一媒体文件集合中包含n个媒体文件,其中N为大于或等于1的整数,n为大于或等于2的整数,所述第一媒体文件集合为所述N个媒体文件集合中的任意一个媒体文件集合;

编码模块,用于采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流;所述主流包含所述N个媒体文件集合和主流编码信息,所述辅流包含所述N个媒体文件集合和辅流编码信息,所述主流用于直播,所述辅流用于频道切换;

播放列表生成模块,用于根据所述第一频道的频道信息、所述主流的编码信息和所述辅流的编码信息,生成所述第一频道的播放列表,所述播放列表用于当客户端发出频道切换指令时,指引所述客户端根据所述主流和所述辅流进行频道切换。

第三方面的频道切换装置通过采用不同编码方式对所述第一频道的直播码流分别进行编码生成主流和辅流,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

在第三方面的一种可能的实现方式中,所述编码模块具体用于:

采用视频编码标准对所述第一频道的直播码流进行编码生成主流;

采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成辅流。

由于这种实现方式在第一频道的直播码流中插入辅助帧生成辅流,这样为频道切换时码流的接入提供了更多的接入点,从而能够即时的获取解码刷新的图像帧进行播放,使得频道切换可以有更少的切换时延。

可选的,在这种可能的实现方式中,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,所述编码模块具体用于:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行插入。

在第三方面的一种可能的实现方式中,所述n个媒体文件中的每一个媒体文件均包含一个或多个GOP(group of picture画面组),其中,每一个GOP中包含两帧或两帧以上图像帧;

所述编码模块具体用于:将所述切换I帧和所述切换P帧按预设密度依次插入,其中所述预设密度根据所述GOP的长度设置,所述GOP的长度由所述GOP所包含的图像帧的数目表征。

在第三方面的另一种可能的实现方式中,所述第一频道的播放列表中包含所述主流的编码信息、所述辅流的编码信息、所述第一频道的ID号以及所述N个媒体文件集合中所包含的媒体文件的下载链接。

第四方面,本发明实施例提供一种频道切换装置,应用在OTT(Over The Top)视频业务,其特征在于,所述装置包括:

发送模块,用于发出频道切换指令,并停止获取当前播放频道的媒体文件;

所述发送模块还用于,向服务器请求第一频道的播放列表,所述第一频道为所述频道切换指令指示的待切换至的新频道;

接收模块,用于接收所述第一频道的播放列表;

频道切换模块,用于根据所述第一频道的播放列表和主流、辅流进行频道切换,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的。

第四方面的频道切换装置通过接收第一频道的播放列表,并根据第一频道的播放列表和主流、辅流进行频道切换,其中主流和辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

在第四方面的一种可能的实现方式中,所述第一频道的播放列表中包含主流的编码信息、辅流的编码信息、所述第一频道的ID号以及所述第一频道的直播码流中包含的N个媒体文件集合中的媒体文件的下载链接,所述N为大于或等于1的整数。

在第四方面的另一种可能的实现方式中,所述频道切换模块具体用于:

根据所述第一频道的播放列表选择所述辅流中离所述频道切换指令的接收时刻最近的码流接入点;并根据所述第一频道的播放列表中的所述N个媒体文件集合所包含的媒体文件的下载链接,下载当前媒体文件中尚未播放的图像帧并播放所述图像帧,所述当前媒体文件为所述辅流中与所述最近的码流接入点一一对应的图像帧所在的媒体文件;直至所述当前媒体文件中的所有图像帧均播放完毕则切换到所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件进行播放。

由于该实现方式为频道切换提供了辅流,而不仅仅依赖于主流进行频道切换,我们知道,主流中一个媒体文件只有一个码流接入点用于接入,且主流的解码依赖性比较复杂,而该实现方法中提供的辅流为频道切换提供了另一种可能,使得发生频道切换时可以根据第一频道的播放列表选择辅流中离频道切换指令的接收时刻最近的码流接入点进行接入,由此减少了切换时延且引入更少的切换时移。

根据上一种可能的实现方式,在第四方面的另一种可能的实现方式中,所述频道切换模块还用于:

在所述下载当前媒体文件中尚未播放的图像帧之后,所述直至所述当前媒体文件中的所有图像帧均播放完毕之前,下载所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件。

这种可能的实现方式在辅流播放完毕之前即开始下载主流中与当前媒体文件一一对应的媒体文件的下一个媒体文件,这样,一旦当前媒体文件播放完成,就可以直接接入主流的下一个媒体文件开始播放,由此使得辅流和主流之间的切换无缝链接,减少切换时延。

在第四方面的又一种可能的实现方式中,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,具体包括:

所述主流为采用视频编码标准对所述第一频道的直播码流进行编码生成的;

所述辅流为采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成的。

由于这种实现方式在第一频道的直播码流中插入辅助帧生成辅流,这样为频道切换时码流的接入提供了更多的接入点,从而能够即时的获取解码刷新的图像帧进行播放,使得频道切换可以有更少的切换时延。

在第四方面的再一种可能的实现方式中,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,所述在所述第一频道的直播码流中插入辅助帧,具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧按预设密度依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧按照预设密度依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延。

第五方面,一种支持频道切换的服务器,应用在OTT(Over The Top)视频业务,其特征在于,所述服务器包括:发送端口,接收端口,总线,处理器,存储器,所述总线用于连接所述发送端口,所述接收端口,所述处理器以及所述存储器,所述存储器用于存储信息:

所述接收端口用于,接收第一频道的直播码流,所述第一频道的直播码流中包含N个媒体文件集合,其中,第一媒体文件集合中包含n个媒体文件,其中N为大于或等于1的整数,n为大于或等于2的整数,所述第一媒体文件集合为所述N个媒体文件集合中的任意一个媒体文件集合;

所述处理器用于,采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流;所述主流包含所述N个媒体文件集合和主流编码信息,所述辅流包含所述N个媒体文件集合和辅流编码信息,所述主流用于直播,所述辅流用于频道切换;

所述处理器还用于,根据所述第一频道的频道信息、所述主流的编码信息和所述辅流的编码信息,生成所述第一频道的播放列表,所述播放列表用于当客户端发出频道切换指令时,指引所述客户端根据所述主流和所述辅流进行频道切换;

所述发送端口用于发送所述第一频道的播放列表。

第五方面提供的支持频道切换的服务器,通过采用不同编码方式对所述第一频道的直播码流分别进行编码生成主流和辅流,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

第六方面,一种支持频道切换的终端,应用在OTT(Over The Top)视频业务,其特征在于,所述客户端包括:发送器、接收器、处理器,

所述发送器用于发出频道切换指令,并停止获取当前播放频道的媒体文件;

所述发送器还用于向服务器发送请求,所述请求用于请求第一频道的播放列表,所述第一频道为所述频道切换指令指示的待切换至的新频道;

所述接收器用于接收所述第一频道的播放列表;

所述处理器用于据所述第一频道的播放列表和主流、辅流进行频道切换,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的。

第六方面提供的支持频道切换的终端,通过接收第一频道的播放列表,并根据第一频道的播放列表和主流、辅流进行频道切换,其中主流和辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是编码后的视频序列图;

图2是本发明提供的频道切换方法的一个实施例;

图3是本发明提供的频道切换方法的另一个实施例;

图4是本发明提供的频道切换方法的又一个实施例;

图5是本发明提供的频道切换装置的一个实施例;

图6是本发明提供的频道切换装置的另一个实施例;

图7是本发明提供的支持频道切换的服务器实施例;

图8是本发明提供的支持频道切换的终端实施例。

具体实施方式

本发明实施例提供频道切换方法和相关装置,以期能够降低OTT视频业务中的频道切换时延并减少频道切换引入的时移。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明说明书、权利要求书和附图中出现的术语“第一”、“第二”等表述是用于区别不同的对象,而并非用于描述特定的顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面先对本发明实施例可能涉及的一些概念进行简单介绍。

OTT(Over The Top)直播的基本原理介绍:

OTT直播一般采用S/C结构,包含OTT直播服务器和客户端两部分。OTT直播的每个频道,一般说来包含1路码流和1个播放列表文件(playlist)。码流一般为长度1秒到几十秒不等的媒体文件集合,该媒体文件称为分片,也称分段(segment);播放列表文件中包含码流的编码信息、节目信息,以及各个分片的下载链接。

当客户端收看直播频道时,需要先向直播服务器请求该频道的播放列表,并根据具体的协议规范(通常为HLS/DASH/MSS)对播放列表进行解析,得到媒体数据对应的下载链接,进而通过HTTP/TCP协议下载频道的分片并播放。

由于直播内容是实时的,因此直播服务器上的播放列表和媒体数据也会实时更新。直播服务器维护一个长度固定的时间窗口,不断产生新的分片、删除过期的分片,并定期更新播放列表。相应的,客户端也必须定期去更新播放列表,从而获取新的分片的下载链接。

FCC(Fast Channel Change,快速频道切换)技术相关介绍:

在直播业务中,频道切换时延和引入的时移是用户体验的重要指标之一。

频道切换时延是指,从客户端发起频道切换请求开始,到客户端可以播放新频道第一帧画面的时间。时延越小,用户体验越好。

频道切换引入的时移是指,客户端切换频道后,播放第一帧画面时的绝对时间与该画面的产生时的绝对时间之间的插值。时移越小,用户看到的画面越接近直播的实时画面。

传统的IPTV直播业务发展多年,已经形成一套较为稳定的CBR组播+倍速单播+组播切换的FCC方案,并形成相应的IETF标准(draft-ietf-avt-rapid-acquisition-for-rtp),频道切换时延可以达到1秒左右,引入的时移深度可控。

但在OTT场景的直播业务中,由于底层流化协议和传输方式发生变化,IPTV的FCC解决方案已经不再适用,而OTT采用的主流协议HLS/DASH/MSS中也没有FCC相关的建议或者标准。

在OTT直播中频道切换的时延组成包括:

1、停止原频道播放的时间;

2、获取新频道播放列表的时间;

3、等待新频道SAP的时间;

4、下载新频道分片的时间;

5、准备播放新频道分片的时间;

其中,第2、3、4点是时延的主要组成部分,根据开发过程中的实验数据,频道切换时延可达2秒以上。

OTT直播的频道切换引入的时移取决于分片的长度以及客户端切换频道的时间点与分片SAP(Stream Access Point,码流接入点)之间的距离。以视频分片长度为10秒为例,切换带来的时移均值可达5秒。

目前OTT直播频道切换性能与IPTV相比差距较大,如果不能有效提升OTT直播切换频道的性能,将对OTT业务的推广产生不利的影响。

视频编解码相关知识

最初由摄像机采集的视频数据是未经过编码压缩的原始数据,数据量非常大,完全不可能对原始视频数据进行存储或者网络传输。为了解决这个问题,通用按照某种编码标准对原始数据进行编码,目前主流的编码标准包括H.265,H.264,MPEG2等。编码后的视频序列中通常包含I/P/B三种类型的帧,每一帧即一副图像,编码后的视频序列如图1所示,其中包括I帧可独立解码,体积最大,P帧需要依赖I帧和前一P帧进行解码,体积较小,B帧需要依赖前后2帧来进行解码,体积最小。图中的箭头表明解码依赖性,箭头引出的帧解码需要依赖箭头指向的帧。

在本发明的实施例中提到的SAP(stream access point,流接入点)为使用户从该点接入此流,可以立刻解码播放。SAP必须是I帧,如果是P或者B帧的话,就算用户获取了该帧的数据,由于该帧解码需要依赖前面的帧,所以也无法解码播放。

下面继续探讨本发明实施例的技术方案。

下面先介绍本发明实施例提供的频道切换方法,本发明实施例提供的频道切换方法的执行主体可以是服务器或者终端,其中,该终端可以是任何可以播放视频的装置,如电视,笔记本电脑、平板电脑、个人电脑、手机等设备。

如图2所示,本发明提供的频道切换方法的一个实施例,一种频道切换方法100,应用在OTT视频业务,可以包括:

S101、接收第一频道的直播码流,所述第一频道的直播码流中包含N个媒体文件集合。

其中,第一媒体文件集合中包含n个媒体文件,其中N为大于或等于1的整数,n为大于或等于2的整数,所述第一媒体文件集合为所述N个媒体文件集合中的任意一个媒体文件集合。

S103、采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流;所述主流包含所述N个媒体文件集合和主流编码信息,所述辅流包含所述N个媒体文件集合和辅流编码信息,所述主流用于直播,所述辅流用于频道切换。

S105、根据所述第一频道的频道信息、所述主流的编码信息和所述辅流的编码信息,生成所述第一频道的播放列表,所述播放列表用于当客户端发出频道切换指令时,指引所述客户端根据所述主流和所述辅流进行频道切换。

其中,所述第一频道的频道信息可以包括频道标识,例如频道ID。

上述频道切换方法是由服务器执行的,服务器通过采用不同编码方式对所述第一频道的直播码流分别进行编码生成主流和辅流,其中主流用于直播,辅流则专门用于频道切换处理,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

需要说明的是,上述方法的步骤可以是同一个服务器执行的,也可以是不同服务器分开执行的,例如服务器1(我们可以叫它码流发生服务器)执行S101和S103,服务器2(我们可以叫它直播服务器)执行S105,为使得方法实施例不显得过于零散,此处不再展开,以免赘述。

如图3所示,在本发明提供的频道切换方法的另一个实施例中,其中S103、采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流,进一步包括:

S1031、采用视频编码标准对所述第一频道的直播码流进行编码生成主流。

S1032、采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成辅流。

具体的,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,则进一步的,在S1032中的,所述在所述第一频道的直播码流中插入辅助帧生成辅流具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行依次插入。

其中,所述视频编码标准可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

为了使读者更清楚的理解本发明实施例中的“在所述第一频道的直播码流中插入辅助帧生成辅流”,此处先解释一个概念,即GOP(group of picture),GOP通常指一组包含多幅图像的视频序列,通常以可以独立解码的I帧开始,并且通常也仅包含1个I帧,下面为一个常见GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16帧,如果按照普通30帧/秒的视频规格,该GOP可以播放约0.53秒。由于视频序列中,I帧的体积非常大,通常是P帧和B帧的几倍甚至十几倍,有时为了降低视频序列的码率,会将GOP的长度拉长,可达数十帧,甚至120帧之多。

在上述实施例中提到的“在所述第一频道的直播码流中插入辅助帧生成辅流”中,会在一个分片中插入多个SAP,通常情况下即在一个GOP中插入多个可以独立解码的类似I帧(在本发明实施例中叫做切换I帧)作为SAP,主要作用就是将GOP内部解码依赖性降低,用户可以在当前GOP内部多个位置开始播放,而无需等待下一个GOP开始的I帧才能播放。

综上,由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延,并引入更小的切换时移。

在上述实施例的基础上,本发明实施例提供的频道切换方法进一步包括:所述n个媒体文件中的每一个媒体文件均包含一个或多个GOP(group of picture画面组),其中,每一个GOP中包含两帧或两帧以上图像帧;

所述将所述切换I帧和所述切换P帧依次插入具体包括:将所述切换I帧和所述切换P帧按预设密度依次插入,其中所述预设密度根据所述GOP的长度设置,所述GOP的长度由所述GOP所包含的图像帧的数目表征。

在上述所有实施例的基础上,可选的,所述第一频道的播放列表中包含所述主流的编码信息、所述辅流的编码信息、所述第一频道的ID号以及所述N个媒体文件集合中所包含的媒体文件的下载链接。

其中,所述编码信息中可以包含编码标准、音频交织信息,还可能包含字幕信息。

如图4所示,本发明提供的频道切换方法的一个实施例,一种频道切换方法200,应用在OTT视频业务,可以包括:

S201、发出频道切换指令,并停止获取当前播放频道的媒体文件。

S203、向服务器请求第一频道的播放列表,所述第一频道为所述频道切换指令指示的待切换至的新频道。

S205、接收所述第一频道的播放列表,并根据所述第一频道的播放列表和主流、辅流进行频道切换,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的。

其中,所述第一频道的频道信息可以包括频道标识,例如频道ID。

上述频道切换方法是由终端执行的,终端通过接收第一频道的播放列表,并根据第一频道的播放列表和主流、辅流进行频道切换,其中主流和辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

在图4提供的实施例的基础上,进一步的,所述实施例还包括:所述第一频道的播放列表中包含主流的编码信息、辅流的编码信息、所述第一频道的ID号以及所述第一频道的直播码流中包含的N个媒体文件集合中的媒体文件的下载链接,所述N为大于或等于1的整数。

其中,步骤S205中的,所述根据所述第一频道的播放列表和主流、辅流进行频道切换具体包括:

根据所述第一频道的播放列表选择所述辅流中离所述频道切换指令的接收时刻最近的码流接入点;并根据所述第一频道的播放列表中的所述N个媒体文件集合所包含的媒体文件的下载链接,下载当前媒体文件中尚未播放的图像帧并播放所述图像帧,所述当前媒体文件为所述辅流中与所述最近的码流接入点一一对应的图像帧所在的媒体文件;直至所述当前媒体文件中的所有图像帧均播放完毕则切换到所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件进行播放。

其中,此处的“下载”可以指终端下载到自己的缓存区域。

其中,此处的“当前媒体文件中尚未播放的图像帧”可以是一个媒体文件,也可以是一个媒体文件中的部分GOP,甚至可以是媒体文件中GOP的部分图像帧。

由于该实现方式为频道切换提供了辅流,而不仅仅依赖于主流进行频道切换,我们知道,主流中一个媒体文件只有一个码流接入点用于接入,且主流的解码依赖性比较复杂,而该实现方法中提供的辅流为频道切换提供了另一种可能,使得发生频道切换时可以根据第一频道的播放列表选择辅流中离频道切换指令的接收时刻最近的码流接入点进行接入,由此减少了切换时延且引入更少的切换时移。

在上述实施例的基础上,进一步的,本发明实施例提供的视频切换方法还包括:

在所述下载当前媒体文件中尚未播放的图像帧之后,所述直至所述当前媒体文件中的所有图像帧均播放完毕之前,下载所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件。

这样,在辅流播放完毕之前即开始下载主流中与当前媒体文件一一对应的媒体文件的下一个媒体文件,一旦当前媒体文件播放完成,就可以直接接入主流的下一个媒体文件开始播放,由此使得辅流和主流之间的切换无缝链接,减少切换时延。

在上述实施例的基础上,在本发明实施例的S205中:所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,具体包括:

所述主流为采用视频编码标准对所述第一频道的直播码流进行编码生成的;

所述辅流为采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成的。

具体的,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,则所述辅流为在所述第一频道的直播码流中插入辅助帧生成的具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧按预设密度依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行依次插入。

其中,所述视频编码标准可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

为了使读者更清楚的理解本发明实施例中的“在所述第一频道的直播码流中插入辅助帧生成辅流”,此处先解释一个上面一直提到的概念,即GOP(group of picture),GOP通常指一组包含多幅图像的视频序列,通常以可以独立解码的I帧开始,并且通常也仅包含1个I帧,下面为一个常见GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16帧,如果按照普通30帧/秒的视频规格,该GOP可以播放约0.53秒。由于视频序列中,I帧的体积非常大,通常是P帧和B帧的几倍甚至十几倍,有时为了降低视频序列的码率,会将GOP的长度拉长,可达数十帧,甚至120帧之多。

在上述实施例中提到的“在所述第一频道的直播码流中插入辅助帧生成辅流”中,会在一个分片中插入多个SAP,通常情况下即在一个GOP中插入多个可以独立解码的类似I帧(在本发明实施例中叫做切换I帧)作为SAP,主要作用就是将GOP内部解码依赖性降低,用户可以在当前GOP内部多个位置开始播放,而无需等待下一个GOP开始的I帧才能播放。

综上,由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧按照预设密度依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延,并引入更小的切换时移。

如图5所示,本发明提供的频道切换装置的一个实施例,一种频道切换装置500,应用在OTT视频业务,可以包括:

接收模块501,用于接收第一频道的直播码流,所述第一频道的直播码流中包含N个媒体文件集合。

其中,第一媒体文件集合中包含n个媒体文件,其中N为大于或等于1的整数,n为大于或等于2的整数,所述第一媒体文件集合为所述N个媒体文件集合中的任意一个媒体文件集合;

编码模块503,用于采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流;所述主流包含所述N个媒体文件集合和主流编码信息,所述辅流包含所述N个媒体文件集合和辅流编码信息,所述主流用于直播,所述辅流用于频道切换;

播放列表生成模块505,用于根据所述第一频道的频道信息、所述主流的编码信息和所述辅流的编码信息,生成所述第一频道的播放列表,所述播放列表用于当客户端发出频道切换指令时,指引所述客户端根据所述主流和所述辅流进行频道切换。

其中,所述第一频道的频道信息可以包括频道标识,例如频道ID。

需要说明的是,所述编码模块503可能包括一个编码器,用于对主流和辅流进行编码;也可能包括两个编码器,用于对主流和辅流分别进行编码。

上述频道切换装置500通过采用不同编码方式对所述第一频道的直播码流分别进行编码生成主流和辅流,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

需要说明的是,上述装置中的模块可以在同一个服务器中,也可以在不同服务器中分别存在,例如接收模块501和编码模块503在服务器1中(我们可以叫它码流发生服务器),播放列表生成模块505在服务器2(我们可以叫它直播服务器),为使得方法实施例不显得过于零散,此处不再展开,以免赘述。

在本发明提供的频道切换装置500的另一个实施例中,其中编码模块503具体可以用于:

采用视频编码标准对所述第一频道的直播码流进行编码生成主流;

采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成辅流。

具体的,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,所述编码模块具体用于:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行依次插入。

其中,所述视频编码标准可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

为了使读者更清楚的理解本发明实施例中的“在所述第一频道的直播码流中插入辅助帧生成辅流”,此处先解释一个概念,即GOP(group of picture画面组),GOP通常指一组包含多幅图像的视频序列,通常以可以独立解码的I帧开始,并且通常也仅包含1个I帧,下面为一个常见GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16帧,如果按照普通30帧/秒的视频规格,该GOP可以播放约0.53秒。由于视频序列中,I帧的体积非常大,通常是P帧和B帧的几倍甚至十几倍,有时为了降低视频序列的码率,会将GOP的长度拉长,可达数十帧,甚至120帧之多。

在上述实施例中提到的“在所述第一频道的直播码流中插入辅助帧生成辅流”中,会在一个分片中插入多个SAP,通常情况下即在一个GOP中插入多个可以独立解码的类似I帧(在本发明实施例中叫做切换I帧)作为SAP,主要作用就是将GOP内部解码依赖性降低,用户可以在当前GOP内部多个位置开始播放,而无需等待下一个GOP开始的I帧才能播放。

综上,由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延,并引入更小的切换时移。

在上述实施例的基础上,本发明实施例提供的频道切换装置500进一步包括:所述n个媒体文件中的每一个媒体文件均包含一个或多个GOP(group of picture),其中,每一个GOP中包含两帧或两帧以上图像帧;

所述编码模块具体用于:将所述切换I帧和所述切换P帧按预设密度依次插入,其中所述预设密度根据所述GOP的长度设置,所述GOP的长度由所述GOP所包含的图像帧的数目表征。

在上述所有实施例的基础上,可选的,所述第一频道的播放列表中包含所述主流的编码信息、所述辅流的编码信息、所述第一频道的ID号以及所述N个媒体文件集合中所包含的媒体文件的下载链接。

其中,所述编码信息中可以包含编码标准、音频交织信息,还可能包含字幕信息。

如图6所示,本发明提供的频道切换装置的一个实施例,一种频道切换装置600,应用在OTT视频业务,可以包括:

发送模块601,用于发出频道切换指令,并停止获取当前播放频道的媒体文件;

所述发送模块601还用于,向服务器请求第一频道的播放列表,所述第一频道为所述频道切换指令指示的待切换至的新频道;

接收模块603,用于接收所述第一频道的播放列表;

频道切换模块605,用于根据所述第一频道的播放列表和主流、辅流进行频道切换,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的。

其中,所述第一频道的频道信息可以包括频道标识,例如频道ID。

上述频道切换装置600通过接收第一频道的播放列表,并根据第一频道的播放列表和主流、辅流进行频道切换,其中主流和辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

在图6提供的实施例的基础上,进一步的,所述实施例还包括:所述第一频道的播放列表中包含主流的编码信息、辅流的编码信息、所述第一频道的ID号以及所述第一频道的直播码流中包含的N个媒体文件集合中的媒体文件的下载链接,所述N为大于或等于1的整数。

其中,所述频道切换模块605具体用于:根据所述第一频道的播放列表选择所述辅流中离所述频道切换指令的接收时刻最近的码流接入点;并根据所述第一频道的播放列表中的所述N个媒体文件集合所包含的媒体文件的下载链接,下载当前媒体文件中尚未播放的图像帧并播放所述图像帧,所述当前媒体文件为所述辅流中与所述最近的码流接入点一一对应的图像帧所在的媒体文件;直至所述当前媒体文件中的所有图像帧均播放完毕则切换到所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件进行播放。

其中,此处的“下载”可以指终端下载到自己的缓存区域。

其中,此处的“当前媒体文件中尚未播放的图像帧”可以是一个媒体文件,也可以是一个媒体文件中的部分GOP,甚至可以是媒体文件中GOP的部分图像帧。

由于该实现方式为频道切换提供了辅流,而不仅仅依赖于主流进行频道切换,我们知道,主流中一个媒体文件只有一个码流接入点用于接入,且主流的解码依赖性比较复杂,而该实现方法中提供的辅流为频道切换提供了另一种可能,使得发生频道切换时可以根据第一频道的播放列表选择辅流中离频道切换指令的接收时刻最近的码流接入点进行接入,由此减少了切换时延且引入更少的切换时移。

在上述实施例的基础上,进一步的,本发明实施例提供的视频切换装置中,所述频道切换模块605还用于:

在所述下载当前媒体文件中尚未播放的图像帧之后,所述直至所述当前媒体文件中的所有图像帧均播放完毕之前,下载所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件。

这样,在辅流播放完毕之前即开始下载主流中与当前媒体文件一一对应的媒体文件的下一个媒体文件,一旦当前媒体文件播放完成,就可以直接接入主流的下一个媒体文件开始播放,由此使得辅流和主流之间的切换无缝链接,减少切换时延。

在上述实施例的基础上,在本发明实施例的频道切换模块605中:所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,具体包括:

所述主流为采用视频编码标准对所述第一频道的直播码流进行编码生成的;

所述辅流为采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成的。

具体的,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,则所述辅流为在所述第一频道的直播码流中插入辅助帧生成的具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧按预设密度依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行依次插入。

其中,所述视频编码标准可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

为了使读者更清楚的理解本发明实施例中的“在所述第一频道的直播码流中插入辅助帧生成辅流”,此处先解释一个上面一直提到的概念,即GOP(group of picture),GOP通常指一组包含多幅图像的视频序列,通常以可以独立解码的I帧开始,并且通常也仅包含1个I帧,下面为一个常见GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16帧,如果按照普通30帧/秒的视频规格,该GOP可以播放约0.53秒。由于视频序列中,I帧的体积非常大,通常是P帧和B帧的几倍甚至十几倍,有时为了降低视频序列的码率,会将GOP的长度拉长,可达数十帧,甚至120帧之多。

在上述实施例中提到的“在所述第一频道的直播码流中插入辅助帧生成辅流”中,会在一个分片中插入多个SAP,通常情况下即在一个GOP中插入多个可以独立解码的类似I帧(在本发明实施例中叫做切换I帧)作为SAP,主要作用就是将GOP内部解码依赖性降低,用户可以在当前GOP内部多个位置开始播放,而无需等待下一个GOP开始的I帧才能播放。

综上,由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧按照预设密度依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延,并引入更小的切换时移。

如图7所示,本发明提供的支持频道切换的服务器实施例,一种支持频道切换的服务器700,应用在OTT视频业务,可以包括:

发送端口701,接收端口703,总线705,处理器707,存储器709,所述总线705用于连接所述发送端口701,所述接收端口703,所述处理器707以及所述存储器709,所述存储器709用于存储信息:

所述接收端口703用于,接收第一频道的直播码流,所述第一频道的直播码流中包含N个媒体文件集合。

其中,第一媒体文件集合中包含n个媒体文件,其中N为大于或等于1的整数,n为大于或等于2的整数,所述第一媒体文件集合为所述N个媒体文件集合中的任意一个媒体文件集合;

所述处理器707用于,采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流;所述主流包含所述N个媒体文件集合和主流编码信息,所述辅流包含所述N个媒体文件集合和辅流编码信息,所述主流用于直播,所述辅流用于频道切换;

所述处理器707还用于,根据所述第一频道的频道信息、所述主流的编码信息和所述辅流的编码信息,生成所述第一频道的播放列表,所述播放列表用于当客户端发出频道切换指令时,指引所述客户端根据所述主流和所述辅流进行频道切换;

所述发送端口701用于发送所述第一频道的播放列表。

其中,所述第一频道的频道信息可以包括频道标识,例如频道ID。

上述实施例提供的支持频道切换的服务器700,通过采用不同编码方式对所述第一频道的直播码流分别进行编码生成主流和辅流,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

需要说明的是,上述处理器707执行的不同功能可以是同一个服务器中的处理器执行的,也可以是不同服务器中不同的处理器分开执行的,例如服务器1(我们可以叫它码流发生服务器)用于采用不同编码方式对所述第一频道的直播码流分别进行编码,同时生成主流和辅流,服务器2(我们可以叫它直播服务器)用于根据所述第一频道的频道信息、所述主流的编码信息和所述辅流的编码信息,生成所述第一频道的播放列表,所述播放列表用于当客户端发出频道切换指令时,指引所述客户端根据所述主流和所述辅流进行频道切换,为使得方法实施例不显得过于零散,此处不再展开,以免赘述。

在上述实施例的基础上,本发明实施例提供的频道切换服务器700中的处理器707具体用于:

采用视频编码标准对所述第一频道的直播码流进行编码生成主流;

采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成辅流。

具体的,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,则进一步的,所述在所述第一频道的直播码流中插入辅助帧生成辅流具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行依次插入。

其中,所述视频编码标准可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

为了使读者更清楚的理解本发明实施例中的“在所述第一频道的直播码流中插入辅助帧生成辅流”,此处先解释一个概念,即GOP(group of picture),GOP通常指一组包含多幅图像的视频序列,通常以可以独立解码的I帧开始,并且通常也仅包含1个I帧,下面为一个常见GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16帧,如果按照普通30帧/秒的视频规格,该GOP可以播放约0.53秒。由于视频序列中,I帧的体积非常大,通常是P帧和B帧的几倍甚至十几倍,有时为了降低视频序列的码率,会将GOP的长度拉长,可达数十帧,甚至120帧之多。

在上述实施例中提到的“在所述第一频道的直播码流中插入辅助帧生成辅流”中,会在一个分片中插入多个SAP,通常情况下即在一个GOP中插入多个可以独立解码的类似I帧(在本发明实施例中叫做切换I帧)作为SAP,主要作用就是将GOP内部解码依赖性降低,用户可以在当前GOP内部多个位置开始播放,而无需等待下一个GOP开始的I帧才能播放。

综上,由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延,并引入更小的切换时移。

在上述实施例的基础上,在本发明实施例提供的支持频道切换的服务器中:所述n个媒体文件中的每一个媒体文件均包含一个或多个GOP(group of picture画面组),其中,每一个GOP中包含两帧或两帧以上图像帧;

所述处理器具体用于:将所述切换I帧和所述切换P帧按预设密度依次插入,其中所述预设密度根据所述GOP的长度设置,所述GOP的长度由所述GOP所包含的图像帧的数目表征。

在上述所有实施例的基础上,可选的,所述第一频道的播放列表中包含所述主流的编码信息、所述辅流的编码信息、所述第一频道的ID号以及所述N个媒体文件集合中所包含的媒体文件的下载链接。

其中,所述编码信息中可以包含编码标准、音频交织信息,还可能包含字幕信息。

如图8所示,本发明提供的支持频道切换的终端实施例,一种支持频道切换的终端800,应用在OTT视频业务,可以包括:发送器801、接收器803、处理器805,

所述发送器801用于发出频道切换指令,并停止获取当前播放频道的媒体文件;

所述发送器801还用于向服务器发送请求,所述请求用于请求第一频道的播放列表,所述第一频道为所述频道切换指令指示的待切换至的新频道;

所述接收器803用于接收所述第一频道的播放列表;

所述处理器805用于据所述第一频道的播放列表和主流、辅流进行频道切换,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的。

其中,所述第一频道的频道信息可以包括频道标识,例如频道ID。

上述实施例提供的支持频道切换的终端800,通过接收第一频道的播放列表,并根据第一频道的播放列表和主流、辅流进行频道切换,其中主流和辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,其中主流用于直播,辅流则专门用于频道切换,由此使得发生频道切换时由专门的辅流指引进行,从而提高频道切换的效率。

在图8提供的实施例的基础上,进一步的,所述实施例还包括:所述第一频道的播放列表中包含主流的编码信息、辅流的编码信息、所述第一频道的ID号以及所述第一频道的直播码流中包含的N个媒体文件集合中的媒体文件的下载链接,所述N为大于或等于1的整数。

其中,所述处理器805具体用于:

根据所述第一频道的播放列表选择所述辅流中离所述频道切换指令的接收时刻最近的码流接入点;并根据所述第一频道的播放列表中的所述N个媒体文件集合所包含的媒体文件的下载链接,下载当前媒体文件中尚未播放的图像帧并播放所述图像帧,所述当前媒体文件为所述辅流中与所述最近的码流接入点一一对应的图像帧所在的媒体文件;直至所述当前媒体文件中的所有图像帧均播放完毕则切换到所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件进行播放。

其中,此处的“下载”可以指终端800下载到自己的缓存区域。

其中,此处的“当前媒体文件中尚未播放的图像帧”可以是一个媒体文件,也可以是一个媒体文件中的部分GOP,甚至可以是媒体文件中GOP的部分图像帧。

由于该实施例为频道切换提供了辅流,而不仅仅依赖于主流进行频道切换,我们知道,主流中一个媒体文件只有一个码流接入点用于接入,且主流的解码依赖性比较复杂,而该实现方法中提供的辅流为频道切换提供了另一种可能,使得发生频道切换时可以根据第一频道的播放列表选择辅流中离频道切换指令的接收时刻最近的码流接入点进行接入,由此减少了切换时延且引入更少的切换时移。

在图8提供的实施例的基础上,进一步的,所述处理器805还用于:

在所述下载当前媒体文件中尚未播放的图像帧之后,所述直至所述当前媒体文件中的所有图像帧均播放完毕之前,下载所述主流中与所述当前媒体文件一一对应的媒体文件的下一个媒体文件。

这样,在辅流播放完毕之前即开始下载主流中与当前媒体文件一一对应的媒体文件的下一个媒体文件,一旦当前媒体文件播放完成,就可以直接接入主流的下一个媒体文件开始播放,由此使得辅流和主流之间的切换无缝链接,减少切换时延。

在图8提供的实施例的终端800中,所述主流和所述辅流是采用不同编码方式对所述第一频道的直播码流分别进行编码得到的,具体包括:

所述主流为采用视频编码标准对所述第一频道的直播码流进行编码生成的;

所述辅流为采用视频编码标准对所述第一频道的直播码流进行编码,并在所述第一频道的直播码流中插入辅助帧生成的。

具体的,所述辅助帧包括:可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,则所述辅流为在所述第一频道的直播码流中插入辅助帧生成的具体包括:

在所述第一频道的直播码流所包含的N个媒体文件集合中的每一个媒体文件中,将所述切换I帧和所述切换P帧按预设密度依次插入;所述切换I帧和所述切换P帧用于为所述辅流提供多于所述主流的码流接入点。

需要说明的是,此处的依次插入是将切换I帧和切换P帧间隔插入的,且这种插入方式可以是均匀的插入,也可以不做均匀插入而按照其他规则进行依次插入。

其中,所述视频编码标准可以包括:H.263、H.264、H.265、MPEG1、MPEG2、MPEG4、AVS、REAL8、REAL9、VC1、VP6、VP8、DIVX3、MJPEG等。

为了使读者更清楚的理解本发明实施例中的“在所述第一频道的直播码流中插入辅助帧生成辅流”,此处先解释一个上面一直提到的概念,即GOP(group of picture),GOP通常指一组包含多幅图像的视频序列,通常以可以独立解码的I帧开始,并且通常也仅包含1个I帧,下面为一个常见GOP:

I P B B P B B P B B P B B P B B

上述GOP共包含16帧,如果按照普通30帧/秒的视频规格,该GOP可以播放约0.53秒。由于视频序列中,I帧的体积非常大,通常是P帧和B帧的几倍甚至十几倍,有时为了降低视频序列的码率,会将GOP的长度拉长,可达数十帧,甚至120帧之多。

在上述实施例中提到的“在所述第一频道的直播码流中插入辅助帧生成辅流”中,会在一个分片中插入多个SAP,通常情况下即在一个GOP中插入多个可以独立解码的类似I帧(在本发明实施例中叫做切换I帧)作为SAP,主要作用就是将GOP内部解码依赖性降低,用户可以在当前GOP内部多个位置开始播放,而无需等待下一个GOP开始的I帧才能播放。

综上,由于辅助帧包括可独立解码的切换I帧和依赖所述切换I帧解码的切换P帧,且切换I帧和切换P帧按照预设密度依次插入到直播码流中生成辅流,这样,这些切换I帧和切换P帧可以为频道切换提供多于主流的码流接入点,使得终端可以根据这些切换I帧和切换P帧即时的获取解码刷新的图像帧进行播放,从而使频道切换可以有更少的切换时延,并引入更小的切换时移。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1