Rtp混合器的构成方法

文档序号:7975284阅读:320来源:国知局

专利名称::Rtp混合器的构成方法
技术领域
:本发明涉及一种在流媒体中IPTV、手机电视、网络电视、电视会议应用中,RTP混合器(Mixers)的构成方法。
背景技术
:在RTP协议(由RFC1889首次定义)中,定义了Mixers(混合器)实体。该混合器包括一个中间系统,用于接收一个或多个输入源输入的RTP包,并修改接收到的RTP包的数据格式,然后按照一定方式组合,输出一个新的RTP包流。由于来自多个输入源的定时极少是同步的,混合器应该调整它的定时,并重新生成组合后RTP流自己的定时,这样,一个来源于混合器的RTP流可以看作一个同步源。RTP有关的名词中文翻译如下-Mixers-混合器Timing-定时Timestamp-时间戳clockrate/clockfrequency-时间戳频率sequencenumber-RTP包序号Marker-marker标记位Payload-载荷PayloadType-载荷类型MultiplexingRTPSessions-多轨RTP会话Synchronizationsource(SSRC)-同步信源标识Translator-转发器Monitor-监控器RTPsession-RTP会话Endsystem-端系统Gap-时间戳间隙Jitter-抖动混合器的应用有1、异源节目组合频道构成把不同节目源拼接在一起,按先后次序连续发送;2、点播组合节目网络媒体播放器向流媒体服务器发送一个点播请求,流媒体服务器把多个节目组合在一起,发送给播放器;3、构建在媒体播放器内部,把不严格同歩的输入源分柝为多个同歩的输入源,然后对分柝后的输入源进行混合处理,重组为同步的输入源;4、播放器内,修正定时不规范的RTP流;5、离线/在线节目线性剪辑制作;6、......一般来说,混合器的操作包括-1、修改各种轨道各RTP会话的SSRC、PlayloadType等字段的值,相同轨道的值相同;2、修正RTP包序号,同一个RTP会话相邻2个RTP包序号递增1;3、对于CSRC,混合器可以采用以下几种处理策略a)需要把自己的SSRC加入CSRC列表;b)为了防止RTP包大小超过网络层定义的每个数据包单元的大小,可以清除原有的CSRC列表;c)清除CSRC后,再加入自己的SSRC;dl不处理CSRC。4、调整定时,线性调整各个轨道RTP会话中的时间戳,从RTP码流中,逐个取出RTP包原有的RTP时间戳,加上RTP时间戳偏移量后,再回写到输入的RTP包中,生成输出的RTP包。不同的输入源和RTP会话,其RTP时间戳偏移量是不一样的。RTP时间戳的调整,其目的是保证混合器输出的RTP码流严格同步,相邻的RTP的时间戳没有显著跳变。当端系统(通常是媒体播放器)按照RTP协议对时间戳的定义播放媒体时,有效地消除下列问题1、媒体播放长时间停顿或中止当混合器切换两个RTP码流源时,前后两个包时间戳很可能出现较大间隙,远远超过两个正常的RTP包的时间戳间隙时,媒体播放会长时间停顿;有些播放器对停顿时间是有限制的,如果超过一定值,则停止播放;2、抖动当混合器切换两个RTP码流源时,并调整RTP时间戳,如果前后两个包时间戳仍不合理,此时可能出现媒体播放抖动;3、唇音不同步,唇音不同步是一个形象的说法,指一个同时包含音视频媒体的多轨RTP会话的媒体播放时,声音与口形不同步,也可引身为任意的多轨RTP会话中,不能按照原来的同步时刻点同步播放;4、端系统缓冲区下溢失效端系统不会严格地按照时间戳标定的时间间隙,从信道接收到RTP包,因此需要设置一个先进先出的缓冲区,把接收到的RTP存入缓冲区。端系统预填充一定数量的RTP包后,再按照RTP包中时间戳标记的时间间隙,从缓冲区取出RTP包,并继续把收到的RTP包存入缓冲区。如果从缓冲取出的RTP包的速度数量,大于存入缓冲区的数量,累积到一定程度时,缓冲区会被清空,出现下溢失效。在中国申请号03104735.1的专利申请中,提及一种处理时间戳同歩的方法,包括如下步骤1)服务器依照正常流程,向客户端下发音视频文件;2)当播放到一设定时刻,由服务器决定是否插入新的音视频流若否,则正常播放原有的音视频文件;3)若是,服务器对于将要播放的新的音视频文件进行初始化工作;4)同时对于目前正在播放的音视频流暂停或者退出;5)根据音、视频流的不同,记录下暂停或者退出的RTP数据包中的序列号SNold;(不需要服务器主动记录时间戳);6)读取将要播放的新的音视频文件,并将其中一帧封装到RTP数据包中;7)将此时RTP包中的序列号加上已退出音视频文件的序列号SN;8)对RTP包中的时间戳TS进行变换,同时序列号SN递增1;1.TS—TS';2.SN=SN+1;9)将经过时间戳和序列号变换后的RTP数据包通过网络传送出去;10)客户端收到此时的RTP数据包,将其还原为一帧,根据其中的序列号SN进行排序,并对时间戳进行反变换TS'—TS;11)播放器此时将检测到时间戳TS发生显著变化,如回零;12)客户端认为这是一部新的音视频文件,调整当前基准时间匹配新的时间戳,并重新开始计时;13)客户端开始观看一部新的音视频文件。上述方法的缺点是1、需要客户端的支持;2、从步骤2、3、4可以看出假设当前正在播放的视频流为第一视频流,如果再插播第二视频流,则第一视频流必须暂停或者退出,因此被插播的视频流的播放过程是不连续的。名词解RTP时间戳间隔RTP时间戳偏移jRTP会话媒体时间帧一个RTP会话中,一个RTP包和前面一个连续相邻的RTP包的时间戳的差值,并且前一个RTP包的marker标记位被置为1;RTP时间戳间隔标记为Gap。线性修正一个RTP码流中RTP时间戳的参数,逐个取出RTP包原有的时间戳,加上RTP时间戳偏移量,再回写到RTP包中。时间戳偏移量标记为ATS一段RTP会话,对应的媒体理论上应该播放的时间,它的值为首未两个RTP包时间戳的差值,除去该RTP会话的时间戳频率。同一时刻播放的帧,对应到RTP会话,一帧对应的RTP包具有相同时间戳,且最后一个RTP包的marker标记位被置为1。输入端输出端指混合器的输入端,输入端的RTP包的时间戳未经调整;指混合器的输出端,输出端的RTP包的时间戳己经经过调整;
发明内容针对现有技术存在的缺陷和不足,本发明的目的是提供一种RTP混合器的构成方法,保证RTP混合器可以混合大量的异源输入,然后输出同步连续的RTP包。为达到上述目的,本发明采用以下技术方案本发明RTP混合器的构成方法,包括如下步骤步骤l,对时间戳频率、不规范RTP码流源和初始的时间戳偏移量进行预处理;步骤2,选定一个RTP会话为基准RTP会话;步骤3,启动RTP混合器,记录RTP混合器启动时间T;步骤4,线性调整每个RTP会话逐个RTP包的时间戳;步骤5,在混合器的输出端,记录基准RTP会话第l个RTP包的时间戳TSr;步骤6,计算基准RTP会话的RTP时间戳间隔Gap;步骤7,在RTP混合器输出端,记录针对当前输入源,各个RTP会话最后一个RTP包的时间戳TS,;步骤8,当混合器收到新的输入源时,计算混合器启动后实际消逝的时间,和基准RTP会话媒体时间;步骤9,选择一种端系统缓冲区下溢失效控制方法,依此方法计算下溢补偿时长,下溢补偿时长标记为AT;步骤IO,在RTP混合器输入端,记录各个RTP会话首个RTP包的时间戳,作为下面的计算参数,并计算对应下一个输入源基准RTP会话的RTP时间戳偏移量ATSref,计算方法为;步骤ll,如果该媒体包含多个RTP会话,则计算其它RTP会话时间戳偏移量ATS";步骤12,通过计算出来的时间戳偏移量修正RTP包的时间戳。优选的在所述的RTP混合器的构成方法中,歩骤l具体为对时间戳频率的预处理为选择一个基准时间戳频率,将与之不同的RTP码流源的时间戳,修正为和基准时间戳频率一样;对不规范RTP码流源的预处理为,RTP码流源在输入RTP混合器之前,在发生错误处或回绕点,把一个RTP码流源分拆为两个RTP码流源输入RTP混合器;对初始的时间戳偏移量的预处理,在计算时间戳偏移量时,需要使用到前一个输入源的一些参数,当RTP混合器处理第1个输入的RTP输入源时,这些参数尚没法获取,这时初始的时间戳偏移量可以任意选择。优选的在所述的RTP混合器的构成方法中,步骤4中时间戳的调整方法为调整后,混合器输出的RTP包的时间戳等于输入的RTP包的时间戳与该RTP会话的时间戳偏移量之和。优选的在所述的RTP混合器的构成方法中,在步骤6中具体的计算方法为基准RTP会话RTP时间戳间隔等于基准RTP会话的时间戳频率除以媒体每秒帧率。优选的在所述的RTP混合器的构成方法中,在步骤6中具体的计算方法为1、选择基准RTP会话的若干RTP包的时间戳,取其平均值作为第一个RTP包的时间戳TS0;2、记录当前RTP包的RTP时间戳为TSi;3、基准RTP会话的RTP时间戳间隔G即等于当前RTP包的RTP时间戳减去第一个RTP包的时间戳TSO。优选的在所述的RTP混合器的构成方法中,在步骤8中混合器启动后实际消逝的时间等于当前时间减去RTP混合器启动时间;基准RTP会话媒体时间等于混合器输出基准RTP会话最后1个RTP包时间戳减去第1个RTP包时间戳的商除以基准RTP会话时间戳频率。优选的在所述的RTP混合器的构成方法中,步骤9具体为当下溢补偿时长为零时,暂时不对端系统缓冲区下溢失效进行控制;优选的在所述的RTP混合器的构成方法中,步骤9具体为通知输入源,加快RTP包的输出,输出的RTP会话的媒体时间大于实际时间,理想的输出的提前量为基准RTP会话理论消逝时间减去实际消逝时间,这时下溢补偿时长为零;优选的在所述的RTP混合器的构成方法中,步骤9具体为调整前一输入源最后一帧的播放时间长,延长时长为下溢补偿量,这时;下溢补偿时长等于基准RTP会话媒体时间减去实际消逝时间;优选的在所述的RTP混合器的构成方法中,步骤9具体为调整后一输入源第一帧的播放时间长,延长时长为下溢补偿量,这时-下溢补偿时长等于基准RTP会话媒体时间减去实际消逝时间;优选的在所述的RTP混合器的构成方法中,歩骤10具体为如果基准RTP会话RTP时间戳间隔大于基准RTP会话的时间戳频率与下溢补偿时长的乘积,则基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准RTP会话RTP时间戳间隔;否则,基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准KTP会话的时间戳频率与下溢补偿时长的乘积。优选的在所述的RTP混合器的构成方法中,步骤ll具体为其它RTP会话时间戳偏移量等于对应RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳,加上基准RTP会话的RTP时间戳偏移量乘以基准RTP会话的RTP时间戳偏移量除以对应RTP会话的时间戳频率。优选的在所述的RTP混合器的构成方法中,步骤12具体为当需要调整首帧播放时长时,而且是首帧RTP包,则使用首帧时间戳偏移量修IHRTP会话的时间戳。优选的在所述的RTP混合器的构成方法中,所述首帧时间戳偏移量通过以下步骤求得:1、基准RTP会话首帧时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳加上基准RTP会话RTP时间戳间隔;2、基准RTP会话首帧时间戳偏移量等于对应RTP会话,上一个输入源,输出端末的时间戳减去下一个输入源,输入端首包时间戳基准RTP会话,加上基准RTP会话RTP时间戳间隔乘以基准RTP会话,时间戳频率除以对应RTP会话时间戳频率。采用本发明所述方法,可以构造一个RTP混合器,能够长时间运行,在运行过程中,频繁地切换不同性质的输入源,并保证输入连续码流的定时同歩,有效地防止播放长时间停顿、抖动、唇音不同步、端系统缓冲区溢出等问题。图1为本发明RTP混合器的构成方法。具体实施方式下面结合附图和具体实施例对本发明作进一步详细说明参照附图1,本发明RTP混合器的构成方法包括如下步骤1、开始;2、对时间戳频率、不规范RTP码流源和初始的时间戳偏移量进行预处理;时间戳频率调整一般来说,需要混合的RTP码流源,都使用相同的时间戳频率生成RTP流的时间戳;如果它们的时间戳频率不一致,且该类型的媒体允许,则必须进行预处理,选择一个基准时间戳频率,修正与之不同的RTP码流源的时间戳,修正后的RTP码流源的时间戳频率和基准时间戳频率一样;不规范RTP码流源分拆处理,RTP码流源在输入RTP混合器之前,它本身的定时就存在错误,或RTP时间戳出现回绕,这时,可以在发生错误处或回绕点,把一个RTP码流源分拆为两个RTP码流源输入RTP混合器,让RTP混合器修正它的定时错误,或保证输入RTP时间戳回绕不影响混合器的正常运作;选择初始的时间戳偏移量,在计算时间戳偏移量时,需要使用到前一个输入源的一些参数,当RTP混合器处理第1个输入的RTP输入源时,这些参数尚没法获取,这时初始的时间戳偏移量可以任意选择。3、选定一个RTP会话为基准RTP会话;4、启动RTP混合器,记录RTP混合器启动时间T。;5、线性调整每个RTP会话逐个RTP包的时间戳;调整方法调整后,混合器输出的的RTP包的时间戳等于输入的RTP包的时间戳与该RTP会话的时间戳偏移量的和。TS。ut=TSin+ATS其中TSin—一输入的RTP包的时间戳;TS。ut—--调整后,混合器输出的的RTP包的时间戳;△TS—--该RTP会话的时间戳偏移量6、在混合器的输出端,记录基准RTP会话第1个RTP包的时间戳TV";7、计算基准RTP会话的RTP时间戳间隔Gap;方法一,基准RTP会话RTP时间戳间隔等于基准RTP会话的时间戳频率除以媒体每秒帧率。Gap=TSCALEref+Fr其中Gap----基准RTP会话RTP时间戳间隔;TSCALEref----基准RTP会话的时间戳频率;Fr——媒体每秒帧率;方法二,1、选择基准RTP会话的若干RTP包的时间戳,取其平均值作为第一个RTP包的时间戳TSO;2、记录当前RTP包的RTP时间戳为TS1;3、基准RTP会话的RTP时间戳间隔Gap等于当前RTP包的RTP时间戳减去第一个RTP包的时间戳TSO。8、在RTP混合器输出端,记录针对当前输入源,各个RTP会话最后一个RTP包的时间戳TS,.;9、判断混合器是否切换新的输入源?如果没有新的输入源切入重复执行该判断;10、如果有新的输入源切入;计算混合器启动后实际消逝的时间;混合器启动后实际消逝的时间等于当前时间减去RTP混合器启动时间;<formula>formulaseeoriginaldocumentpage12</formula>其中Tuss——实际消逝时间;T。ur—--当前时间;T一一RTP混合器启动时间;11、基准RTP会话媒体时间;基准RTP会话媒体时间等于混合器输出基准RTP会话最后1个RTP包时间戳减去第1个RTP包时间戳的商除以基准RTP会话时间戳频率。Tref=(TS,—TS0ref)+TSCALErefTref—一基准RTP会话媒体时间;TS,一--混合器输出基准RTP会话最后1个RTP包时间戳;TS。ref----混合器输出基准RTP会话第1个RTP包时间戳;TSCALEref----基准RTP会话时间戳频率;12、选择端系统缓冲区下溢失效控制方法;13、计算下溢补偿时长,下溢补偿时长标记为AT;下溢失效控制方法一,当下溢补偿时长为零时,暂时不对端系统缓冲区下溢失效进行控制;即厶丁=0;下溢失效控制方法二,通知输入源,加快rtp包的输出,输出的rtp会话的媒体时间大于实际时间,理想的输出的提前量为基准rtp会话理论消逝时间减去实际消逝时间,这时下溢补偿时长为零;即at-0;下溢失效控制方法三,调整前一输入源最后一帧的播放时间长,延长时长为下溢补偿量,这时下溢补偿时长等于基准RTP会话媒体时间减去实际消逝时间;at=rf—t,下溢失效控制方法四,调整后一输入源第一帧的播放时间长,延长时长为下溢补偿量,这时△t=trcf—l方法选择限制1、当基准RTP会话选择方法一或方法二时,其它RTP会话只能选择和基准RTP会话同样的方法;2、当基准RTP会话选择方法三或方法四时,其它RTP会话可以选择方法三或方法四,不一定要求基准RTP会话相同。对这这四种方法的灵活组合应用,对本发明来说是一种简单的变换,也应该在本发明的保护范围之内。方法三和方法计算了理想的下溢补偿时,可以在多次节目源切换时分摊或过量补偿,这都属于本发明的一种简单变换,都应属于本发明的保护范围之内。14、在RTP混合器输入端,记录各个RTP会话首个RTP包的时间戳;15、并计算对应下一个输入源基准RTP会话的RTP时间戳偏移量ATS^';如果基准RTP会话RTP时间戳间隔大于基准RTP会话的时间戳频率与下溢补偿时长的乘积,则基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准RTP会话RTP时间戳间隔;如果Gap〉TSCALErefXAT:△TSref=TSL-TSfref+Gap否则,基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准RTP会话的时间戳频率与下溢补偿时长的乘积。△TS=TSrf-TStRtf+TSCALErefXAT;其中△TSref--—基准RTP会话的RTP时间戳偏移量;G邻--一基准RTP会话RTP时间戳间隔;△T--一下溢补偿时长;TS,ref-—-基准RTP会话,上一个输入源,输出端末包时间戳;TSfref—--基准RTP会话,下一个输入源,输入端首包时间戳;TSCALEref--—基准RTP会话的时间戳频率;16、判断是否有其他会话。17、如果该媒体包含多个RTP会话,则计算其它RTP会话时间戳偏移量ATS。;其它RTP会话时间戳偏移量等于对应RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳,加上基准RTP会话的RTP时间戳偏移量乘以基准RTP会话的RTP时间戳偏移量除以对应RTP会话的时间戳频率。△TS°=TSL°—TS,+ATSrefXTSCALErer+TSCALE"其中△TS"其它RTP会话时间戳偏移量;△TSref基准RTP会话的RTP时间戳偏移量;TSJ对应RTP会话,上一个输入源,输出端末包时间戳;TSf°对应RTP会话,下一个输入源,输入端首包时间戳;TSCALE"对应RTP会话的时间戳频率;18、判断是否调整首帧播放时长,如果第九歩选择了方法四,则选是,否则选否。19、计算首帧时间戳偏移量1、基准RTP会话首帧时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳加上基准RTP会话RTP时间戳间隔;基准RTP会话△TSffref=TSLref-TSfref+G即△TSffref基准RTP会话首帧时间戳偏移量;G即基准RTP会话RTP时间戳间隔;TSLref基准RTP会话,上一个输入源,输出端末包时间戳;TSfref基准RTP会话,下一个输入源,输入端首包时间戳;2、基准RTP会话首帧时间戳偏移量等于对应RTP会话,上一个输入源,输出端末的时间戳减去下一个输入源,输入端首包时间戳基准RTP会话,加上基准RTP会话RTP时间戳间隔乘以基准RTP会话,时间戳频率除以对应RTP会话时间戳频率。其它RTP会话-△TSff0=TSL0-TSt。+GapXTSCALEref+TSCALE"其中TSCALE"----基准RTP会话,时间戳频率TS,°--—对应RTP会话,上一个输入源,输出端末的时间戳;TSf°—--对应RTP会话,下一个输入源,输入端首包时间戳;TSCALE''----对应RTP会话时间戳频率。20、判断是否是首帧RTP包。21如果是首帧RTP包。使用首帧时间戳偏移量,修改RTP会话的时间戳。22,如果不是首帧RTP包。使用时间戳偏移量,修改RTP会话的时间戳。实施例1采用一个使用本发明所描述方法的,在一台通用PC计算机上构造一个能够组合播放各类节目源的IPTV频道RTP混合器。一、异源节目组合IPTV频道的需求1.轮播本地媒体文件;2.转播,节目源来自从传输信道接收到的码流,然后转播出去;3.长时间运行;4.无缝切换。二、IPTV频道某时段的节目单是1.播放Lmp4媒体文件;2.转播另一个频道,该频道媒体描述文件是2.sdp;3.播放3.mp4媒体文件;4.转播另一个频道,该频道媒体描述文件是4.sdp;5.转播另一个频道,该频道媒体描述文件是5.Sdp;6.转播另一个频道,该频道媒体描述文件是6.sdp;7.......三、频道混合器输出特性1.RTP会话一,视频媒体,编码格式为MPEG4,时间戳频道为90000,每秒2:5帧图像;2.RTP会话二,音频媒体,编码格式AAC,时间戳频率为48000,它所有的节目源的时间戳都是48000;四、根据第一步要求,在输入IPTV频道RTP混合器之前,把时间戳频道调整为90000,并选择所有RTP会话的初始时间戳偏移量为0;五、根据第二步要求,选择视频RTP会话为基准RTP会话;六、根据第三步要求,启动混合器时记录混合器的启动时间,作为下面操作的计算参数;七、因为所有RTP会话的初始时间戳偏移量为O,所以第四步为空操作;八、根据第五步的要求,记录基准RTP会话,混合器输出的第1个RTP的时间戳,作为下面操作的计算参数;九、根据第六步的要求,采用方法二获取基准RTP会话的RTP时间戳间隔RTP时间戳间隔=90000/25=3600十、根据第七步的要求,记录针对当前输入源,RTP混合器输出的,各个RTP会话最后一个RTP包的时间戳作为计算参数;十一、根据第九步要求,选择端系统缓冲区下溢失效控制方法,选择的原则是-1.当输入源是MP4文件时,因为可以控制MP4文件的读取速度,基准及其它RTP会话选择方法二;2.当输入源是SDP文件时,因为这是转播另一个频道的节目源,不能控制输入源的播放速度,基准和其它RTP会话都采用方法三,这时,节目切换时,上一节目最后一帧图像的播放时间会被延长,对于音频来说,则会出现一小段时间静音。十二、根据第八、九、十、十一、十二、十三歩,以及各个节目源的参数,可以计算出下面的频道混合器输出RTP码流参数表<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>十三、如果一个播放器不需要任何特别处理,严格RTP协议中时间戳的定义,播放上面的频道RTP混合器输出的码流,不需要特别处理,实现长时间的连续播放,并保证播放过程不会出现前面所提及的播放问题,如1、图像播放长时间停顿或中止;2、抖动3、唇音不同步;4、端系统缓冲区下溢失效权利要求1.一种RTP混合器的构成方法,包括如下步骤步骤1,对时间戳频率、不规范RTP码流源和初始的时间戳偏移量进行预处理;步骤2,选定一个RTP会话为基准RTP会话;步骤3,启动RTP混合器,记录RTP混合器启动时间T0;步骤4,线性调整每个RTP会话逐个RTP包的时间戳;步骤5,在混合器的输出端,记录基准RTP会话第1个RTP包的时间戳TS0ref;步骤6,计算基准RTP会话的RTP时间戳间隔Gap;步骤7,在RTP混合器输出端,记录针对当前输入源,各个RTP会话最后一个RTP包的时间戳TSL;步骤8,当混合器收到新的输入源时,计算混合器启动后实际消逝的时间,和基准RTP会话媒体时间;步骤9,选择一种端系统缓冲区下溢失效控制方法,依此方法计算下溢补偿时长,下溢补偿时长标记为ΔT;步骤10,在RTP混合器输入端,记录各个RTP会话首个RTP包的时间戳,并计算对应下一个输入源基准RTP会话的RTP时间戳偏移量ΔTSref;步骤11,如果该媒体包含多个RTP会话,则计算其它RTP会话时间戳偏移量ΔTS°;步骤12,通过计算出来的时间戳偏移量修正RTP包的时间戳。2、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤l具体为对时间戳频率的预处理为选择一个基准时间戳频率,将与之不同的RTP码流源的时间戳,修正为和基准时间戳频率一样;对不规范RTP码流源的预处理为,RTP码流源在输入RTP混合器之前,在发生错误处或回绕点,把一个RTP码流源分拆为两个RTP码流源输入RTP混合器;对初始的时间戳偏移量的预处理,在计算时间戳偏移量时,需要使用到前一个输入源的一些参数,当RTP混合器处理第1个输入的RTP输入源时,这些参数尚没法获取,这时初始的时间戳偏移量可以任意选择。3、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤4中时间戳的调整方法为调整后,混合器输出的RTP包的时间戳等于输入的RTP包的时间戳与该RTP会话的时间戳偏移量之和。4、根据权利要求1所述的RTP混合器的构成方法,其特征在于在步骤6中时间戳间隔Gap具体的计算方法为基准RTP会话RTP时间戳间隔等于基准RTP会话的时间戳频率除以媒体每秒帧率。5、根据权利要求1所述的RTP混合器的构成方法,其特征在于在步骤6中时间戳间隔Gap具体的计算方法为1、选择基准RTP会话的若干RTP包的时间戳,取其平均值作为第一个RTP包的时间戳TSO;2、记录当前RTP包的RTP时间戳为TSl;3、基准RTP会话的RTP时间戳间隔Gap等于当前RTP包的RTP时间戳减去第一个RTP包的时间戳TSO。6、根据权利要求1所述的RTP混合器的构成方法,其特征在于在歩骤8中混合器启动后实际消逝的时间等于当前时间减去RTP混合器启动时间;基准RTP会话媒体时间等于混合器输出基准RTP会话最后1个RTP包时间戳减去第1个RTP包时间戳的商除以基准RTP会话时间戳频率。7、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤9具体为当下溢补偿时长为零时,暂时不对端系统缓冲区下溢失效进行控制。8、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤9具体为通知输入源,加快RTP包的输出,输出的RTP会话的媒体时间大于实际时间,理想的输出的提前量为基准RTP会话理论消逝时间减去实际消逝时间,这时下溢补偿时长为零。9、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤9具体为调整前一输入源最后一帧的播放时间长,延长时长为下溢补偿量,这时下溢补偿时长等于基准RTP会话媒体时间减去实际消逝时间。10、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤9具体为调整后一输入源第一帧的播放时间长,延长时长为下溢补偿量,这时下溢补偿时长等于基准RTP会话媒体时间减去实际消逝时间。11、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤IO具体为如果基准RTP会话RTP时间戳间隔大于基准RTP会话的时间戳频率与下溢补偿时长的乘积,则基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准RTP会话RTP时间戳间隔;否则,基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准RTP会话的时间戳频率与下溢补偿时长的乘积。12、根据权利要求1所述的RTP混合器的构成方法,其特征在于步骤11具体为其它RTP会话时间戳偏移量等于对应RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳,加上基准RTP会话的RTP时间戳偏移量乘以基准RTP会话的RTP时间戳偏移量除以对应RTP会话的时间戳频率。13.根据权利要求1或10所述的RTP混合器的构成方法,其特征在于当需要调整首帧播放时长时,而且是首帧RTP包,则使用首帧时间戳偏移量修正RTP会话的时间戳。14.根据权利要求13所述的RTP混合器的构成方法,其特征在于所述首帧时间戳偏移量通过以下步骤求得1.基准RTP会话首帧时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳加上基准RTP会话RTP时间戳间隔;2.基准RTP会话首帧时间戳偏移量等于对应RTP会话,上一个输入源,输出端末的时间戳减去下一个输入源,输入端首包时间戳基准RTP会话,加上基准RTP会话RTP时间戳间隔乘以基准RTP会话,时间戳频率除以对应RTP会话时间戳频率。全文摘要本发明公开了一种RTP混合器的构成方法,解决了现有RTP混合器无法使异源输入输出同步连续的RTP包的问题。采用本发明所述方法,可以构造一个RTP混合器,能够长时间运行,在运行过程中,频繁地切换不同性质的输入源,并保证输入连续码流的定时同步,有效地防止播放长时间停顿、抖动、唇音不同步、端系统缓冲区溢出等问题。文档编号H04N7/24GK101212662SQ200610170278公开日2008年7月2日申请日期2006年12月26日优先权日2006年12月26日发明者陈重奋申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1