发明内容
有鉴于此,本发明提供一种实时媒体流间同步状态信息构建方法、装置及SCC AS,以实现构建IMS IUT架构中多终端间实时媒体流同步状态信息的目的,其具体方案如下:
一种媒体流间同步状态信息构建方法,应用于多媒体会话的多终端协作环境IMS IUT架构下的协同会话中,该方法包括:
向接收方终端发送订阅实时媒体流回放信息的订阅请求;
接收所述接收方终端依据所述订阅请求返回的实时媒体流回放信息;
构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的媒体流间同步状态信息。
优选的,还包括:
接收终端发送的实时媒体流间的同步状态信息订阅消息;
依据所述订阅消息发送所述实时媒体流间的同步状态信息。
优选的,向终端发送订阅实时媒体流回放信息的订阅请求之前还包括:
建立与所述协同会话中的终端间的时钟同步。
优选的,所述实时媒体流回放信息包括:实时媒体流回放延迟信息,所述实时媒体流回放延迟信息包括:实时媒体流发送方终端标识、实时媒体流接收方终端标识、实时媒体流发送端口、实时媒体流接收端口、实时媒体流平均回放延迟参数、当前媒体流采集参考时间点参数。
优选的,所述实时媒体流回放延迟信息为预设参考时间段内采样的实时媒体流的平均回放延迟值。
优选的,所述订阅请求包括:指示媒体流平均回放延迟信息更新的标识、媒体流初始参考采样开始时间点和参考采样时间长度。
优选的,所述接收方终端依据所述订阅请求返回的实时媒体流回放信息的过程包括:
获取所述订阅请求中的媒体流初始参考采样开始时间点和参考采样时间长度;
确定所述媒体流初始参考采样开始时间点和参考采样时间长度对应的当前采样时间段;
依据实时媒体流数据包和控制包相关信息,计算所述当前采样时间段内的实时媒体流平均回放延迟值。
优选的,所述依据实时媒体流数据包和控制包相关信息,计算所述当前采样时间段内的实时媒体流平均回放延迟值的过程包括:
确定所述当前采样时间段内的实时媒体流数据包序列号范围;
分别计算所述序列号范围内的实时媒体流数据包的回放延迟值,并将计算结构取平均值。
优选的,还包括:
等待预设时间后,将所述订阅请求中的媒体流初始参考采样开始时间点加上所述预设等待时间,利用所述结果替换所述媒体流初始参考采样开始时间点;
依据所述替换后的媒体流初始参考采样开始时间点生成订阅请求,返回执行向接收方终端发送订阅实时媒体流回放信息的订阅请求的步骤。
优选的,所述订阅请求格式为会话发起协议SIP订阅消息,所述消息头的事件域值为所述指示媒体流平均回放延迟信息更新的标识,所述消息体包括所述媒体流初始参考采样开始时间点和参考采样时间长度。
一种实时媒体流间同步状态信息构建装置,包括:
订阅请求发送单元,用于向接收方终端发送订阅实时媒体流回放信息的订阅请求;
实时媒体流回放信息接收单元,用于接收所述接收方终端依据所述订阅请求返回的实时媒体流回放信息;
同步状态信息构建单元,用于构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的实时媒体流间同步状态信息。
优选的,还包括:
订阅消息接收单元,用于接收终端发送的实时媒体流间的同步状态信息订阅消息;
同步状态信息发送单元,用于依据所述订阅消息发送所述实时媒体流间的同步状态信息。
一种业务集中与连续应用服务器,包括:实时媒体流间同步状态信息构建装置,所述装置用于,向接收方终端发送订阅实时媒体流回放信息的订阅请求,接收所述接收方终端依据所述订阅请求返回的实时媒体流回放信息,构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的实时媒体流间同步状态信息。
优选的,所述实时媒体流间同步状态信息构建装置还包括:
订阅消息接收单元,用于接收终端发送的实时媒体流间的同步状态信息订阅消息;
同步状态信息发送单元,用于依据所述订阅消息发送所述实时媒体流间的同步状态信息。
从上述的技术方案可以看出,本发明实施例公开的实时媒体流间同步状态信息构建方法,采用从接收方终端订阅实时媒体流回放信息的方式获得各个接收方终端的实时媒体流回放信息,并在同一实时媒体流采样参考时间点下将获得的信息构建成对应的媒体流间同步状态信息的方式,实现了构建多个终端接收的实时媒体流间的同步状态信息的目的。
进一步实现了以此同步状态信息为依据进行同步状态检测,对多个实时媒体流进行同步控制和优化的目的,提高了IMS IUT架构的性能。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种实时媒体流间同步状态信息构建方法,应用于多媒体会话的多终端协作环境IMS IUT架构下的协同会话中,其具体实施方式如下所述:
本发明公开的实时媒体流间同步状态信息构建方法的流程如图2所示,包括:
步骤S21、向接收方终端发送订阅实时媒体流回放信息的订阅请求;
通过订阅的方式SCC AS向接收方终端发送请求,由于协同会话中会有多个终端,所以,本步骤中的终端可为多个终端。将IMS IUT架构中的SCC AS服务器作为实时流协同会话同步信息的汇集和处理装置。
步骤S22、接收所述接收方终端依据所述订阅请求返回的实时媒体流回放信息;
本发明中将实时媒体流回放信息作为同步状态信息的生成依据。
步骤S23、构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的实时媒体流间同步状态信息。
依据获得的实时媒体流回放信息构建统一协同会话不同实时媒体流间的同步状态信息。
本实施例公开的实时媒体流间同步状态信息构建方法,采用从接收方终端订阅实时媒体流回放信息的方式获得各个接收方终端的实时媒体流回放信息,并在同一实时媒体流采样参考时间点下将获得的信息构建成对应的媒体流间同步状态信息的方式,实现了构建多个终端接收的实时媒体流间的同步状态信息的目的。
本发明公开的又一实时媒体流间同步状态信息构建方法的流程如图3所示,包括:
步骤S31、建立与所述协同会话中的终端间的时钟同步;
本实施例中,为防止不同系统时钟误差导致接收终端计算实时媒体流平均回放延迟的不准确,终端在建立实时媒体流会话后基于NTP(Network TimeProtocol,网络时钟协议)完成与SCC AS间的时钟同步,其中SCC AS作为NTP服务器,各终端作为NTP客户端。SCC AS在与协同会话终端完成NTP时钟同步后向接收终端订阅实时媒体流回放延迟信息。
步骤S32、向接收方终端发送订阅实时媒体流回放延迟信息的订阅请求;
比较不同实时媒体流的同步状态的理想状况是比较在发送端同一绝对时间点采集的不同媒体,如语音流和视频流。在接收端回放的绝对时间点间的差值,即等同于不同媒体流回放延迟的差值,媒体流回放延迟是指从发送方的媒体采集绝对时间点开始,包括发送方打包编码延迟、网络发送延迟、接收方的解包解码延迟、接收方本地缓存方案处理延迟,直至在接收方开始回放时的所有延迟。考虑到接收终端将每个实时媒体流采样包的回放延迟发送给SCC AS的方式会导致过载的网络信令流量及SCC AS过载的计算处理负载问题,故本实施例中,SCC AS向协同会话的不同接收终端订阅的是一个参考时间段内采样的实时媒体流的平均回放延迟。该参考时间段即为媒体流采样参考时段,通过媒体流初始参考采样开始时间点及参考采样时长两个参数描述。其中,采用时长参数由接收方主控终端设置,以保证主控终端可根据不同协同会话应用的体验需求设置不同的采用时长,并在建立接收端协同会话时通过协同会话请求消息告知SCC AS,以作为该协同会话的统一的采用时长参数;媒体流初始参考采样开始时间点由SCC AS为协作会话所有终端统一确定,如可统一设置为SCC AS收到接收方主控终端发送的采用时长参数时对应的SCC AS服务器当前绝对时间值加上所接收到采用时长的一定百分比。
本实施例中的实时媒体流平均回放延迟信息为预设参考时间段内采样的实时媒体流的平均回放延迟值。所述实时媒体流回放延迟信息包括:实时媒体流发送方终端标识、实时媒体流接收方终端标识、实时媒体流发送端口、实时媒体流接收端口、实时媒体流平均回放延迟参数、当前媒体流采集参考时间点参数。其中,实时媒体流发送方/接收方标识可以为移动终端以SIP URL方式表示的用户标识或者移动终端的IP地址,实时媒体流发送/接收端口为RTP实时流对应的UDP端口号,当前媒体流采集参考时间点为当前媒体流参考采样开始时间点与媒体流参考采样结束时间点间的中间值。
订阅请求中包括:指示媒体流平均回放延迟信息更新的标识、媒体流初始参考采样开始时间点和参考采样时间长度。将其发送给接收方终端后,终端即可根据标识确定需要依据上述参数值进行自身的平均回放延迟信息的更新。本实施例中订阅请求格式为SIP(Session Initiation Protocol,会话发起协议)Subscribe订阅消息,所述消息头的事件域值为所述指示媒体流平均回放延迟信息更新的标识,所述消息体包括所述媒体流初始参考采样开始时间点和参考采样时间长度。
步骤S33、接收所述接收方终端依据所述订阅请求返回的实时媒体流回放信息;
接收上述接收方终端根据订阅请求中的指示媒体流平均回放延迟信息更新的标识并依据上述参数值进行更新后的平均回放延迟信息。
步骤S34、构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的实时媒体流间同步状态信息;
根据各个接收终端返回的实时媒体流平均回放延迟信息构建同步状态信息。
步骤S35、接收终端发送的实时媒体流间的同步状态信息订阅消息;
终端可向SCC AS订阅同步状态信息,实现对同步状态信息的获取。
步骤S36、依据所述订阅消息发送所述实时媒体流间的同步状态信息。
除上述步骤外,本实施例还可以包括:
步骤S37、等待预设时间;
该时间可以为一个参考采样时间长度。
步骤S38、将所述订阅请求中的媒体流初始参考采样开始时间点加上所述预设等待时间,利用所述结果替换所述媒体流初始参考采样开始时间点;
步骤S39、依据所述替换后的媒体流初始参考采样开始时间点生成订阅请求,返回执行步骤S32。
上述步骤使得每经历一个参考采样时长后,都可完成一个媒体流参考采样开始时间点和实时媒体流平均回放延迟参数的更新计算。SCCAS将当前的媒体流参考采样开始时间点加上一个参考采样时长的所得值,作为下一个参考采样时长周期的媒体流当前参考采样开始时间点,并依此生成新的订阅信息向终端发送请求,实现按照循环方式进行媒体流参考采样开始时间点和实时媒体流平均回放延迟参数的更新。
当然本实施例并不限定该更新方式,同样可以采用各个终端自动将当前的媒体流参考采样开始时间点加上一个参考采样时长的所得值,作为下一个参考采样时长周期的媒体流当前参考采样开始时间点,并以此时间点作为参数计算出实时媒体流平均回放延迟参数后,向SCCAS发送,由SCC AS进行发布。
本实施例中,SCC AS以实时更新的全景同步状态信息的方式,构建实时媒体流协同会话的同步状态。一个全景同步状态信息是指对应同一媒体流采集参考时间点的协同会话中所有实时媒体流平均回放延迟信息。通过全景同步状态信息中不同实时媒体流平均回放延迟的差值,可完整地实时监测基于同一时间点在发送方采集的不同实时媒体流数据在接收方回放的同步状况,如实时媒体流间平均回放延迟的差值越大,表明同步状况越差。
本实施例中并不限定订阅请求采用SIP Subscribe消息格式,其还可采用其他消息格式,或者依据需求建立一种专用的请求格式,只要该消息中具有指示媒体流平均回放延迟信息更新的标识,媒体流初始参考采样开始时间点和参考采样时间长度,使得终端能够得知需要对自身的实时媒体流平均回放延迟信息进行更新,并且获得更新过程中的相应参数即可。
上述实施例中,接收方终端依据所述订阅请求返回的实时媒体流回放信息的过程如图4所示,包括:
步骤S41、获取所述订阅请求中的媒体流初始参考采样开始时间点和参考采样时间长度;
从订阅请求中获取需要进行更新的实时媒体流平均回放延迟信息的参考采样开始时间点和参考采样时间长度。
步骤S42、确定所述媒体流初始参考采样开始时间点和参考采样时间长度对应的当前采样时间段;
以所述参考采样开始时间点为起始点,加上所述参考采样时间长度后的点为采样结束点,起始点和结束点间的时间段为当前采样时间段。
步骤S43、依据实时媒体流数据包和控制包相关信息,计算所述当前采样时间段内的实时媒体流平均回放延迟值。
该步骤具体流程如图5所示,包括:
步骤S431、确定所述当前采样时间段内的实时媒体流数据包序列号范围;
接收方终端接收到的前后两个不同RTCP SR控制包,先收到的RTCP SR包NTP时间戳及RTP时间戳表示为NTP_T_Prev及RTP_T_Prev,后收到的RTCP SR包NTP时间戳及RTP时间戳表示为NTP_T_Rear及RTP_T_Rear。接收端收到序列号为n和m的两个连续的RTP包(其中m>n),其对应的时间戳分别表示为RTP_T_n及RTP_T_m。据此可计算RTP_T_n对应的绝对时间值及两个连续RTP数据包采集时间间隔。以T_n_abs表示RTP_T_n对应的绝对时间值,以T_intev表示两个连续RTP数据包采集时间间隔:
T_intev=(NTP_T_Rear-NTP_T_Prev)*(RTP_T_m-RTP_T_n)/(RTP_T_Rear-RTP_T_Prev)
T_n_abs=NTP_T_Prev+(NTP_T_Rear-NTP_T_Prev)*(RTP_T_n-RTP_T_Prev)/(RTP_T_Rear-RTP_T_Prev)
以Tref表示当前媒体流参考采样开始时间点,以Tdur表示参考采样时长,当前参考媒体流采样时段内所采样的RTP数据包最小序号表示为Seq_min,当前参考媒体流采样时段内所采样的RTP数据包最大序号表示为Seq_max,则:
先对(Tref-T_n_abs)/T_intev计算结果进行整数化处理,处理结果以Z表示,即:若计算结果为整数,Z即为该整数;若计算结果不为整数,且为负值,则Z取为计算结果整数部分;若计算结果不为整数,且为正值,则Z取为计算结果整数部分加1。此外,以L表示Tdur/T_intev的整数部分。则:
Seq_min=n+(m-n)*Z
Seq_max=Seq_min+(m-n)*L
当前参考媒体流采样时段内采样的媒体流RTP数据包序列号范围在Seq_min到Seq_max之间。
步骤S432、分别计算所述序列号范围内的实时媒体流数据包的回放延迟值,并将计算结果取平均值。
接收终端对本地回放的RTP数据包序号处于Seq_min至Seq_max区间的每个RTP数据包,计算其回放延迟。以处于Seq_min至Seq_max区间的序列号为j的RTP数据包为例,将该数据包的回放延迟表示为R_j,将发送端对该媒体的采样绝对时间点表示Tp_j_abs,将接收端对该RTP包内媒体开始进行本地回放的绝对时间点表示为T_j_abs,则:
T_j_abs=T_n_abs+T_intev*(j-n)/(m-n)
R_j=Tp_j_abs-T_j_abs
以同样方式对在接收端本地回放的RTP包序列号处于在Seq_min至Seq_max区间的RTP数据包进行回放延迟计算,并对这些RTP数据包的回放延迟取平均值,即得到当前参考媒体流采样时段的媒体流平均回放延迟。
本发明以IMS IUT环境下对端的两个终端向本地两个终端传输两个实时媒体流的实例,来具体描述IMS IUT环境下的协作会话同步信息的创建和获取流程,具体流程如图6所示。其中,本地的两个终端为UE-1、UE-2,UE-1为本地协作会话的主控终端,UE-2为本地协作会话的受控终端;对端的两个终端为UE-3、UE-4,UE-4为对端协作会话的主控终端,UE-3为对端协作会话的受控终端。本地终端作为接收终端,接收对端发送的两个实时媒体流Media-A和Media-B,本地终端中的主控终端UE-1根据终端能力偏好等信息确定由哪一个终端接收Media-A和哪一个终端接收Media-B,Media-A由UE-3采集,Media-B由UE-4采集,Media-A及Media-B在本地终端回放时需要保持同步。在依据现有技术建立起上述终端间的协同会话之后,包括:
步骤S61、建立起SCC AS与终端间的同步;
SCC AS与UE-1及UE-3依据NTP协议实现时钟同步,SCC AS作为NTP服务器,UE-1及UE-3作为NTP客户端;SCC AS与UE-2及UE-4依据NTP协议实现时钟同步,SCC AS作为NTP服务器,UE-2及UE-4作为NTP客户端。
步骤S62、SCC AS通过SIP Subscribe消息向UE-1订阅实时媒体流Media-A的实时媒体流平均回放延迟更新信息,向UE-2订阅实时媒体流Media-B的实时媒体流平均回放延迟更新信息;
SIP Subscribe消息头的事件(Event)域值为指示媒体流平均回放延迟信息更新的标识Delay Update,该SIP Subscribe消息体中携带媒体流初始参考采样开始时间点Tref及参考采样时长Tdur两个参数,Tref由SCC AS为所有协作会话终端统一确定,可设置为SCC AS收到UE-1发送的采用时长参数Tdur时对应的SCC AS服务器当前绝对时间值加上0.3Tdur,本实施例并不限定为0.3Tdur,可以取为在0.1Tdur-1Tdur区间的任意值。只要能使各终端接收到SCC AS的订阅信息后,尽量在Tdur等级度量的时间内及时上报时媒体流平均回放延迟更新信息即可。
步骤S63、SCC AS通过SIP Subscribe消息接收UE-1和UE-2发送的实时媒体流平均回放延迟信息;
UE-1和UE-2根据接收到的Tref、Tdur及接收到的实时媒体流Media-A、Media-B的RTP数据包、RTCP控制包信息计算Media-A和Media-B更新的实时媒体流平均回放延迟参数及对应的更新的媒体流采集参考时间点参数。计算结束后,UE-1和UE-2分别利用SIP Notify消息向SCC AS发送更新的Media-A或Media-B实时媒体流平均回放延迟信息,SIP Notify消息头的事件(Event)域值为指示媒体流平均回放延迟信息更新的标识Delay Update,SIPNotify消息体中包含Media-A或Media-B实时媒体流平均回放延迟信息,其中Media-A实时媒体流平均回放延迟信息包括:Media-A发送方UE-3标识、Media-A接收方UE-1标识、UE-3的发送端口、UE-1的接收端口、更新的Media-A实时媒体流平均回放延迟参数、更新的媒体流采集参考时间点参数。Media-B实时媒体流平均回放延迟信息包括Media-B发送方UE-3标识、Media-B接收方UE-1标识、UE-3的发送端口、UE-1的接收端口、更新的Media-B实时媒体流平均回放延迟参数、更新的媒体流采集参考时间点参数。
步骤S64、构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的实时媒体流Media-A和Media-B间同步状态信息;
步骤S65、终端UE-4通过SIP Subscribe消息向SCC AS发起协同会话同步状态订阅请求,该SIP Subscribe消息头的事件(Event)域值为指示全景同步状态信息更新的标识Synch Status Update;
除UE-4外,协作会话的相关终端UE-1、UE-2、UE-4也可发起协同会话同步状态订阅请求,步骤相同。
步骤S66、通过SIP Notify消息向UE-4发送更新的全景同步状态信息。
所发送的SIP Notify消息头的事件(Event)域值为指示全景同步状态信息更新的标识Synch Status Update。一个全景同步状态信息是对应同一媒体流采集参考时间点的协同会话中实时媒体流Media-A及Media-B的平均回放延迟信息。UE-4可根据全景同步状态信息分析Media-A及Media-B的回放同步状态,并可执行相应的各种本地调整策略,以控制或优化Media-A及Media-B的回放同步。如Media-A的平均回放延迟比Media-B的平均回放延迟较大时,UE-4可适当降低Media-B的发送速率以与Media-A趋于回放同步。
本实施例公开的实时媒体流间同步状态信息构建方法,采用从接收方终端订阅实时媒体流回放信息的方式获得各个接收方终端的实时媒体流回放信息,并在同一实时媒体流采样参考时间点下将获得的信息构建成对应的媒体流间同步状态信息的方式,实现了构建多个终端接收的实时媒体流间的同步状态信息的目的。
进一步实现了以此同步状态信息为依据进行同步状态检测,对多个实时媒体流进行同步控制和优化的目的,提高了IMS IUT架构的性能。
本发明公式公开了一种实时媒体流间同步状态信息构建装置,其结构如图7所示,包括:订阅请求发送单元71、实时媒体流回放信息接收单元72和同步状态信息构建单元73。其中:
订阅请求发送单元71用于向接收方终端发送订阅实时媒体流回放信息的订阅请求;实时媒体流回放信息接收单元72用于接收所述接收方终端依据所述订阅请求返回的实时媒体流回放信息;同步状态信息构建单元73用于构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的实时媒体流间同步状态信息。
上述装置还包括:订阅消息接收单元74,用于接收终端发送的实时媒体流间的同步状态信息订阅消息;同步状态信息发送单元75,用于依据所述订阅消息发送所述实时媒体流间的同步状态信息。
本发明进一步公开了一种业务集中与连续应用服务器SCC AS,其结构如图8所示,包括:上述实施例所述的实时媒体流间同步状态信息构建装置81,该装置用于向接收方终端发送订阅实时媒体流回放信息的订阅请求,接收所述接收方终端依据所述订阅请求返回的实时媒体流回放信息,构建同一实时媒体流采样参考时间点下的所述实时媒体流回放信息对应的实时媒体流间同步状态信息。还用于接收终端发送的实时媒体流间的同步状态信息订阅消息,并依据所述订阅消息发送所述实时媒体流间的同步状态信息,以实现对实时媒体流间同步状态信息的构建及获取。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。