CN101212662A - Rtp混合器的构成方法 - Google Patents
Rtp混合器的构成方法 Download PDFInfo
- Publication number
- CN101212662A CN101212662A CN 200610170278 CN200610170278A CN101212662A CN 101212662 A CN101212662 A CN 101212662A CN 200610170278 CN200610170278 CN 200610170278 CN 200610170278 A CN200610170278 A CN 200610170278A CN 101212662 A CN101212662 A CN 101212662A
- Authority
- CN
- China
- Prior art keywords
- rtp
- timestamp
- benchmark
- session
- blender
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种RTP混合器的构成方法,解决了现有RTP混合器无法使异源输入输出同步连续的RTP包的问题。采用本发明所述方法,可以构造一个RTP混合器,能够长时间运行,在运行过程中,频繁地切换不同性质的输入源,并保证输入连续码流的定时同步,有效地防止播放长时间停顿、抖动、唇音不同步、端系统缓冲区溢出等问题。
Description
技术领域
本发明涉及一种在流媒体中IPTV、手机电视、网络电视、电视会议应用中,RTP混合器(Mixers)的构成方法。
背景技术
在RTP协议(由RFC1889首次定义)中,定义了Mixers(混合器)实体。该混合器包括:一个中间系统,用于接收一个或多个输入源输入的RTP包,并修改接收到的RTP包的数据格式,然后按照一定方式组合,输出一个新的RTP包流。由于来自多个输入源的定时极少是同步的,混合器应该调整它的定时,并重新生成组合后RTP流自己的定时,这样,一个来源于混合器的RTP流可以看作一个同步源。
RTP有关的名词中文翻译如下:
Mixers -混合器
Timing -定时
Timestamp -时间戳
clock rate/clock frequency -时间戳频率
sequence number -RTP包序号
Marker -marker标记位
Payload -载荷
Payload Type -载荷类型
Multiplexing RTP Sessions -多轨RTP会话
Synchronization source(SSRC) -同步信源标识
Translator -转发器
Monitor -监控器
RTP session -RTP会话
End system -端系统
Gap -时间戳间隙
Jitter -抖动
混合器的应用有:
1、异源节目组合频道构成:把不同节目源拼接在一起,按先后次序连续发送;
2、点播组合节目:网络媒体播放器向流媒体服务器发送一个点播请求,流媒体服务器把多个节目组合在一起,发送给播放器;
3、构建在媒体播放器内部,把不严格同步的输入源分柝为多个同步的输入源,然后对分柝后的输入源进行混合处理,重组为同步的输入源;
4、播放器内,修正定时不规范的RTP流;
5、离线/在线节目线性剪辑制作;
6、......
一般来说,混合器的操作包括:
1、修改各种轨道各RTP会话的SSRC、Playload Type等字段的值,相同轨道的值相同;
2、修正RTP包序号,同一个RTP会话相邻2个RTP包序号递增1;
3、对于CSRC,混合器可以采用以下几种处理策略:
a)需要把自己的SSRC加入CSRC列表;
b)为了防止RTP包大小超过网络层定义的每个数据包单元的大小,可以清除原有的CSRC列表;
c)清除CSRC后,再加入自己的SSRC;
d}不处理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数据包中的序列号SN old;(不需要服务器主动记录时间戳);
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会话中,一个RTP包和前面一个连续相邻的RTP包的
时间戳的差值,并且前一个RTP包的marker标记位被置为1;
RTP时间戳间隔标记为Gap。
RTP时间戳偏移量-线性修正一个RTP码流中RTP时间戳的参数,逐个取出RTP包
原有的时间戳,加上RTP时间戳偏移量,再回写到RTP包中。
时间戳偏移量标记为ΔTS
RTP会话媒体时间-一段RTP会话,对应的媒体理论上应该播放的时间,它的值为
首未两个RTP包时间戳的差值,除去该RTP会话的时间戳频率。
帧-同一时刻播放的帧,对应到RTP会话,一帧对应的RTP包具有
相同时间戳,且最后一个RTP包的marker标记位被置为1。
输入端-指混合器的输入端,输入端的RTP包的时间戳未经调整;
输出端-指混合器的输出端,输出端的RTP包的时间戳已经经过调整;
发明内容
针对现有技术存在的缺陷和不足,本发明的目的是提供一种RTP混合器的构成方法,保证RTP混合器可以混合大量的异源输入,然后输出同步连续的RTP包。
为达到上述目的,本发明采用以下技术方案:本发明RTP混合器的构成方法,包括如下步骤:
步骤1,对时间戳频率、不规范RTP码流源和初始的时间戳偏移量进行预处理;
步骤2,选定一个RTP会话为基准RTP会话;
步骤3,启动RTP混合器,记录RTP混合器启动时间T0;
步骤4,线性调整每个RTP会话逐个RTP包的时间戳;
步骤5,在混合器的输出端,记录基准RTP会话第1个RTP包的时间戳TS0 ref;
步骤6,计算基准RTP会话的RTP时间戳间隔Gap;
步骤7,在RTP混合器输出端,记录针对当前输入源,各个RTP会话最后一个RTP包的时间戳TSL;
步骤8,当混合器收到新的输入源时,计算混合器启动后实际消逝的时间,和基准RTP会话媒体时间;
步骤9,选择一种端系统缓冲区下溢失效控制方法,依此方法计算下溢补偿时长,下溢补偿时长标记为ΔT;
步骤10,在RTP混合器输入端,记录各个RTP会话首个RTP包的时间戳,作为下面的计算参数,并计算对应下一个输入源基准RTP会话的RTP时间戳偏移量ΔTSref,计算方法为;
步骤11,如果该媒体包含多个RTP会话,则计算其它RTP会话时间戳偏移量ΔTSo;
步骤12,通过计算出来的时间戳偏移量修正RTP包的时间戳。
优选的:在所述的RTP混合器的构成方法中,步骤1具体为:
对时间戳频率的预处理为:选择一个基准时间戳频率,将与之不同的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时间戳为TS1;
3、基准RTP会话的RTP时间戳间隔Gap等于当前RTP包的RTP时间戳减去第一个RTP包的时间戳TS0。
优选的:在所述的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会话,下一个输入源,输入端首包时间戳,加上基准RTP会话的时间戳频率与下溢补偿时长的乘积。
优选的:在所述的RTP混合器的构成方法中,步骤11具体为:其它RTP会话时间戳偏移量等于对应RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳,加上基准RTP会话的RTP时间戳偏移量乘以基准RTP会话的RTP时间戳偏移量除以对应RTP会话的时间戳频率。
优选的:在所述的RTP混合器的构成方法中,步骤12具体为:
当需要调整首帧播放时长时,而且是首帧RTP包,则使用首帧时间戳偏移量修正RTP会话的时间戳。
优选的:在所述的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混合器启动时间T0;
5、线性调整每个RTP会话逐个RTP包的时间戳;
调整方法:
调整后,混合器输出的的RTP包的时间戳等于输入的RTP包的时间戳与该RTP会话的时间戳偏移量的和。
TSout=TSin+ΔTS
其中:
TSin----输入的RTP包的时间戳;
TSout----调整后,混合器输出的的RTP包的时间戳;
ΔTS----该RTP会话的时间戳偏移量
6、在混合器的输出端,记录基准RTP会话第1个RTP包的时间戳TS0 ref;
7、计算基准RTP会话的RTP时间戳间隔Gap;
方法一,
基准RTP会话RTP时间戳间隔等于基准RTP会话的时间戳频率除以媒体每秒帧率。
Gap=TSCALEref÷Fr
其中:
Gap----基准RTP会话RTP时间戳间隔;
TSCALEref----基准RTP会话的时间戳频率;
Fr----媒体每秒帧率;
方法二,
1、选择基准RTP会话的若干RTP包的时间戳,取其平均值作为第一个RTP包的时间戳TS0;
2、记录当前RTP包的RTP时间戳为TS1;
3、基准RTP会话的RTP时间戳间隔Gap等于当前RTP包的RTP时间戳减去第一个RTP包的时间戳TS0。
8、在RTP混合器输出端,记录针对当前输入源,各个RTP会话最后一个RTP包的时间戳TSL;
9、判断混合器是否切换新的输入源?如果没有新的输入源切入重复执行该判断;
10、如果有新的输入源切入;计算混合器启动后实际消逝的时间;
混合器启动后实际消逝的时间等于当前时间减去RTP混合器启动时间;
Tuse=Tcur-T0
其中:
Tuse----实际消逝时间;Tcur----当前时间;T0----RTP混合器启动时间;
11、基准RTP会话媒体时间;
基准RTP会话媒体时间等于混合器输出基准RTP会话最后1个RTP包时间戳减去第1个RTP包时间戳的商除以基准RTP会话时间戳频率。
Tref=(TSL ref-TS0 ref)÷TSCALEref
Tref----基准RTP会话媒体时间;
TSL ref----混合器输出基准RTP会话最后1个RTP包时间戳;
TS0 ref----混合器输出基准RTP会话第1个RTP包时间戳;
TSCALEref----基准RTP会话时间戳频率;
12、选择端系统缓冲区下溢失效控制方法;
13、计算下溢补偿时长,下溢补偿时长标记为ΔT;
下溢失效控制方法一,当下溢补偿时长为零时,暂时不对端系统缓冲区下溢失效进行控制;即ΔT=0;
下溢失效控制方法二,通知输入源,加快RTP包的输出,输出的RTP会话的媒体时间大于实际时间,理想的输出的提前量为:基准RTP会话理论消逝时间减去实际消逝时间,这时下溢补偿时长为零;即ΔT=0;
下溢失效控制方法三,调整前一输入源最后一帧的播放时间长,延长时长为下溢补偿量,这时:
下溢补偿时长等于基准RTP会话媒体时间减去实际消逝时间;
ΔT=Tref-Tuse
下溢失效控制方法四,调整后一输入源第一帧的播放时间长,延长时长为下溢补偿量,这时:
ΔT=Tref-Tuse
方法选择限制:
1、当基准RTP会话选择方法一或方法二时,其它RTP会话只能选择和基准RTP会话同样的方法;
2、当基准RTP会话选择方法三或方法四时,其它RTP会话可以选择方法三或方法四,不一定要求基准RTP会话相同。
对这这四种方法的灵活组合应用,对本发明来说是一种简单的变换,也应该在本发明的保护范围之内。
方法三和方法计算了理想的下溢补偿时,可以在多次节目源切换时分摊或过量补偿,这都属于本发明的一种简单变换,都应属于本发明的保护范围之内。
14、在RTP混合器输入端,记录各个RTP会话首个RTP包的时间戳;
15、并计算对应下一个输入源基准RTP会话的RTP时间戳偏移量ΔTSref;
如果基准RTP会话RTP时间戳间隔大于基准RTP会话的时间戳频率与下溢补偿时长的乘积,则基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准RTP会话RTP时间戳间隔;
如果Gap>TSCALEref×ΔT:
ΔTSref=TSL-TSf ref+Gap
否则,基准RTP会话的RTP时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去基准RTP会话,下一个输入源,输入端首包时间戳,加上基准RTP会话的时间戳频率与下溢补偿时长的乘积。
ΔTS=TSL ref-TSf Ref+TSCALEref×ΔT;其中:
ΔTSref----基准RTP会话的RTP时间戳偏移量;
Gap----基准RTP会话RTP时间戳间隔;
ΔT----下溢补偿时长;
TSL ref----基准RTP会话,上一个输入源,输出端末包时间戳;
TSf ref----基准RTP会话,下一个输入源,输入端首包时间戳;
TSCALEref----基准RTP会话的时间戳频率;
16、判断是否有其他会话。
17、如果该媒体包含多个RTP会话,则计算其它RTP会话时间戳偏移量ΔTSo;
其它RTP会话时间戳偏移量等于对应RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳,加上基准RTP会话的RTP时间戳偏移量乘以基准RTP会话的RTP时间戳偏移量除以对应RTP会话的时间戳频率。
ΔTSo=TSL o-TSf o+ΔTSref×TSCALEref÷TSCALEo
其中:
ΔTSo 其它RTP会话时间戳偏移量;
ΔTSref 基准RTP会话的RTP时间戳偏移量;
TSL o 对应RTP会话,上一个输入源,输出端末包时间戳;
TSf o 对应RTP会话,下一个输入源,输入端首包时间戳;
TSCALEo 对应RTP会话的时间戳频率;
18、判断是否调整首帧播放时长,如果第九步选择了方法四,则选是,否则选否。
19、计算首帧时间戳偏移量:
1、基准RTP会话首帧时间戳偏移量等于基准RTP会话,上一个输入源,输出端末包时间戳减去下一个输入源,输入端首包时间戳加上基准RTP会话RTP时间戳间隔;
基准RTP会话:
ΔTSff ref=TSL ref-TSf ref+Gap
ΔTSff ref基准RTP会话首帧时间戳偏移量;
Gap 基准RTP会话RTP时间戳间隔;
TSL ref 基准RTP会话,上一个输入源,输出端末包时间戳;
TSf ref 基准RTP会话,下一个输入源,输入端首包时间戳;
2、基准RTP会话首帧时间戳偏移量等于对应RTP会话,上一个输入源,输出端末的时间戳减去下一个输入源,输入端首包时间戳基准RTP会话,加上基准RTP会话RTP时间戳间隔乘以基准RTP会话,时间戳频率除以对应RTP会话时间戳频率。
其它RTP会话:
ΔTSff o=TSL o-TSf o+Gap×TSCALEref÷TSCALEo
其中:
TSCALEref----基准RTP会话,时间戳频率
TSL o----对应RTP会话,上一个输入源,输出端末的时间戳;
TSf o----对应RTP会话,下一个输入源,输入端首包时间戳;
TSCALEo----对应RTP会话时间戳频率。
20、判断是否是首帧RTP包。
21如果是首帧RTP包。使用首帧时间戳偏移量,修改RTP会话的时间戳。
22,如果不是首帧RTP包。使用时间戳偏移量,修改RTP会话的时间戳。
实施例1
采用一个使用本发明所描述方法的,在一台通用PC计算机上构造一个能够组合播放各类节目源的IPTV频道RTP混合器。
一、异源节目组合IPTV频道的需求:
1.轮播本地媒体文件;
2.转播,节目源来自从传输信道接收到的码流,然后转播出去;
3.长时间运行;
4.无缝切换。
二、IPTV频道某时段的节目单是:
1.播放1.mp4媒体文件;
2.转播另一个频道,该频道媒体描述文件是2.sdp;
3.播放3.mp4媒体文件;
4.转播另一个频道,该频道媒体描述文件是4.sdp;
5.转播另一个频道,该频道媒体描述文件是5.sdp;
6.转播另一个频道,该频道媒体描述文件是6.sdp;
7.......
三、频道混合器输出特性:
1.RTP会话一,视频媒体,编码格式为MPEG4,时间戳频道为90000,每秒25帧图像;
2.RTP会话二,音频媒体,编码格式AAC,时间戳频率为48000,它所有的节目源的时间戳都是48000;
四、根据第一步要求,在输入IPTV频道RTP混合器之前,把时间戳频道调整为90000,并选择所有RTP会话的初始时间戳偏移量为0;
五、根据第二步要求,选择视频RTP会话为基准RTP会话;
六、根据第三步要求,启动混合器时记录混合器的启动时间,作为下面操作的计算参数;
七、因为所有RTP会话的初始时间戳偏移量为0,所以第四步为空操作;
八、根据第五步的要求,记录基准RTP会话,混合器输出的第1个RTP的时间戳,作为下面操作的计算参数;
九、根据第六步的要求,采用方法二获取基准RTP会话的RTP时间戳间隔:
RTP时间戳间隔=90000/25=3600
十、根据第七步的要求,记录针对当前输入源,RTP混合器输出的,各个RTP会话最后一个RTP包的时间戳作为计算参数;
十一、根据第九步要求,选择端系统缓冲区下溢失效控制方法,选择的原则是:
1.当输入源是MP4文件时,因为可以控制MP4文件的读取速度,基准及其它RTP会话选择方法二;
2.当输入源是SDP文件时,因为这是转播另一个频道的节目源,不能控制输入源的播放速度,基准和其它RTP会话都采用方法三,这时,节目切换时,上一节目最后一帧图像的播放时间会被延长,对于音频来说,则会出现一小段时间静音。
十二、根据第八、九、十、十一、十二、十三步,以及各个节目源的参数,可以计算出下面的频道混合器输出RTP码流参数表:
十三、如果一个播放器不需要任何特别处理,严格RTP协议中时间戳的定义,播放上面的频道RTP混合器输出的码流,不需要特别处理,实现长时间的连续播放,并保证播放过程不会出现前面所提及的播放问题,如:
1、图像播放长时间停顿或中止;
2、抖动:
3、唇音不同步;
4、端系统缓冲区下溢失效。
Claims (14)
1.一种RTP混合器的构成方法,包括如下步骤:
步骤1,对时间戳频率、不规范RTP码流源和初始的时间戳偏移量进行预处理;
步骤2,选定一个RTP会话为基准RTP会话;
步骤3,启动RTP混合器,记录RTP混合器启动时间T0;
步骤4,线性调整每个RTP会话逐个RTP包的时间戳;
步骤5,在混合器的输出端,记录基准RTP会话第1个RTP包的时间戳TS0 ref;
步骤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混合器的构成方法,其特征在于步骤1具体为:
对时间戳频率的预处理为:选择一个基准时间戳频率,将与之不同的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包的时间戳TS0;
2、记录当前RTP包的RTP时间戳为TS1;
3、基准RTP会话的RTP时间戳间隔Gap等于当前RTP包的RTP时间戳减去第一个RTP包的时间戳TS0。
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混合器的构成方法,其特征在于步骤10具体为:
如果基准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会话时间戳频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610170278 CN100562107C (zh) | 2006-12-26 | 2006-12-26 | Rtp混合器的构成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610170278 CN100562107C (zh) | 2006-12-26 | 2006-12-26 | Rtp混合器的构成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101212662A true CN101212662A (zh) | 2008-07-02 |
CN100562107C CN100562107C (zh) | 2009-11-18 |
Family
ID=39612268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610170278 Expired - Fee Related CN100562107C (zh) | 2006-12-26 | 2006-12-26 | Rtp混合器的构成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100562107C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301775A (zh) * | 2014-09-28 | 2015-01-21 | 四川长虹电器股份有限公司 | 确认不同节目源之间时间偏移的方法 |
CN107566889A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
CN113473162A (zh) * | 2021-04-06 | 2021-10-01 | 北京沃东天骏信息技术有限公司 | 一种媒体流的播放方法、装置、设备和计算机存储介质 |
CN114374871A (zh) * | 2020-10-15 | 2022-04-19 | 瑞昱半导体股份有限公司 | 串流媒体的时戳处理方法 |
-
2006
- 2006-12-26 CN CN 200610170278 patent/CN100562107C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301775A (zh) * | 2014-09-28 | 2015-01-21 | 四川长虹电器股份有限公司 | 确认不同节目源之间时间偏移的方法 |
CN104301775B (zh) * | 2014-09-28 | 2017-12-15 | 四川长虹电器股份有限公司 | 确认不同节目源之间时间偏移的方法 |
CN107566889A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
CN107566889B (zh) * | 2017-09-15 | 2020-06-16 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
CN114374871A (zh) * | 2020-10-15 | 2022-04-19 | 瑞昱半导体股份有限公司 | 串流媒体的时戳处理方法 |
CN114374871B (zh) * | 2020-10-15 | 2023-11-14 | 瑞昱半导体股份有限公司 | 串流媒体的时戳处理方法 |
CN113473162A (zh) * | 2021-04-06 | 2021-10-01 | 北京沃东天骏信息技术有限公司 | 一种媒体流的播放方法、装置、设备和计算机存储介质 |
CN113473162B (zh) * | 2021-04-06 | 2023-11-03 | 北京沃东天骏信息技术有限公司 | 一种媒体流的播放方法、装置、设备和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100562107C (zh) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8356324B2 (en) | Implementing network personal video recorder for digital video settop boxes | |
EP1879347B1 (en) | System and method of audio/video streaming | |
AU2011289514B2 (en) | Manifest file updates for network streaming of coded video data | |
CN101854533B (zh) | 频道切换方法、装置及系统 | |
CN101179484A (zh) | 一种不同媒体流间的同步方法及系统 | |
CN109547831A (zh) | 一种白板与视频同步的方法、装置、计算设备及存储介质 | |
EP2829076B1 (en) | Method of buffer management for synchronization of correlated media presentations | |
US20100049865A1 (en) | Decoding Order Recovery in Session Multiplexing | |
CN107409234A (zh) | 基于lct利用dash格式的基于文件格式的流式传输 | |
US20090293093A1 (en) | Content server, information processing apparatus, network device, content distribution method, information processing method, and content distribution system | |
Howson et al. | Second screen TV synchronization | |
CN101193311B (zh) | 一种p2p系统中音视频数据的同步方法 | |
US8655143B2 (en) | Supplementary buffer construction in real-time applications without increasing channel change delay | |
US20080022007A1 (en) | System and method of audio/video streaming | |
CN100562107C (zh) | Rtp混合器的构成方法 | |
CN106101752B (zh) | 一种时移时间获取方法及机顶盒 | |
CN103491333A (zh) | 一种兼容性较佳、抗网络干扰、画面同步的视频分流方法 | |
CN1327443C (zh) | 一种流媒体点播的音视频切换方法 | |
Yun et al. | Real-sense media synchronization technology based on the SMMD | |
Westerink et al. | A live intranet distance learning system using MPEG-4 over RTP/RTSP | |
JP4794640B2 (ja) | 送信装置およびメディアデータ送信方法 | |
Akgul | A Client-Based Fast Channel Change Technique Using Multiple Decoder Clocks | |
CN101938633A (zh) | 一种基于互动机顶盒的嵌入式流媒体播放模块的实现方法 | |
US20090193454A1 (en) | Restamping transport streams to avoid vertical rolls | |
CN115515004B (zh) | 一种基于Android的多屏控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091118 Termination date: 20151226 |
|
EXPY | Termination of patent right or utility model |