专利名称:节目源切换方法及流媒体播放系统的制作方法
技术领域:
本发明涉及流媒体播放,尤其涉及一种节目源切换方法及相应的流媒体播 放系统。
背景技术:
网络流媒体播放属于最近新兴发展起来的技术,特别是P2P( Peer To Peer) 流媒体技术,能通过Internet实时传播音视频节目。在节目播放过程中还可以 根据赞助商需求等插播广告、片花等其他音视频媒体流,实现节目源切换。
现有技术中,需要进行节目源切换时,直接从当前播放的节目源切换到目 标节目源,当两个节目源的码率不相同时,通知接收端修改本地播放器的码率 设置,以适应节目源的码率变化。
由于现有技术在进行节目源切换时,先直接停止当前播放的节目源,再播 放切换后目标节目源的流媒体数据,而启动播放目标节目源的流媒体数据需要 一定的时间,因此,将造成切换期间一定时长的黑屏期,使得节目不连贯。另 外,现有技术中在进行节目源切换时没有对切换前的当前节目源与切换后的目 标节目源进行码率适配,切换间隙存在画面失真,且需要另外通知接收端进行 码率变换,因而增加了网络中传送的数据量,增大了网络流量开销。
发明内容
本发明提供一种节目源切换方法及流媒体播放系统,用以解决现有技术中 存在的进行节目源切换时黑屏时间较长的问题;以及当切换前后的节目源码率 不相同时,需要另外通知接收端进行码率变换导致增加网络流量开销的问题。
本发明方法包括
向流媒体4番i文系统发送从当前第一节目源切换到目标第二节目源的节目
源切换指令;
所述流媒体播放系统接收到所迷节目源切换指令后,继续采集并播放所述
第一节目源的流媒体数据,并启动采集所述第二节目源的流媒体数据;
当获取到第二节目源的有效数据后,停止采集所述第一节目源的流媒体数
据,同时启动播放所述第二节目源的流媒体数据,实现从第一节目源切换到第
二节目源。
根据本发明的上述方法,还包括
获取所述第一节目源和第二节目源的对应码率,并比较两个节目源码率的 大小;
当两者相同时,直接启动播放采集到的所述第二节目源的流媒体数据; 当两者不同时,先对从所述第二节目源采集的流媒体数据进行解码处理, 再采用所述第一节目源对应码率的编码参数对解码后的第二节目源的流媒体
数据进行再编码;当获取到再编码后的第二节目源的流媒体数据时,停止采集
所述第一节目源的流媒体数据,同时启动播放所述第二节目源的再编码后的流 媒体数据。
根据本发明的上述方法,还包括緩存所述第二节目源再编码后的流媒体 数据,并通知所述流媒体播放系统中的播放执行模块,将緩存的流媒体数据推 送给所述播放执行模块;
所述播放执行模块接收到通知消息后,停止播放所述第一节目源的流媒体 数据,接收推送过来的第二节目源的流媒体数据并播放。
根据本发明的上述方法,还包括
中止播放所述第一节目源的流媒体数据时,记录所述第一节目源的播放进 度或时间戳,当需要切换回所述第一节目源时,再根据记录的第一节目源的播 放进度或时间戳从中止点处继续播放。
所迷向流媒体播放系统发送从当前第一节目源切换到目标第二节目源的
节目源切换指令,具体包括
通过手动方式向所述流^ 某体播放系统发送节目源切换指令;或者
预先设定按时间顺序切换的节目源切换列表,当切换时刻到达时,由一逻 辑实体或物理实体自动向所述流媒体播放系统发送节目源切换指令。
本发明另提供一种流i某体播放系统,包括
指令解析模块,用于接收并解析从当前第一节目源切换到目标第二节目源 的节目源切换指令;确定出切换后的第二节目源,通知给播放执行模块;
播放执行模块,用于接收采集模块采集的流媒体数据并播放;当接收到指 令解析模块发送的节目源切换通知后,转发给采集模块;
采集模块,用于采集节目源的流媒体数据;当接收到所述节目源切换指令 后,继续采集所述第一节目源的流媒体数据并发送给所述播放执行模块进行播 放;同时启动采集所述第二节目源的流媒体数据发送给播放执行模块,当所述 播放执行模块播放所述第二节目源的流媒体数据后停止采集所述第一节目源 的流媒体数据。
还包括码率比较模块和二次编解码模块;
码率比较模块,用于获取所述第一节目源和第二节目源的对应码率,并比 较两个节目源码率的大小;当两者相同时,发送第一指令给所述采集模块;当 两者不同时,发送第二指令给所述采集模块,并将所述第一节目源的码率信息 通知给所述二次编解码^t块;
所述采集模块接收到所述第一指令后,将采集的第二节目源的流媒体数据 直接发送到所述播放执行模块;当接收到所述第二指令后,将采集的第二节目 源的流媒体数据发送到所述二次编解码模块;
二次编解码模块,用于对接收的所述第二节目源的流媒体数据进行解码处 理,再采用所述第一节目源对应码率的编码参数对解码后的第二节目源的流媒 体数据进行再编码,并将再编码后的第二节目源的流媒体数据发送给所述播放 执行模块。
所述采集模块包括
数据采集子模块,用于采集节目源的流媒体数据;
第一指令执行子模块,用于接收并解析所述第一指令,将采集的第二节目
源的流媒体数据发送到所述播放执行模块;
第二指令执行子模块,用于接收并解析所述第二指令,将采集的第二节目 源的流媒体数据发送到所述二次编解码模块。
还包括
数据緩冲池,连接在所述二次编解码模块和所述播放执行模块之间;用于 緩存所述二次编解码;漠块再编码后的第二节目源的流^ 某体数据,并通知所述播 放执行模块,将緩存的流媒体数据推送给所述播放执行模块;
所述播放执行模块接收到通知消息后,停止播放所述第一节目源的流媒体 数据,接收推送过来的第二节目源的流媒体数据并播放。
所述播放执行模块中包括有记录子模块,用于记录被中止播放的所述第一 节目源的播放进度或时间戳,当需要切换回所述第一节目源时,再根据记录的 第一节目源的播放进度或时间戳从中止点处继续播放。
本发明有益效果如下
(l)采用本发明,流媒体播放系统接收到节目源切换指令后,继续采集 并播放切换前的当前第一节目源的流々某体数据,并启动采集切换后第二节目源 的流媒体数据;当已采集到第二节目源的有效数据后,再停止采集第 一节目源 的流媒体数据,同时启动播放第二节目源的流媒体数据,实现从第一节目源切 换到第二节目源。也就是iJL,本发明在进行节目源切换时,先继续播放当前节 目源的流媒体数据,直到第二节目源的流媒体数据已准备好可以立即进行播放 时,再启动播放第二节目源的流媒体数据,从而达到减少黑屏期时长。
2、在本发明提供的方法中,在流媒体播放侧先获取切换前第一节目源和 切换后的第二节目源的对应码率,并比较两个节目源码率的大小;当两者不同 时,先对从第二节目源采集的流媒体数据进行解码处理,再采用第一节目源对
应码率的编码参凄t对解码后的第二节目源的流4某体凄史据进4亍再编码;Y吏得第二 节目源的码率与第一节目源码率一致,因而不需要另外通知接收端进行码率变 换,解决了切换间隙存在的画面失真问题,且克服了现有技术中由于切换前后 节目源码率不同而需要通知接收端进行码率变换导致增大网络流量开销的问题。
图1为本发明提供的节目源切换方法实施例流程图; 图2为本发明提供的流媒体播放系统结构示意图3A、图3B分别为现有技术节目源切换和本发明方法节目源切换的信号 示意图。
具体实施例方式
参见图1,为本发明提供的节目源切换方法实施例流程图,包括如下具体 步骤
步骤S101、向流媒体播放系统发送从当前第一节目源切换到目标第二节目 源的节目源切换指令;
步骤S102、流媒体播放系统接收到节目源切换指令后,继续采集并播放第 一节目源的流媒体数据,并启动采集第二节目源的流媒体数据;
步骤S103、获取并比较第一节目源和第二节目源的对应码率,判断两者是 否相同;如果相同,则执行步骤S104;如果两者不相同,则转至步骤S105;
步骤S104、直接启动播放已采集到的第二节目源的流士某体数据,停止采集 所述第一节目源的流媒体数据,实现从第一节目源切换到第二节目源;
步骤S105、对从第二节目源采集的流媒体数据进行解码处理;
步骤S106、再采用第一节目源对应码率的编码参数对解码后的第二节目源 的流媒体数据进行再编码;
步骤S107、获取到再编码后的第二节目源的流^某体数据时,停止采集所述 第一节目源的流媒体数据,同时启动播放第二节目源的再编码后的流媒体数 据,实现从第一节目源切换到第二节目源。
本发明提供的流媒体播放系统结构示意图如图2所示,包括 指令解析模块11,用于接收并解析从当前第一节目源切换到目标第二节目
源的节目源切换指令;确定出切换后的第二节目源,通知给播放执行模块12;
播放执行模块12,用于接收采集模块13采集的流媒体数据并播放;当接 收到指令解析模块11发送的节目源切换通知后,转发给采集模块13;
采集模块13,用于采集节目源的流媒体数据;当接收到节目源切换指令后, 继续采集切换前的第一节目源的流媒体数据并发送给播放执行模块12进行播 放;同时启动采集第二节目源的流媒体数据;
码率比较模块14,用于获取第一节目源和第二节目源的对应码率,并比较 两个节目源码率的大小;当两者相同时,发送第一指令给所述采集模块13,采 集模块13接收到第一指令后,将采集的第二节目源的流媒体数据直接发送到 播放执行模块12;
当码率比较模块14判断出切换前后两个节目源的码率不相同时,发送第 二指令给所述釆集模块13,集模块13接收到第二指令后,将采集的第二节目 源的流媒体数据发送到二次编解码模块15;码率比较模块14还将第一节目源 的码率信息通知给二次编解码模块15;
二次编解码模块15,对接收的第二节目源的流媒体数据进行解码处理,再 采用第一节目源对应码率的编码参数对解码后的第二节目源的流媒体数据进 行再编码,并将再编码后的第二节目源的流媒体数据发送给播放执行模块12 进行播放。
另外,在二次编解码模块15和播放执行模块12之间还可以连接一个数据 緩冲池16;用于緩存二次编解码模块15再编码后的第二节目源的流媒体数据, 当数据緩沖池16检测到本地存储有数据时,通知播放执行模块12,并将緩存 的流i某体数据推送给播放执行模块12;播放执行模块12接收到通知消息后, 停止播放第一节目源的流媒体数据,接收推送过来的第二节目源的流媒体数据
并播放。
其中采集模块13具体包括
数据采集子模块,用于采集节目源的流媒体数据;
第一指令执行子模块,用于接收并解析所述第一指令,将采集的第二节目 源的流媒体数据发送到播放执行模块12;
第二指令执行子模块,用于接收并解析所述第二指令,将采集的第二节目 源的流々某体数据发送到二次编解码模块15。
上述第一节目源和第二节目源之间的切换,是泛指前后两个节目源之间的 切换,并非限定只能在两个节目源之间进行切换。
下面用 一个具体的使用场景来描述本发明提供的流媒体播放系统如何实 现节目源切换。
假设当前流媒体播放系统正在网络上播放一部电影,提供该部电影的播放 源对应本发明上述第一节目源;根据运营商的要求,需要在电影的播放过程中 插播广告,提供广告的播放源对应本发明上述第二节目源。具体切换过程如下
1) 当设定的插播广告时刻到达,通过工作人员手动方式向流媒体播放系 统发送节目源切换指令;节目源切换指令具体发送方式可以采用现有技术中的 各种实现方式,例如通过开启一个人机界面,点击切换菜单,选择切换目标 节目源等;也可以不用人工干预,预先设定按时间顺序切换的节目源切换列表, 当切换时刻到达时,由 一逻辑实体或物理实体自动向流々某体播放系统发送节目 源切换指令。
2) 指令解析^^莫块11接收并解析当前切换指令,确定出切换后的广告节目 源,通知给播放执行模块12需要将当前电影节目切换到相应的广告播放。
3 )播放执行模块12将切换指令转发给釆集模块13。
4)采集模块13接收到节目源切换指令后, 一方面继续采集当前的电影节
目源的流媒体数据并发送给播放执行模块12进行播放;同时启动采集广告节
目源的流媒体数据;
在两个节目源的流媒体数据同时采集过程中,码率比较模块14获取两个 节目源的对应码率信息,并比较两个节目源码率的大小;当两者相同时,发送 第一指令给采集模块13,当两者不相同时,发送第二指令给所述采集模块13;
采集模块13根据接收到的不同指令,进行不同处理
a)如果接收到码率比较模块14发送的第一指令,则将采集的广告节目源 的流媒体数据直接发送到播放执行模块12;并同时停止采集电影节目源数据;
b )如果接收到码率比较模块14发送的第二指令,则将采集的广告节目源 的流媒体数据发送到二次编解码模块15,且继续采集并发送电影节目源数据给 播放执行模块12进行播放。
5 )播放执行模块12接收到采集模块13采集的广告节目源的流媒体数据 时,停止播放电影节目,启动播放广告;否则,继续播放电影节目。
6) 二次编解码模块15接收到采集模块13发送的广告节目源流媒体数据 时,先进行解码处理,再采用码率比较模块14通知的电影节目源对应码率的 编码参数对解码后的广告流々某体数据进行再编码,并发送给数据緩冲池16。
7) 数据緩冲池16緩存二次编解码模块15再编码后的广告流媒体数据, 并通知给播放执行模块12,同时将本地緩存的流媒体数据推送给播放执行模块 12。
8) 播放执行模块12接收到数据緩沖池16发送的通知消息后,停止播放 电影节目源的流i某体数据,同时通知采集模块停止采集电影节目源数据,接收 数据緩冲池16推送过来的广告流媒体数据并播放。
9 )播放执行模块12在停止播放电影节目时,记录电影节目源的播放进度 或时间戳,当广告节目播放完毕后,再根据记录的电影节目源的播放进度或时 间戳自动切换回电影节目源继续从中止点处播放电影节目。
综上所述,本发明在进行节目源切换时,先继续播放当前节目源的流媒体
数据,直到第二节目源的流媒体数据已准备好可以立即进行播放时,再启动播 放第二节目源的流^某体数据,从而达到减少黑屏期时长。如图3A所示,为采 用现有技术的节目源切换方法时,切换前的节目播放和切换后的节目播放之间
存在一个黑屏期,时长为厶T;
△ T=t2-ti
上式中,t2为切换后的第二节目源流媒体数据启动播放时刻;t,为切换对 应时刻,采用现有技术方法时t,即为第一节目源流々某体数据停止播放时刻。
黑屏期时长△ T,由数据采集模块从接收到切换指令至采集到并按照正确 码率进行编码后将数据推送至緩冲池所花费时间间隔、切换前节目源码率、切 换后节目源码率以及传送流々某体数据的网络有效带宽等因素决定。
而采用本发明方法,当接收到切换指令时(t,时刻),并不立即停止播放第 一节目源的流媒体数据,而是继续播放当前第一节目源的流媒体数据,并同时 采集第二节目源的流媒体数据,直到第二节目源的流媒体数据已准备好可以进 行播放时(t2时刻)再启动播放第二节目源的流媒体数据,并同时停止播放第 一节目源的流媒体数据,也就是说,第一节目源的流媒体数据停止播放和第二 节目源的流々某体数据启动播放几乎在同一个时刻(t2时刻)发生,从而减少了 黑屏时长,如图3B所示。
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种节目源切换方法,应用于流媒体播放,其特征在于,包括向流媒体播放系统发送从当前第一节目源切换到目标第二节目源的节目源切换指令;所述流媒体播放系统接收到所述节目源切换指令后,继续采集并播放所述第一节目源的流媒体数据,并启动采集所述第二节目源的流媒体数据;当获取到第二节目源的有效数据后,停止采集所述第一节目源的流媒体数据,同时启动播放所述第二节目源的流媒体数据,实现从第一节目源切换到第二节目源。
2、 如权利要求l所述的方法,其特征在于,还包括 获取所述第一节目源和第二节目源的对应码率,并比较两个节目源码率的大小;当两者相同时,直接启动播放采集到的所述第二节目源的流媒体数据; 当两者不同时,先对从所述第二节目源采集的流媒体数据进行解码处理, 再采用所述第一节目源对应码率的编码参数对解码后的第二节目源的流媒体 数据进行再编码;当获取到再编码后的第二节目源的流媒体数据时,停止采集 所述第一节目源的流媒体数据,同时启动播放所述第二节目源的再编码后的流 媒体数据。
3、 如权利要求2所述的方法,其特征在于,还包括緩存所述第二节目 源再编码后的流媒体数据,并通知所述流媒体播放系统中的播放执行模块,将 緩存的流媒体数据推送给所述播放执行模块;所述播放执行模块接收到通知消息后,停止播放所述第一节目源的流媒体 数据,接收推送过来的第二节目源的流媒体数据并播放。
4、 如权利要求3所述的方法,其特征在于,还包括 中止播放所述第一节目源的流媒体数据时,记录所述第一节目源的播放进度或时间戳,当需要切换回所述第一节目源时,再根据记录的第一节目源的播放进度或时间戳从中止点处继续播放。
5、 如权利要求1所述的方法,其特征在于,所述向流媒体播放系统发送从当前第一节目源切换到目标笫二节目源的节目源切换指令,具体包括 通过手动方式向所述流媒体播放系统发送节目源切换指令;或者预先设定按时间顺序切换的节目源切换列表,当切换时刻到达时,由一逻 辑实体或物理实体自动向所述流々某体播放系统发送节目源切换指令。
6、 一种流々某体播放系统,其特征在于,包括指令解析模块,用于接收并解析从当前第一节目源切换到目标第二节目源 的节目源切换指令;确定出切换后的第二节目源,通知给播放执行模块;播放执行模块,用于接收采集模块采集的流媒体数据并播放;当接收到指 令解析模块发送的节目源切换通知后,转发给采集模块;采集模块,用于采集节目源的流媒体数据;当接收到所述节目源切换指令 后,继续采集所述第一节目源的流媒体数据并发送给所述播放执行模块进行播 放;同时启动采集所述第二节目源的流媒体数据发送给播放执行模块,当所述 播放执行模块播放所述第二节目源的流媒体数据后停止采集所述第一节目源 的流媒体数据。
7、 如权利要求6所述的系统,其特征在于,还包括码率比较模块和二 次编解码模块;码率比较模块,用于获取所述第一节目源和第二节目源的对应码率,并比 较两个节目源码率的大小;当两者相同时,发送第一指令给所述采集模块;当 两者不同时,发送第二指令给所述采集模块,并将所述第一节目源的码率信息 通知给所述二次编解码4莫块;所述采集模块接收到所述第一指令后,将采集的第二节目源的流媒体数据 直接发送到所述播放执行模块;当接收到所迷第二指令后,将采集的第二节目 源的流媒体数据发送到所述二次编解码模块;二次编解码模块,用于对接收的所述第二节目源的流々某体数据进行解码处理,再采用所述第一节目源对应码率的编码参数对解码后的第二节目源的流媒 体数据进行再编码,并将再编码后的第二节目源的流媒体数据发送给所述播放 执行模块。
8、 如权利要求7所述的系统,其特征在于,所述采集模块包括 数据采集子模块,用于采集节目源的流媒体数据; 第一指令执行子模块,用于接收并解析所述第一指令,将采集的第二节目源的流媒体数据发送到所述播放执行模块;第二指令执行子it块,用于接收并解析所述第二指令,将采集的第二节目 源的流媒体数据发送到所述二次编解码模块。
9、 如权利要求7所述的系统,其特征在于,还包括数据緩冲池,连接在所迷二次编解码模块和所述播放执行模块之间;用于 緩存所述二次编解码模块再编码后的第二节目源的流媒体数据,并通知所述播 放执行模块,将緩存的流媒体数据推送给所述播放执行模块;所述播放执行模块接收到通知消息后,停止播放所述第一节目源的流媒体 数据,接收推送过来的第二节目源的流媒体数据并播放。
10、 如权利要求9所述的系统,其特征在于,所述播放执行模块中包括有 记录子模块,用于记录被中止播放的所述第一节目源的播放进度或时间戳,当 需要切换回所述第一节目源时,再根据记录的第一节目源的播放进度或时间戳 从中止点处继续播放。
全文摘要
本发明公开了一种节目源切换方法,应用于流媒体播放,包括向流媒体播放系统发送从当前第一节目源切换到目标第二节目源的节目源切换指令;所述流媒体播放系统接收到所述节目源切换指令后,继续采集并播放所述第一节目源的流媒体数据,并启动采集所述第二节目源的流媒体数据;当获取到第二节目源的有效数据后,停止采集所述第一节目源的流媒体数据,同时启动播放所述第二节目源的流媒体数据,实现从第一节目源切换到第二节目源。本发明还公开了相应的流媒体播放系统。采用本发明能实现在节目源切换过程中无黑屏期,且当切换前后节目源码率不同时,对流媒体数据进行二次编码处理,不需要通过网络通知接收端进行码率变换。
文档编号H04N7/173GK101179700SQ20061016746
公开日2008年5月14日 申请日期2006年12月20日 优先权日2006年12月20日
发明者刘一兰, 龚云华 申请人:腾讯科技(深圳)有限公司