一种实现流媒体直播的方法技术

技术编号:2846622 阅读:210 留言:0更新日期:2012-04-11 18:40
本发明专利技术利用Microsoft提供的Windows  Media  Format  SDK中的流媒体读写技术,获得各个直播输入源的采样数据,根据一定的系统筛选采样数据的策略,使每个时刻只能有一个直播输入源的采样数据被系统所采纳,然后修改筛选出来的采样数据的呈现时间,解决了将多个单独的直播输入源整合为一个连续播放的直播输出源的问题,人们得以按需自由地将所要欣赏的直播输入源组合为一个统一的直播输出源,给人们的流媒体欣赏带来更好的体验。

【技术实现步骤摘要】

本专利技术涉及Windows Media流媒体技术,尤其涉及一种将多个直播输入源整合为一个直播输出源的方法。
技术介绍
在流媒体技术中,可以在多个发布点(Publishing Point)上存在多个单独的直播源。媒体播放器可以分别播放各个单独的直播源,但不能将各个单独的直播源整合为一个输出源连续播放。对于多个直播源的情况,可以使用ASX(Advanced Stream Redirector)文件实现直播源信息的重定向。ASX文件是一个文本文件,包含了直播源对应发布点的URL(Uniform Resource Locator)。一个ASX文件可以包含多个URL,当使用媒体播放器打开ASX文件时,播放器会根据ASX文件中的信息用相应的协议去打开指定位置上的直播源。使用ASX文件这种方法时,媒体播放器会依次从头到尾去检查每一个URL,直到发现一个有效的URL。但是,利用ASX文件的方式每次只能播放一个直播源,当直播源出现异常或者直播源结束后媒体播放器不会自动跳转继续播放其它的直播源。如果每个直播源的播出和结束时间都比较固定,那么媒体播放器仍然每次只能播放一个直播源,除非由人操作媒体播放器再次打开ASX文件。因此存在着无法将多个单独的直播源整合为一个连续播放的直播输出源的问题。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种将多个单独的直播输入源整合为一个连续播放的直播输出源的方法。为达到上述目的,本专利技术的技术方案具体是这样实现的,该方法包括以下步骤a、连接直播输入源并获得直播输入源的信息,并指定需要进行采样的媒体流;b、对直播输入源进行数据采样并根据一定的系统筛选决策方案选出合适的采样数据;c、对采样数据的信息进行修改,使不同输入源的采样数据能够有效的衔接起来,形成一个连续的直播输出源。所述步骤a中通过创建读接口对象并调用其函数连接直播输入源,直播输入源的信息包括直播输入源包含的媒体流的数量以及媒体流的编号,根据媒体流的编号可以指定需要进行采样的媒体流。所述步骤b中对直播输入源进行数据采样并对采样数据进行分片处理,得到采样数据片的媒体内容、呈现时间和持续时间。所述步骤b中系统筛选决策方案包括基于时间顺序的决策方案和基于优先级的决策方案。基于时间顺序的决策方案为将一个特定的时间周期划分为若干的时间段,每个直播输入源对应一个时间段,系统就根据当前时间来决定选择哪个直播输入源的采样。存在一个特殊并且可靠的直播输入源,用于弥补空白时间的采样数据。所述基于优先级的决策方案为为每个直播输入源指定一个特定并且唯一的优先级,系统根据优先级的顺序选择优先级相对高的直播输入源的采样数据推送到直播输出源。存在一个优先级最低的直播输入源,用于弥补高优先级直播输入源出现异常或中断时的采样数据。步骤c中对采样数据片的呈现时间进行修改,并且保证呈现时间的逐渐递增,使不同输入源的采样数据有效的衔接起来,形成一个连续的直播输出源。所述步骤a之前还包括创建一个检测工作线程,按照一定的时间间隔去检测各个直播输入源是否已经启动,如果直播输入源已经启动,则停止检测;否则继续定时对各个直播输入源进行检测。所述创建检测工作线程之前,还编辑系统配置文件,通知系统直播输入源的数目以及每个直播输入源所对应的发布点,并选择合适的系统筛选采样数据的决策方案。由上述技术方案可见,本专利技术利用Windows Media流媒体的读写技术,获得各个直播输入源的采样数据,根据一定的系统筛选采样数据的策略,使每个时刻只能有一个直播输入源的采样数据被系统所采纳,然后修改筛选出来的采样数据的呈现时间,解决了将多个单独的直播源整合为一个连续播放的直播输出源的问题,人们得以按需自由地将所要欣赏的直播输入源组合为一个统一的直播输出源,给人们的流媒体欣赏带来更好的体验。附图说明图1为本专利技术实现流媒体直播方法的示意图;图2为本专利技术实现流媒体直播方法的流程图。具体实施例方式为了解决目前媒体播放器无法连续播放多个发布点上的单独的直播输入源的问题,本专利技术提出了一种利用Windows Media的流读写技术,实现将多个单独的直播输入源整合为一个连续播放的直播输出源的方法及系统。以下参照附图并结合具体实施例,对本专利技术进一步详细说明。如图1所示,每个直播输入源对应一个读接口对象,系统通过WindowsMedia Format SDK提供的读接口对象从各个发布点获得直播输入源的采样(sample)数据,将每个直播输入源的采样数据分解成无数个离散的采样数据片,并且得到每个“采样数据片”的媒体数据、呈现时间(Presentation Time)和持续时间(Duration)。根据一定的系统筛选采样数据的策略,使每个时刻只能有一个直播输入源的采样数据被系统所采纳。系统利用WindowsMedia Format SDK提供的写接口对象,根据呈现时间和持续时间的关系,修改筛选出来的采样数据的呈现时间,并且保证呈现时间的逐渐递增,就使得不同输入源的采样数据经过系统的整合,能够有效的衔接起来,然后推送直播输出源对应的发布点形成一个稳定连续的直播输出源。以下以Windows Media Server上的发布点为例,结合图2详细说明本专利技术的实现过程,假设本例中所有的直播输入源的属性和编码方式都相同步骤101、编辑系统配置文件,通知系统需要整合的播输入源的数目以及每个直播输入源所对应的发布点,并选择合适的系统筛选采样数据的决策方案。步骤102、启动系统创建一个检测工作线程,按照一定的时间间隔去检测各个直播输入源是否已经启动,如果直播输入源已经启动,则停止检测;否则继续定时对各个直播输入源进行检测。步骤103、连接直播输入源并获得直播输入源的信息,并指定需要进行采样的媒体流。对检测到已经启动的直播输入源,通过调用WMCreateReader函数创建一个类型为IWMReader的读接口对象,通过调用读接口对象的QueryInterface函数,得到IWMReaderAdvanced接口对象。调用IWMReade对象的Open函数连接直播输入源,同时通过Open函数的第二个参数指定IWMStatusCallback回调接口指针,用于获得直播输入源的状态信息。当直播输入源成功连接后,系统会调用IWMStatusCallback接口的OnStatus回调函数,通知哪个直播输入源已经连接成功。调用IWMReaderAdvanced接口对象的SetManualStreamSelection函数,参数为TURE,表示获取直播输入源的所有媒体流。通过调用读接口对象的QueryInterface函数,得到IWMProfile对象。调用IWMProfile对象的GetStreamCount函数,获得直播输入源包含的媒体流的数量。通过循环调用的方式,通过IWMProfile对象的GetStream函数,得到每一个媒体流的IWMStreamConfig接口对象,再调用IWMStreamConfig对象的GetStreamNumber函数,获得媒体流的编号。然后调用IWMReaderAdvanced对象的SetReceiveStreamSamples函数,将媒体流编号作为第一个参数,TURE作为第二个参数,表示该媒体流将以压缩的形式通本文档来自技高网...

