Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置的制造方法_3

文档序号:9730534阅读:来源:国知局
中的数据量小于188字节或者204字节(说明缓冲存储器即将或已经空了),那么就插入一个188字节或者204字节的空TS包输出到ASI接口,实现ASI接口的恒定码率输出。
[0061 ] RTSP/RTP音视频流转换为TS流并通过ASI接口输出的装置实施例
[0062]图2为本发明一个实施例的一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的装置模块示意图;图3为图2所示实施例的一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的装置的实际硬件框图。可见,本发明的装置200的实际硬件部分主要就包括两部分:CPU(中央处理器)301和FPGA(现场可编程门阵列)302。如图2并结合图3所示,为了实现本发明的目的,本发明一个实施例的该装置200主要包括如下模块:解码信息获取模块203、通道和端口建立模块204、音视频帧分割模块205、包头去除和音视频帧组合模块206、解码信息添加模块207、PTS值计算模块208、DTS值计算模块209、音视频帧排序模块210、打包和分割模块211、PCR值计算和PCR包插入模块212、缓存写入模块213以及读取和输出模块215。其中,CPU301中的解码信息获取模块203通过RTSP协议建立与一网络视频发送端(可以为但不限于IP摄像头或者视频会议终端)201的RTSP连接,获取网络视频发送端201发送的音视频流的音频解码信息和视频解码信息。CPU301中的通道和端口建立模块204建立音视频流发送的RTP通道和接收端口,通知网络视频发送端201发送音视频流的RTP包。CPU301中的音视频帧分割模块205在不同的接收端口接收音视频流的音频RTP包和视频RTP包,通过音频RTP包和视频RTP包上携带的时间信息分别分割音频帧和视频帧,并将时间信息暂存起来。其中,对于发送到同一个接收端口的音频RTP包或者视频RTP包,如果时间信息(TimeStamp,也叫时间标签)完全相同,那么这些音频RTP包或者视频RTP包都属于同一个音频帧或者同一个视频帧。CPU301中的包头去除和音视频帧组合模块206将音频帧和视频帧的所有RTP包头分别去掉,然后将其余数据分别组合成一个完整的原始音频帧和一个完整的原始视频帧。解码信息添加模块207在原始音频帧的头部加上音频解码信息,在原始视频帧的I帧头部加上视频解码信息。PTS值计算模块208根据每一个音频帧的第一个音频RTP包和每一个视频帧的第一个视频RTP包暂存的时间信息,结合音频解码信息和视频解码信息中的采样率信息,分别计算出每一个原始音频帧和每一个原始视频帧的PTS(Presentat1nTime Stamp,显示时间标签)值。其中,PTS =时间信息*90000/采样率。由于原始的时间信息为32位,所以在计算之前,需要将时间信息扩展为64位,然后再进行计算。其中,扩展时间信息的方法为:64位的时间信息低32位等于原始的时间信息,当原始的时间信息出现翻转,那么64位的时间信息高32位累加UDTS值计算模块209根据原始音频帧的DTS = PTS,原始视频帧中I帧的DTS = PTS-帧间隔,原始视频帧中其余帧的DTS =上一帧的DTS+帧间隔的方法,分别计算出原始音频帧和原始视频帧的DTS(Decode Time Stamp,解码时间标签)值。其中,帧间隔指的是原始视频帧的连续两帧之间的时间间隔值,其时间单位可为1/90000秒。音视频帧排序模块210按照DTS递增原则,统一重新排序原始音频帧和原始视频帧。打包和分割模块211将原始音频帧和其PTS值以及原始视频帧和其PTS值、DTS值分别打包成一个或多个PES (Packet ized Elementary Streams,打包的基本码流)包,原始音频帧的PTS值和原始视频帧的PTS值、DTS值只分别出现在各自的第一个PES包中,每个PES包最大为65541字节,再将PES包按照TS格式,分割成一个或多个188字节或者204字节的TS包。PCR值计算和PCR包插入模块212按照PCR = DTS-经验值(例如3600)的方法,计算出TS流的PCR(Program ClockReference,节目参考时钟)值,并且在视频帧和音频帧的DTS值间隔超过一小于100ms的值(例如90ms)的时候插入一 PCR包。缓存写入模块213将音频帧的TS包、视频帧的TS包和PCR包,一起通过CPU301的总线写入FPGA302中的一先入先出(FIFO)的缓冲存储器214中。FPGA302的内部逻辑,读取和输出模块215按照设定的ASI接口 202的输出码率,读取存储有音频帧的TS包、视频帧的TS包和PCR包的缓冲存储器214,其中每隔一不超过100ms的固定时间间隔,FPGA302的内部逻辑就插入TS流所必须的一个188字节或者204字节的PAT(ProgramAssociat1n Table,节目关联表)包和一个188字节或者204字节的PMT(Program MapTable,节目映射表)包输出到ASI接口 202。其中,设定的ASI接口202的输出码率必须大于RTSP/RTP音视频流的码率。
[0063]在本实施例中,对于读取和输出模块215,通过FPGA302的内部逻辑在缓冲存储器214中适时插入空TS包以适配ASI接口 202的输出码率,实现ASI接口 202的恒定码率输出。其中,如果缓冲存储器214中的数据量大于等于188字节或者204字节,那么就直接读取188字节或者204字节的数据输出到ASI接口 202。如果缓冲存储器214中的数据量小于188字节或者204字节(说明缓冲存储器即将或已经空了),那么就插入一个188字节或者204字节的空TS包输出到ASI接口 202,实现ASI接口 202的恒定码率输出。
[0064]综上所述,本发明提出了一种将视频监控领域的实时流传输协议(RTSP)与实时传输协议(RTP)的音视频流转换为TS流,并通过如DVB异步接口等ASI接口输出的方法和装置。本发明在视频监控领域和数字电视领域之间建立了一个数据桥梁,其可以将如IP摄像头等网络视频终端的实时图像,传送到有线数字电视网或者无线数字电视网中。本发明在具有数字电视网络但没有IP网络的地点实现IP摄像头图像的传输,同时也可以利用数字电视网络的高带宽特点实现大量IP摄像头图像的稳定传输。
[0065]本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改、等同变化及修饰,均落入本发明权利要求所界定的保护范围之内。
【主权项】
1.一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的方法,包括如下步骤: A.通过RTSP协议建立与一网络视频发送端的RTSP连接,获取所述网络视频发送端发送的音视频流的音频解码信息和视频解码信息; B.建立所述音视频流发送的RTP通道和接收端口,通知所述网络视频发送端发送所述音视频流的RTP包; C.在不同的所述接收端口接收所述音视频流的音频RTP包和视频RTP包,通过所述音频RTP包和所述视频RTP包上携带的时间信息分别分割音频帧和视频帧,并将所述时间信息暂存起来; D.将所述音频帧和所述视频帧的所有RTP包头分别去掉,然后将其余数据分别组合成 完整的原始首频巾贞和完整的原始视频中贞; E.在所述原始音频帧的头部加上所述音频解码信息,在所述原始视频帧的I帧头部加上所述视频解码信息; F.根据每一个音频帧的第一个所述音频RTP包和每一个视频帧的第一个所述视频RTP包暂存的所述时间信息,结合所述音频解码信息和所述视频解码信息中的采样率信息,分别计算出每一个所述原始音频帧和每一个所述原始视频帧的PTS值; G.根据所述原始音频帧的DTS= PTS,所述原始视频帧中I帧的DTS = PTS-帧间隔,所述原始视频帧中其余帧的DTS =上一帧的DTS+帧间隔的方法,分别计算出所述原始音频帧和所述原始视频帧的DTS值; H.按照DTS递增原则,统一重新排序所述原始音频帧和所述原始视频帧; 1.将所述原始音频帧和其PTS值以及所述原始视频帧和其PTS值、DTS值分别打包成一个或多个PES包,所述原始音频帧的所述PTS值和所述原始视频帧的所述PTS值、所述DTS值只分别出现在各自的第一个所述PES包中
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1