发明内容
有鉴于此,本发明的主要目的在于提供一种实现流媒体模拟直播的方法,能够对流媒体模拟直播进行控制,提高流媒体模拟直播的灵活性。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种实现流媒体模拟直播的方法,该方法包括以下步骤:
A.设置模拟直播的基本属性,从已发布的媒体文件和/或直播源中选择编排模拟直播的节目信息;
B.内容管理系统CMS根据所述基本属性和节目信息,生成模拟直播信息并存储;
C.流媒体服务器接收到来自所述CMS的模拟直播启动请求后,解析从所述CMS中获取的模拟直播信息,生成播放给用户的播放信息,同时向预先设置的地址和端口发送模拟直播流。
步骤B中,该方法还包括:
B 1.内容提供商/服务提供商CP/SP通过所述CMS向所述流媒体服务器发送模拟直播创建请求;
B2.所述流媒体服务器从所述CMS上获取模拟直播信息。
步骤B2之后,该方法还包括:所述流媒体服务器通过所述CMS向所述CP/SP发送模拟直播创建响应。
步骤A中,该方法还包括:所述CMS编排模拟直播的节目信息时,对编排的节目信息进行正确性检查;
所述正确性检查的方法为:若所述所有节目的编码方式、码率相同,且节目播放时间位于模拟直播频道每天开始播放时间和结束播放时间之间,则所述编排的节目信息为正确的节目信息。
步骤B中所述模拟直播信息为同步多媒体合成语言SMIL文件;
所述生成模拟直播信息的方法为:按照SMIL协议,生成包含所述流媒体模拟直播的基本属性和节目信息的SMIL文件。
步骤C中,所述模拟直播启动请求中携带有统一资源定位器URL,所述URL中携带有需要访问的SMIL文件的文件名和路径;所述播放信息为会话描述协议SDP文件;
所述生成播放给用户的播放信息的方法为:
C1.所述流媒体服务器根据所述模拟直播启动请求,获得要访问的SMIL文件的文件名和路径,并按照所述路径到指定位置获得需要的SMIL文件;
C2.所述流媒体服务器解析获得的SMIL文件,读取所述SMIL文件中的基本属性组成SDP文件。
步骤C中所述向预先设置的地址和端口发送模拟直播流的方法为:所述流媒体服务器根据所述SDP文件,将预先编排好的节目信息播放到所述基本属性中设置的主用模拟直播服务器;
该方法还包括:所述主用模拟直播服务器将接收到的所述节目信息转发给用户。
所述主用模拟直播服务器为无线网络控制器RNC。
步骤C2中的基本属性包括:视音频编码格式和码率。
所述基本属性包括:模拟直播编号、模拟直播名称、编码方式、传输码率、直播方式、模拟直播的开始播放时间和停止播放时间、主用模拟直播服务器,以及主用模拟直播服务器相关配置。
所述模拟直播名称包括:中文名称和/或英文名称;
所述编码方式为:活动图像专家组MPEG-4标准,或H.264标准,或MPEG-2标准,或其它编码方式;
所述直播方式为单播或组播;
所述主用模拟直播服务器相关配置包括:IP地址和端口号。
所述基本属性还包括:备用模拟直播服务器,及备用模拟直播服务器相关配置。
所述节目信息包括:表示当前的节目信息是否为轮播的轮播标识、用于指定节目列表播放的时间的节目列表日期、节目开始播放时间、节目标识、节目名称,以及节目播放路径。
所述轮播标识显示为非轮播时,所述节目开始播放时间用于表示一天中节目开始播放的绝对时间;
所述节目名称包括:中文名称和/或英文名称。
所述节目信息还包括:轮播次数、节目片断起始时间,以及节目播放时长。
该方法还包括:
a1.CP/SP通过所述CMS向所述流媒体服务器发送模拟直播更新请求;
b1.所述流媒体服务器从CMS上获取模拟直播信息。
步骤b1之后,该方法还包括:所述流媒体服务器通过所述CMS向所述CP/SP发送模拟直播更新响应。
该方法还包括:
a2.CP/SP通过所述CMS向所述流媒体服务器发送模拟直播停止请求;
b2.所述流媒体服务器停止根据所述模拟直播停止请求中指定的流媒体直播。
步骤b2中,所述停止流媒体直播之前,该方法还包括:所述流媒体服务器关闭当前接收指定停止的流媒体的用户服务。
步骤b2之后,该方法还包括:所述流媒体服务器通过所述CMS向所述CP/SP返回流媒体直播停止响应。
该方法还包括:
a3.CP/SP通过所述CMS向所述流媒体服务器发送模拟直播删除请求;
b3.所述流媒体服务器停止根据所述模拟直播删除请求中指定的流媒体直播;
c3.所述流媒体服务器删除已被停止播放的流媒体模拟直播对应的模拟直播信息和播放信息。
步骤b3中,所述停止流媒体直播之前,该方法还包括:所述流媒体服务器关闭当前接收指定停止的流媒体的用户服务。
步骤b3之后,该方法还包括:所述流媒体服务器通过所述CMS向所述CP/SP返回流媒体直播删除响应。
所述模拟直播停止/删除请求中通过携带包含SMIL文件的文件名和路径的URL,用于指定停止的流媒体直播。
该方法还包括:
a4.CP/SP通过所述CMS向所述流媒体服务器发送实时插入内容请求;
b4.所述流媒体服务器对所述实时插入内容请求中指定的实时插入的内容进行合法性验证,若验证合法,则向所述CP/SP返回显示为成功的实时插入内容响应,并执行步骤c4;若验证不合法,则向CP/SP返回显示为失败的实时插入内容响应,并结束本流程;
c4.所述流媒体服务器停止当前模拟直播,向接收所述被停止模拟直播的用户发送插入的内容。
步骤c4之后,该方法还包括:所述流媒体服务器检测到插入的内容播放完成时,恢复被停止的所述模拟直播的播放。
所述恢复被停止的模拟直播的播放时,从停止时间加上实时插入的内容所消耗的时间的时间位置开始向用户播放媒体数据。
所述实时插入内容请求中携带插入内容的基本属性;
所述插入内容为媒体文件,或直播流。
所述插入内容为手机电视业务中的视频广告。
该方法还包括:
a5.所述流媒体服务器接收到来自用户的点播流媒体直播请求后,向流媒体系统中的已有认证服务器发送认证请求;
b5.所述认证服务器判断用户是否已订购点播的内容对应的业务,若已定购,则向用户返回显示为成功的用户认证响应,执行步骤c5;若未定购,则向用户返回显示为失败的用户认证响应,结束本流程;
c5.所述流媒体服务器读取点播流媒体直播请求中指定的媒体文件数据或直播流,并转发给用户。
步骤c5中,所述流媒体服务器读取媒体文件数据或直播流之前,该方法还包括:所述流媒体服务器需要启动媒体数据发送流程。
所述点播流媒体直播请求中携带插入内容的基本属性;
所述点播的内容为媒体文件,或直播流。
由上述技术方案可见,在小区多播CMB业务中,本发明通过内容管理系统设置模拟直播的基本属性,从已发布的媒体文件和/或直播源中选择编排模拟直播的节目信息,内容管理系统根据所述基本属性和节目信息,生成模拟直播信息并存储;流媒体服务器接收到来自内容管理系统的模拟直播启动请求后,对从内容管理系统中获取的模拟直播信息解析后,生成播放给用户的播放信息并存储,同时向预先设置的地址和端口发送模拟直播流。
在本发明方法之前,可进一步包括:内容提供商/服务提供商通过内容管理系统向流媒体服务器发起模拟直播创建请求,也就是向流媒体服务器发布CMS中通过正确性检查的模拟直播信息,比如同步多媒体合成语言(SIML)文件。
除此之外,在流媒体模拟直播播放期间,内容提供商/服务提供商可以通过内容管理系统向流媒体服务器发起更新、停止、删除流媒体、也可以插入播放新内容等请求,流媒体服务器还可以接受来自用户的点播请求,流媒体0服务器针对不同的请求作出相应控制,或更新、或停止、或删除指定的流媒体、或停止当前播放的流媒体模拟直播而插入请求的新内容、或向用户播放其点播的流媒体数据。
本发明方法中,流媒体服务器对流媒体模拟直播进行了多方面的控制,增强了流媒体模拟直播的灵活性,提高了运营管理效率。特别地,运营商可以通过插入新内容方法如在手机电视业务中插入视频广告等,为运营商创造了新的商业模式和收益。
具体实施方式
本发明的核心思想是:通过内容管理系统设置模拟直播的基本属性,从已发布的媒体文件和/或直播源中选择编排模拟直播的节目信息,内容管理系统根据所述基本属性和节目信息,生成模拟直播信息并存储;流媒体服务器接收到来自内容管理系统的模拟直播启动请求后,对从内容管理系统中获取的模拟直播信息解析后,生成播放给用户的播放信息并存储,同时向预先设置的地址和端口发送模拟直播流。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。
图2是本发明实现流媒体模拟直播的流程图,包括以下步骤:
步骤200:通过CMS设置模拟直播的基本属性,从已发布的媒体文件和/或直播源中选择编排模拟直播的节目信息。
CP/SP可以通过CMS提供的页面设置模拟直播的基本属性,模拟直播的基本属性可以包括以下属性项:
用于唯一标识模拟直播的模拟直播编号,可以采用字符型表示;
模拟直播名称,可以是中文名称和/或英文名称,可以采用字符型表示;
编码方式,用于指定模拟直播节目源的编码方式,可以采用整型表示,比如用“1”表示采用活动图像专家组-4(MPEG-4)标准、“2”表示H.264标准、“3”表示MPEG-2标准、“4”表示其它编码方式等;
传输码率,用于指定模拟直播节目源的传输码率,可以采用整型表示,单位一般为kbps;
直播方式,用于指示模拟直播的直播方式,可以采用整型表示,比如“0”表示单播,“1”表示组播;
模拟直播每天开始发送直播媒体流的开始播放时间,可以采用字符型表示,格式可以采用24小时制的时分秒格式(hh24miss);
模拟直播每天停止发送直播媒体流的停止播放时间,可以采用字符型表示,格式可以采用hh24miss格式;
用于指定负责发送模拟直播流的主用模拟直播服务器的主用模拟直播服务器编号,可以采用整型表示;
用于设置主用模拟直播服务器的相关配置的主用模拟直播服务器相关配置,可以包括IP地址和端口号,其中IP地址可以采用字符型表示,端口号可以采用整型表示。需要说明的是,对于单播模拟直播,所述IP地址为推送即主动发送节目流用户数据包协议(UDP)报文的目标IP地址如0.0.0.0,所述端口号为推送节目流UDP报文的端口号;对于组播模拟直播,所述IP地址为节目流输出到的组播地址,所述端口号为组播输出数据的端口号。
另外,模拟直播的基本属性还可以包括以下属性项:
用于指定负责发送模拟直播流的备用模拟直播服务器的备用模拟直播服务器编号;以及用于设置备用模拟直播服务器的相关配置的备用模拟直播服务器相关配置,相关设置与主用模拟直播服务器相关配置一致,这里不再重述。
结合实际应用,可以对上述模拟直播的基本属性的属性项进行增减。
在本步骤中,另外一个工作就是对模拟直播播放的具体节目内容进行编排。模拟直播播放的基本元素是媒体文件和/或直播源,因此在进行节目编排前需要确保相关媒体文件和直播源已经发布到系统中,比如已存储在中央数据库中。
编排可以有两种方式,一种为指定日期编排节目,一种为轮播节目。
指定日期编排节目是指节目编排以天为单位,一天一个节目列表,编排时需要指定节目列表对应的日期。节目从模拟直播每天开始播放的时间顺序编排,针对于日期A的节目可能跨越自然天延续到第二天临晨,这些节目仍然按播放的绝对时间排序,在进行界面展示和数据保存时都按归属于日期A的节目处理。例如:10月1日模拟直播从上午7:00开始播放某连续剧第1集,10月2日临晨1:00播放到第15集,10月2日临晨2:00全天播放结束。则在界面编排展示时,该连续剧的第15集展示为10月1日的节目;该连续剧的第15集在数据库中保存为10月1日的节目,播放序列号可以设为15。
轮播节目是指节目列表对应的日期为开始轮播的日期,不允许指定节目播放的具体时间,节目列表中第一个节目的开始时间是模拟直播源每天开始播放的时间,后续的节目只能按先后顺序依次排列。另外,可以指定轮播的次数。如果需要按天轮播,则针对指定的每一天编排相同的节目。
模拟直播的节目信息可以包括以下属性:
轮播标志,用于表示当前的节目信息是否为轮播,可以采用整型表示,比如该标志的值为0表示为非轮播。为1表示为轮播;
节目列表日期,用于指定节目列表播放的时间,可以采用字符型表示,格式可以采用年-月-日(yy-mm-dd);
节目开始播放时间,对于非轮播方式,用于表示一天中节目开始播放的绝对时间,可以采用字符型表示,格式可以采用hh24miss格式;对于轮播方式,此属性值可以为空;
节目标识,用于唯一标识媒体文件节目或直播节目的标识,可以采用字符型表示;
节目名称,用于标识媒体文件节目或直播节目的名称,可以是中文名称和/或英文名称,可以采用字符型表示,;
节目播放路径,用于标识节目播放的路径如统一资源定位器(URL)地址,可以采用字符型表示;
另外,模拟直播的节目信息还可以包括:
轮播次数,在直播方式选择轮播方式时,用于标识轮播的次数,可以采用整型表示,该轮播次数的值也可以设置已特定值如“1”表示无限制轮播;
节目片断起始时间,模拟直播流为媒体文件时,用于表示从媒体文件的该相对时间开始播放,若不设置此节目片断起始时间,则默认为从媒体文件头开始播放,可以采用长整型表示,;
节目播放时长,用于表示该节目信息播放的总时长,可以采用长整型表示。若不设置该节目播放时长,对于媒体文件,表示播放至媒体文件结束;对于直播流,表示一致不同第播放,直至直播流节目源停止。
结合实际应用,可以对上述模拟直播的节目信息的属性项进行增减。
上述实现了通过CMS设置模拟直播的基本属性,以及从已发布的媒体文件和/或直播源中选择编排模拟直播的节目信息。
本步骤还可以进一步包括:CMS在进行模拟直播的节目编排时,对编排的节目信息进行正确性检查,以确保编排的节目信息即一个模拟直播中的所有节目的编码方式和码率等基本属性必须相同、节目播放时间在模拟直播频道每天开始播放时间和结束播放时间之间。模拟直播的节目信息保存在数据库中,通过正确性检查的正确的节目信息被发布或称为创建。
步骤201:CMS根据所述基本属性和节目信息,生成模拟直播信息并存储。
本步骤中的模拟直播信息可以是按照SMIL协议生成的包含所述流媒体模拟直播的基本属性和节目信息的SMIL文件。
步骤202:流媒体服务器接收到来自CMS的模拟直播启动请求后,解析从CMS中获取的模拟直播信息,生成播放给用户的播放信息并存储,同时向预先设置的地址和端口发送模拟直播流。
模拟直播启动请求中携带有URL,其中有需要访问的SMIL文件的文件名和路径,流媒体服务器解析该模拟直播启动请求获得要访问的SMIL文件的文件名和路径,并按照所述路径到指定位置即可获得需要的SMIL文件。流媒体服务器解析获得的SMIL文件,从该SMIL文件的基本属性中读取视音频编码格式、码率等基本属性组成播放给用户的播放信息。
本步骤中的播放信息可以是会话描述协议(SDP)文件。
流媒体服务器按照所述SDP文件,将预先编排好的节目信息播放到基本属性中设置的主用模拟直播服务器,由该主用模拟直播服务器转发给用户。比如,在CMB业务中,主用模拟直播服务器指无线网络控制器(RNC)。
图2描述了本发明流媒体服务器对流媒体模拟直播的启动的控制,进一步地,本发明流媒体服务器还可以对流媒体模拟直播的创建、更新、停止、删除、插入以及点播进行控制,以下分别对各控制方法进行详细描述:
图3是本发明创建/更新流媒体的流程图,包括以下步骤:
步骤300:CP/SP通过CMS向流媒体服务器发送模拟直播创建/更新请求。
图3所示的流程可以实现模拟直播的创建或更新,也就是向流媒体服务器发布CMS中通过正确性检查的模拟直播信息,比如SIML文件;或者更新已经发布给流媒体服务器的当前发生了改变的模拟直播信息,比如对流媒体服务器发布的SMIL文件进行更新。
步骤301:流媒体服务器从CMS上获取模拟直播信息。
CP/SP可以通过CMS提供的页面,以指定日期、是否轮播等检索条件,从通过正确性检查的节目信息中查询满足检索条件的节目信息组成节目信息列表。CMS选择一个通过正确性检查的正确的节目信息列表进行发布,或者当已经发布的节目信息列表更新后,重新发布该节目列表信息,以更新之前发布的。
步骤302:流媒体服务器通过CMS向CP/SP发送模拟直播创建/更新响应,表示完成此次创建/更新过程。
图4是本发明停止流媒体的流程图,包括以下步骤:
步骤400:CP/SP通过CMS向流媒体服务器发送模拟直播停止请求。
模拟直播停止请求中携带有URL,其中有需要访问的SMIL文件的文件名和路径。
步骤401:流媒体服务器停止流媒体模拟直播。
流媒体服务器解析该请求获得要访问的SMIL文件的文件名和路径,并按照所述路径到指定位置即可获得需要的SMIL文件,并停止该流媒体模拟直播的组播流的播放。
进一步地,若需要停止的模拟直播是单播流,则流媒体服务器还需要在停止发送媒体数据之前,关闭当前接收指定停止的流媒体的用户服务。
关于如何停止组播流和单播流属于现有技术,这里不再赘述。本发明强调的是流媒体服务器接收到来自CP/SP的模拟直播停止请求后,停止指定的流媒体直播的播放。
步骤402:流媒体服务器通过CMS向CP/SP返回流媒体直播停止响应,表明已完成停止指定模拟直播的播放。
图5是本发明删除流媒体的流程图,包括以下步骤:
步骤500:CP/SP通过CMS向流媒体服务器发送模拟直播删除请求。
模拟直播删除请求中携带有URL,其中有需要访问的SMIL文件的文件名和路径。
步骤501:流媒体服务器停止流媒体模拟直播。
流媒体服务器解析该请求获得要访问的SMIL文件的文件名和路径,并按照所述路径到指定位置即可获得需要的SMIL文件,并停止该流媒体模拟直播的组播流的播放。
进一步地,若需要停止的模拟直播是单播流,则流媒体服务器还需要在停止发送媒体数据之前,关闭当前接收指定停止的流媒体的用户服务。
关于如何停止组播流和单播流属于现有技术,这里不再赘述。本发明强调的是流媒体服务器接收到来自CP/SP的模拟直播删除请求后,停止指定的流媒体直播的播放。
步骤502:流媒体服务器删除已被停止播放的流媒体模拟直播对应的模拟直播信息和播放信息。
比如流媒体删除SIML文件和SDP文件。
步骤503:流媒体服务器通过CMS向CP/SP返回流媒体直播删除响应,表明已删除指定模拟直播信息和播放信息。
图6是本发明插入直播流的流程图,包括以下步骤:
步骤600:CP/SP通过CMS向流媒体服务器发送实时插入内容请求。
实时插入内容请求中携带有插入内容的基本属性,如名称、路径、编码格式、码率等等。插入的内容可以是媒体文件,也可以是直播流。
步骤601~步骤602:流媒体服务器对实时插入的内容进行合法性验证,若验证合法,则向CP/SP返回的实时插入内容响应显示为成功,并继续执行步骤603;若验证不合法,则向CP/SP返回的实时插入内容响应显示为失败,并结束本流程。
步骤603:流媒体服务器停止当前模拟直播,向接收所述被停止模拟直播的用户发送插入的内容。
特别地,运营商可以通过插入新内容方法如在手机电视业务中插入视频广告等,为运营商创造了新的商业模式和收益。
步骤604:当流媒体服务器检测到插入的内容播放完成,则恢复被停止的所述模拟直播,继续播放。
需要说明的是,为了保持后续的预告节目的播放与实际已经变化的节目同步,恢复播放被停止的模拟直播时,从发送停止位置加上实时插入的节目内容消耗的时间位置开始向用户播放媒体数据。
图7是本发明点播流媒体直播的流程图,包括以下步骤:
步骤700~步骤701:流媒体服务器接收到来自用户(User)的点播流媒体直播请求后,向流媒体系统中的认证服务器发送认证请求;
本步骤中,点播流媒体直播请求中携带有点播内容的基本属性,如名称、路径、编码格式、码率等等。点播的内容可以是媒体文件,也可以是直播流。
认证服务器是流媒体系统中的已有的组成部分,用于对用户进行认证的,认证过程属于现有技术,可参考相关规定,这里不再赘述。
步骤702:认证服务器判断用户是否已订购点播的内容对应的业务,若已定购,则向用户返回的用户认证响应显示为成功,继续执行后续步骤;若未定购,则向用户返回的用户认证响应显示为失败,并结束本流程。
步骤703:如果请求点播内容的用户是第一个用户,则流媒体服务器需要启动媒体数据发送流程,具体实现如图2所示。
步骤704a:如果用户点播的是媒体文件,则流媒体服务器读取相应的媒体文件数据,并转发给用户。
步骤704b:如果用户点播的是直播流,则流媒体服务器先接收来自直播编码器的直播流媒体,再转发给用户。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。