【技术保护点】
一种实现流媒体直播的方法,其特征在于,该方法包括以下步骤:a、连接直播输入源并获得直播输入源的信息,并指定需要进行采样的媒体流;b、对直播输入源进行数据采样并根据预定的系统筛选决策方案选出合适的采样数据;c、对采样数 据的信息进行修改,使不同输入源的采样数据能够有效的衔接起来,形成一个连续的直播输出源。

【技术特征摘要】
1.一种实现流媒体直播的方法,其特征在于,该方法包括以下步骤a、连接直播输入源并获得直播输入源的信息,并指定需要进行采样的媒体流;b、对直播输入源进行数据采样并根据预定的系统筛选决策方案选出合适的采样数据;c、对采样数据的信息进行修改,使不同输入源的采样数据能够有效的衔接起来,形成一个连续的直播输出源。2.根据权利要求1所述实现流媒体直播的方法,其特征在于,步骤a中通过创建读接口对象并调用其函数连接直播输入源,直播输入源的信息包括直播输入源包含的媒体流的数量以及媒体流的编号,根据媒体流的编号可以指定需要进行采样的媒体流。3.根据权利要求1所述实现流媒体直播的方法,其特征在于,步骤b中对直播输入源进行数据采样并对采样数据进行分片处理,得到采样数据片的呈现时间。4.根据权利要求1所述实现流媒体直播的方法,其特征在于,步骤b中所述系统筛选决策方案包括基于时间顺序的决策方案和基于优先级的决策方案。5.根据权利要求4所述实现流媒体直播的方法,其特征在于,基于时间顺序的决策方案为将一个特定的时间周期划分为若干的时间段,每个直播输入源对应一个时间段,系统就根据当前时间来决定选择哪个直播输入源的采样。6.根据权利要求4所述实现流媒体直播的方法,其...

【专利技术属性】
技术研发人员:杨滨
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1