CN101212662A - Rtp混合器的构成方法 - Google Patents

Rtp混合器的构成方法 Download PDF

Info

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
Application number
CN 200610170278
Other languages
English (en)
Other versions
CN100562107C (zh
Inventor
陈重奋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN 200610170278 priority Critical patent/CN100562107C/zh
Publication of CN101212662A publication Critical patent/CN101212662A/zh
Application granted granted Critical
Publication of CN100562107C publication Critical patent/CN100562107C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种RTP混合器的构成方法,解决了现有RTP混合器无法使异源输入输出同步连续的RTP包的问题。采用本发明所述方法,可以构造一个RTP混合器,能够长时间运行,在运行过程中,频繁地切换不同性质的输入源,并保证输入连续码流的定时同步,有效地防止播放长时间停顿、抖动、唇音不同步、端系统缓冲区溢出等问题。

Description

RTP混合器的构成方法
技术领域
本发明涉及一种在流媒体中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码流参数表:
Figure A20061017027800161
Figure A20061017027800171
Figure A20061017027800181
十三、如果一个播放器不需要任何特别处理,严格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会话时间戳频率。
CN 200610170278 2006-12-26 2006-12-26 Rtp混合器的构成方法 Expired - Fee Related CN100562107C (zh)

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)

* Cited by examiner, † Cited by third party
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 瑞昱半导体股份有限公司 串流媒体的时戳处理方法

Cited By (8)

* Cited by examiner, † Cited by third party
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