CN105491401B - Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 - Google Patents
Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 Download PDFInfo
- Publication number
- CN105491401B CN105491401B CN201510922191.1A CN201510922191A CN105491401B CN 105491401 B CN105491401 B CN 105491401B CN 201510922191 A CN201510922191 A CN 201510922191A CN 105491401 B CN105491401 B CN 105491401B
- Authority
- CN
- China
- Prior art keywords
- video
- audio
- frame
- packets
- original
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的方法和装置,该方法包括:建立与IP摄像头的RTSP连接,获取音视频解码信息;建立RTP通道和接收端口;接收音视频流的音视频RTP包,由时间信息分割音视频帧;去除RTP包头,组合成完整的原始音视频帧;分别在原始音视频帧的头部和I帧头部加音视频解码信息;由时间信息与采样率信息计算原始音视频帧的PTS值和DTS值;重新排序原始音视频帧;将原始音视频帧和其PTS值、DTS值分别打成PES包,再按TS格式分割成TS包;计算TS流的PCR值且在视频帧的DTS值间隔超过一小于100ms的值之时插入一PCR包;将音视频帧的TS包和PCR包一起写入缓存;按ASI接口的输出码率读取缓存,每隔一不超100ms的时间间隔插入PAT包和PMT包输出到ASI接口。
Description
技术领域
本发明涉及发送和接收流传输数据的技术领域,具体来说,本发明涉及一种RTSP/RTP音视频流(内容)转换为TS流并通过ASI接口输出的方法和装置。
背景技术
一般地,实时流传输协议(RTSP)与实时传输协议(RTP)一起被使用,其中RTSP用于发送端与接收端的会话,而RTP用于传输音视频内容。
在视频监控领域,IP摄像头大都是通过RTSP/RTP协议输出音视频内容,但是RTSP/RTP协议是一种基于TCP/IP的协议,所以只能在IP网络上使用,无法在有线数字电视网或者无线数字电视网中使用。而在数字电视领域,有线数字电视网或者无线数字电视网中音视频内容只能是传输流(TS流)格式的,而且有线数字电视网和无线数字电视网的局端设备的数字音视频接口基本都是如DVB异步接口等异步串行接口(Asynchronous SerialInterface,简称ASI接口)。
发明内容
本发明所要解决的技术问题是在视频监控领域和数字电视领域之间建立一个数据桥梁,提供一种将视频监控领域的RTSP/RTP音视频流转换为TS流并通过ASI接口输出的方法和装置,以用于数字电视领域。
为解决上述技术问题,本发明提供一种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递增原则,统一重新排序所述原始音频帧和所述原始视频帧;
I.将所述原始音频帧和其PTS值以及所述原始视频帧和其PTS值、DTS值分别打包成一个或多个PES包,所述原始音频帧的所述PTS值和所述原始视频帧的所述PTS值、所述DTS值只分别出现在各自的第一个所述PES包中,每个所述PES包最大为65541字节,再将所述PES包按照TS格式,分割成一个或多个188字节或者204字节的TS包;
J.按照PCR=DTS-经验值的方法,计算出所述TS流的PCR值,并且在所述视频帧和所述音频帧的所述DTS值间隔超过一小于100ms的值的时候插入一PCR包;
K.将所述音频帧的所述TS包、所述视频帧的所述TS包和所述PCR包,一起写入一先入先出的缓冲存储器中;以及
L.按照设定的所述ASI接口的输出码率,读取存储有所述音频帧的TS包、所述视频帧的TS包和所述PCR包的所述缓冲存储器,其中每隔一不超过100ms的时间间隔,插入所述TS流所必须的一个188字节或者204字节的PAT包和一个188字节或者204字节的PMT包输出到所述ASI接口;其中,设定的所述ASI接口的所述输出码率必须大于所述RTSP/RTP音视频流的码率。
可选地,在上述步骤L中,通过在所述缓冲存储器中适时插入空TS包以适配所述ASI接口的所述输出码率,实现所述ASI接口的恒定码率输出;其中,如果所述缓冲存储器中的数据量大于等于188字节或者204字节,那么就直接读取188字节或者204字节的数据输出到所述ASI接口;如果所述缓冲存储器中的数据量小于188字节或者204字节,那么就插入一个188字节或者204字节的所述空TS包输出到所述ASI接口,实现所述ASI接口的恒定码率输出。
可选地,在上述步骤C中,对于发送到同一个所述接收端口的所述音频RTP包或者所述视频RTP包,如果所述时间信息完全相同,那么这些所述音频RTP包或者所述视频RTP包都属于同一个所述音频帧或者同一个所述视频帧。
可选地,在上述步骤F中,PTS=时间信息*90000/采样率;由于原始的所述时间信息为32位,所以在计算之前,需要将所述时间信息扩展为64位,然后再进行计算;其中,扩展所述时间信息的方法为:64位的所述时间信息低32位等于原始的所述时间信息,当原始的所述时间信息出现翻转,那么64位的所述时间信息高32位累加1。
可选地,在上述步骤G中,所述帧间隔指的是所述原始视频帧的连续两帧之间的时间间隔值,其时间单位为1/90000秒。
为解决上述技术问题,本发明还提供一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的装置,包括:
解码信息获取模块,通过RTSP协议建立与一网络视频发送端的RTSP连接,获取所述网络视频发送端发送的音视频流的音频解码信息和视频解码信息;
通道和端口建立模块,建立所述音视频流发送的RTP通道和接收端口,通知所述网络视频发送端发送所述音视频流的RTP包;
音视频帧分割模块,在不同的所述接收端口接收所述音视频流的音频RTP包和视频RTP包,通过所述音频RTP包和所述视频RTP包上携带的时间信息分别分割音频帧和视频帧,并将所述时间信息暂存起来;
包头去除和音视频帧组合模块,将所述音频帧和所述视频帧的所有RTP包头分别去掉,然后将其余数据分别组合成一个完整的原始音频帧和一个完整的原始视频帧;
解码信息添加模块,在所述原始音频帧的头部加上所述音频解码信息,在所述原始视频帧的I帧头部加上所述视频解码信息;
PTS值计算模块,根据每一个音频帧的第一个所述音频RTP包和每一个视频帧的第一个所述视频RTP包暂存的所述时间信息,结合所述音频解码信息和所述视频解码信息中的采样率信息,分别计算出每一个所述原始音频帧和每一个所述原始视频帧的PTS值;
DTS值计算模块,根据所述原始音频帧的DTS=PTS,所述原始视频帧中I帧的DTS=PTS-帧间隔,所述原始视频帧中其余帧的DTS=上一帧的DTS+帧间隔的方法,分别计算出所述原始音频帧和所述原始视频帧的DTS值;
音视频帧排序模块,按照DTS递增原则,统一重新排序所述原始音频帧和所述原始视频帧;
打包和分割模块,将所述原始音频帧和其PTS值以及所述原始视频帧和其PTS值、DTS值分别打包成一个或多个PES包,所述原始音频帧的所述PTS值和所述原始视频帧的所述PTS值、所述DTS值只分别出现在各自的第一个所述PES包中,每个所述PES包最大为65541字节,再将所述PES包按照TS格式,分割成一个或多个188字节或者204字节的TS包;
PCR值计算和PCR包插入模块,按照PCR=DTS-经验值的方法,计算出所述TS流的PCR值,并且在所述视频帧和所述音频帧的所述DTS值间隔超过一小于100ms的值的时候插入一PCR包;
缓存写入模块,将所述音频帧的所述TS包、所述视频帧的所述TS包和所述PCR包,一起写入一先入先出的缓冲存储器中;以及
读取和输出模块,按照设定的所述ASI接口的输出码率,读取存储有所述音频帧的TS包、所述视频帧的TS包和所述PCR包的所述缓冲存储器,其中每隔一不超过100ms的时间间隔,插入所述TS流所必须的一个188字节或者204字节的PAT包和一个188字节或者204字节的PMT包输出到所述ASI接口;其中,设定的所述ASI接口的所述输出码率必须大于所述RTSP/RTP音视频流的码率。
可选地,对于所述读取和输出模块,通过在所述缓冲存储器中适时插入空TS包以适配所述ASI接口的所述输出码率,实现所述ASI接口的恒定码率输出;其中,如果所述缓冲存储器中的数据量大于等于188字节或者204字节,那么就直接读取188字节或者204字节的数据输出到所述ASI接口;如果所述缓冲存储器中的数据量小于188字节或者204字节,那么就插入一个188字节或者204字节的所述空TS包输出到所述ASI接口,实现所述ASI接口的恒定码率输出。
可选地,对于所述音视频帧分割模块,对于发送到同一个所述接收端口的所述音频RTP包或者所述视频RTP包,如果所述时间信息完全相同,那么这些所述音频RTP包或者所述视频RTP包都属于同一个所述音频帧或者同一个所述视频帧。
可选地,对于所述PTS值计算模块,PTS=时间信息*90000/采样率;由于原始的所述时间信息为32位,所以在计算之前,需要将所述时间信息扩展为64位,然后再进行计算;其中,扩展所述时间信息的方法为:64位的所述时间信息低32位等于原始的所述时间信息,当原始的所述时间信息出现翻转,那么64位的所述时间信息高32位累加1。
可选地,对于所述DTS值计算模块,所述帧间隔指的是所述原始视频帧的连续两帧之间的时间间隔值,其时间单位为1/90000秒。
与现有技术相比,本发明具有以下优点:
本发明提出了一种将视频监控领域的实时流传输协议(RTSP)与实时传输协议(RTP)的音视频流转换为TS流,并通过如DVB异步接口等ASI接口输出的方法和装置。本发明在视频监控领域和数字电视领域之间建立了一个数据桥梁,其可以将如IP摄像头等网络视频终端的实时图像,传送到有线数字电视网或者无线数字电视网中。本发明在具有数字电视网络但没有IP网络的地点实现IP摄像头图像的传输,同时也可以利用数字电视网络的高带宽特点实现大量IP摄像头图像的稳定传输。
附图说明
本发明的上述的以及其他的特征、性质和优势将通过下面结合附图和实施例的描述而变得更加明显,其中:
图1为本发明一个实施例的一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的方法流程示意图;
图2为本发明一个实施例的一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的装置模块示意图;
图3为图2所示实施例的一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的装置的实际硬件框图。
具体实施方式
下面结合具体实施例和附图对本发明作进一步说明,在以下的描述中阐述了更多的细节以便于充分理解本发明,但是本发明显然能够以多种不同于此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下根据实际应用情况作类似推广、演绎,因此不应以此具体实施例的内容限制本发明的保护范围。
RTSP/RTP音视频流转换为TS流并通过ASI接口输出的方法实施例
图1为本发明一个实施例的一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的方法流程示意图。需要注意的是,这个以及后续其他的附图均仅作为示例,其并非是按照等比例的条件绘制的,并且不应该以此作为对本发明实际要求的保护范围构成限制。如图1所示,为了实现本发明的目的,本发明一个实施例的方法流程可以包括如下步骤:
步骤S101:通过RTSP协议建立与一网络视频发送端(可以为但不限于IP摄像头或者视频会议终端)的RTSP连接,获取网络视频发送端发送的音视频流的音频解码信息和视频解码信息。
步骤S102:建立音视频流发送的RTP通道和接收端口,通知网络视频发送端发送音视频流的RTP包。
步骤S103:在不同的接收端口接收音视频流的音频RTP包和视频RTP包,通过音频RTP包和视频RTP包上携带的时间信息分别分割音频帧和视频帧,并将时间信息暂存起来。其中,对于发送到同一个接收端口的音频RTP包或者视频RTP包,如果时间信息(TimeStamp,也叫时间标签)完全相同,那么可以认为这些音频RTP包或者视频RTP包都属于同一个音频帧或者同一个视频帧。
步骤S104:将音频帧和视频帧的所有RTP包头分别去掉,然后将其余数据分别组合成一个完整的原始音频帧和一个完整的原始视频帧。
步骤S105:在原始音频帧的头部加上获取的音频解码信息,在原始视频帧的I帧头部加上获取的视频解码信息。
步骤S106:根据每一个音频帧的第一个音频RTP包和每一个视频帧的第一个视频RTP包暂存的时间信息,结合音频解码信息和视频解码信息中的采样率信息,分别计算出每一个原始音频帧和每一个原始视频帧的PTS(Presentation Time Stamp,显示时间标签)值。其中,PTS=时间信息*90000/采样率。由于原始的时间信息为32位,所以在计算之前,需要将时间信息扩展为64位,然后再进行计算。其中,扩展时间信息的方法为:64位的时间信息低32位等于原始的时间信息,当原始的时间信息出现翻转,那么64位的时间信息高32位累加1。
步骤S107:根据原始音频帧的DTS=PTS,原始视频帧中I帧的DTS=PTS-帧间隔,原始视频帧中其余帧的DTS=上一帧的DTS+帧间隔的方法,分别计算出原始音频帧和原始视频帧的DTS(Decode Time Stamp,解码时间标签)值。其中,帧间隔指的是原始视频帧的连续两帧之间的时间间隔值,其时间单位可为1/90000秒。
步骤S108:按照DTS递增原则,统一重新排序原始音频帧和原始视频帧。
步骤S109:将原始音频帧和其PTS值以及原始视频帧和其PTS值、DTS值分别打包成一个或多个PES(Packetized Elementary Streams,打包的基本码流)包,原始音频帧的PTS值和原始视频帧的PTS值、DTS值只分别出现在各自的第一个PES包中,每个PES包最大为65541字节;再将PES包按照TS格式,分割成一个或多个188字节或者204字节的TS包。
步骤S110:按照PCR=DTS-经验值(例如3600)的方法,计算出TS流的PCR(ProgramClock Reference,节目参考时钟)值,并且在视频帧和音频帧的DTS值间隔超过一小于100ms的值(例如90ms)的时候插入一PCR包。
步骤S111:将音频帧的TS包、视频帧的TS包和PCR包,一起写入一先入先出(FIFO)的缓冲存储器中。
步骤S112:按照设定的ASI接口的输出码率,读取存储有音频帧的TS包、视频帧的TS包和PCR包的缓冲存储器,其中每隔一不超过100ms的时间间隔,插入TS流所必须的一个188字节或者204字节的PAT(Program Association Table,节目关联表)包和一个188字节或者204字节的PMT(Program Map Table,节目映射表)包输出到ASI接口。其中,设定的ASI接口的输出码率必须大于RTSP/RTP音视频流的码率。
在本实施例中,在上述步骤S112中,通过在缓冲存储器中适时插入空TS包以适配ASI接口的输出码率,实现ASI接口的恒定码率输出。其中,如果缓冲存储器中的数据量大于等于188字节或者204字节,那么就直接读取188字节或者204字节的数据输出到ASI接口。如果缓冲存储器中的数据量小于188字节或者204字节(说明缓冲存储器即将或已经空了),那么就插入一个188字节或者204字节的空TS包输出到ASI接口,实现ASI接口的恒定码率输出。
RTSP/RTP音视频流转换为TS流并通过ASI接口输出的装置实施例
图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(PresentationTime Stamp,显示时间标签)值。其中,PTS=时间信息*90000/采样率。由于原始的时间信息为32位,所以在计算之前,需要将时间信息扩展为64位,然后再进行计算。其中,扩展时间信息的方法为:64位的时间信息低32位等于原始的时间信息,当原始的时间信息出现翻转,那么64位的时间信息高32位累加1。DTS值计算模块209根据原始音频帧的DTS=PTS,原始视频帧中I帧的DTS=PTS-帧间隔,原始视频帧中其余帧的DTS=上一帧的DTS+帧间隔的方法,分别计算出原始音频帧和原始视频帧的DTS(Decode Time Stamp,解码时间标签)值。其中,帧间隔指的是原始视频帧的连续两帧之间的时间间隔值,其时间单位可为1/90000秒。音视频帧排序模块210按照DTS递增原则,统一重新排序原始音频帧和原始视频帧。打包和分割模块211将原始音频帧和其PTS值以及原始视频帧和其PTS值、DTS值分别打包成一个或多个PES(Packetized 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(ProgramAssociation Table,节目关联表)包和一个188字节或者204字节的PMT(Program MapTable,节目映射表)包输出到ASI接口202。其中,设定的ASI接口202的输出码率必须大于RTSP/RTP音视频流的码率。
在本实施例中,对于读取和输出模块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的恒定码率输出。
综上所述,本发明提出了一种将视频监控领域的实时流传输协议(RTSP)与实时传输协议(RTP)的音视频流转换为TS流,并通过如DVB异步接口等ASI接口输出的方法和装置。本发明在视频监控领域和数字电视领域之间建立了一个数据桥梁,其可以将如IP摄像头等网络视频终端的实时图像,传送到有线数字电视网或者无线数字电视网中。本发明在具有数字电视网络但没有IP网络的地点实现IP摄像头图像的传输,同时也可以利用数字电视网络的高带宽特点实现大量IP摄像头图像的稳定传输。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改、等同变化及修饰,均落入本发明权利要求所界定的保护范围之内。
Claims (8)
1.一种RTSP/RTP音视频流转换为TS流并通过ASI接口输出的方法,包括如下步骤:
A.通过RTSP协议建立与一网络视频发送端的RTSP连接,获取所述网络视频发送端发送的音视频流的音频解码信息和视频解码信息;
B.建立所述音视频流发送的RTP通道和接收端口,通知所述网络视频发送端发送所述音视频流的RTP包;
C.在不同的所述接收端口接收所述音视频流的音频RTP包和视频RTP包,通过所述音频RTP包和所述视频RTP包上携带的时间信息分别分割音频帧和视频帧,并将所述时间信息暂存起来;
D.将所述音频帧和所述视频帧的所有RTP包头分别去掉,然后将其余数据分别组合成一个完整的原始音频帧和一个完整的原始视频帧;
E.在所述原始音频帧的头部加上所述音频解码信息,在所述原始视频帧的I帧头部加上所述视频解码信息;
F.根据每一个音频帧的第一个所述音频RTP包和每一个视频帧的第一个所述视频RTP包暂存的所述时间信息,结合所述音频解码信息和所述视频解码信息中的采样率信息,分别计算出每一个所述原始音频帧和每一个所述原始视频帧的PTS值;其中PTS=时间信息*90000/采样率;
G.根据所述原始音频帧的DTS=PTS,所述原始视频帧中I帧的DTS=PTS-帧间隔,所述原始视频帧中其余帧的DTS=上一帧的DTS+帧间隔的方法,分别计算出所述原始音频帧和所述原始视频帧的DTS值;其中所述帧间隔指的是所述原始视频帧中的连续两帧之间的时间间隔值,其时间单位为1/90000秒;
H.按照DTS递增原则,统一重新排序所述原始音频帧和所述原始视频帧;
I.将所述原始音频帧和其PTS值以及所述原始视频帧和其PTS值、DTS值分别打包成一个或多个PES包,所述原始音频帧的所述PTS值和所述原始视频帧的所述PTS值、所述DTS值只分别出现在各自的第一个所述PES包中,每个所述PES包最大为65541字节,再将所述PES包按照TS格式,分割成一个或多个188字节或者204字节的TS包;
J.按照PCR=DTS-经验值的方法,计算出所述TS流的PCR值,并且在所述视频帧和所述音频帧的所述DTS值间隔超过一小于100ms的值的时候插入一PCR包;
K.将所述音频帧的所述TS包、所述视频帧的所述TS包和所述PCR包,一起写入一先入先出的缓冲存储器中;以及
L.按照设定的所述ASI接口的输出码率,读取存储有所述音频帧的TS包、所述视频帧的TS包和所述PCR包的所述缓冲存储器,其中每隔一不超过100ms的时间间隔,插入所述TS流所必须的一个188字节或者204字节的PAT包和一个188字节或者204字节的PMT包输出到所述ASI接口;其中,设定的所述ASI接口的所述输出码率必须大于所述RTSP/RTP音视频流的码率。
2.根据权利要求1所述的方法,其特征在于,在上述步骤L中,通过在所述缓冲存储器中适时插入空TS包以适配所述ASI接口的所述输出码率,实现所述ASI接口的恒定码率输出;其中,如果所述缓冲存储器中的数据量大于等于188字节或者204字节,那么就直接读取188字节或者204字节的数据输出到所述ASI接口;如果所述缓冲存储器中的数据量小于188字节或者204字节,那么就插入一个188字节或者204字节的所述空TS包输出到所述ASI接口,实现所述ASI接口的恒定码率输出。
3.根据权利要求1所述的方法,其特征在于,在上述步骤C中,对于发送到同一个所述接收端口的所述音频RTP包或者所述视频RTP包,如果所述时间信息完全相同,那么这些所述音频RTP包或者所述视频RTP包都属于同一个所述音频帧或者同一个所述视频帧。
4.根据权利要求1所述的方法,其特征在于,在上述步骤F中,由于原始的所述时间信息为32位,所以在计算之前,需要将所述时间信息扩展为64位,然后再进行计算;其中,扩展所述时间信息的方法为:64位的所述时间信息低32位等于原始的所述时间信息,当原始的所述时间信息出现翻转,那么64位的所述时间信息高32位累加1。
5.一种RTSP/RTP音视频流转换为TS流并通过ASI接口(202)输出的装置(200),包括:
解码信息获取模块(203),通过RTSP协议建立与一网络视频发送端(201)的RTSP连接,获取所述网络视频发送端(201)发送的音视频流的音频解码信息和视频解码信息;
通道和端口建立模块(204),建立所述音视频流发送的RTP通道和接收端口,通知所述网络视频发送端(201)发送所述音视频流的RTP包;
音视频帧分割模块(205),在不同的所述接收端口接收所述音视频流的音频RTP包和视频RTP包,通过所述音频RTP包和所述视频RTP包上携带的时间信息分别分割音频帧和视频帧,并将所述时间信息暂存起来;
包头去除和音视频帧组合模块(206),将所述音频帧和所述视频帧的所有RTP包头分别去掉,然后将其余数据分别组合成一个完整的原始音频帧和一个完整的原始视频帧;
解码信息添加模块(207),在所述原始音频帧的头部加上所述音频解码信息,在所述原始视频帧的I帧头部加上所述视频解码信息;
PTS值计算模块(208),根据每一个音频帧的第一个所述音频RTP包和每一个视频帧的第一个所述视频RTP包暂存的所述时间信息,结合所述音频解码信息和所述视频解码信息中的采样率信息,分别计算出每一个所述原始音频帧和每一个所述原始视频帧的PTS值;其中PTS=时间信息*90000/采样率;
DTS值计算模块(209),根据所述原始音频帧的DTS=PTS,所述原始视频帧中I帧的DTS=PTS-帧间隔,所述原始视频帧中其余帧的DTS=上一帧的DTS+帧间隔的方法,分别计算出所述原始音频帧和所述原始视频帧的DTS值;其中所述帧间隔指的是所述原始视频帧中的连续两帧之间的时间间隔值,其时间单位为1/90000秒;
音视频帧排序模块(210),按照DTS递增原则,统一重新排序所述原始音频帧和所述原始视频帧;
打包和分割模块(211),将所述原始音频帧和其PTS值以及所述原始视频帧和其PTS值、DTS值分别打包成一个或多个PES包,所述原始音频帧的所述PTS值和所述原始视频帧的所述PTS值、所述DTS值只分别出现在各自的第一个所述PES包中,每个所述PES包最大为65541字节,再将所述PES包按照TS格式,分割成一个或多个188字节或者204字节的TS包;
PCR值计算和PCR包插入模块(212),按照PCR=DTS-经验值的方法,计算出所述TS流的PCR值,并且在所述视频帧和所述音频帧的所述DTS值间隔超过一小于100ms的值的时候插入一PCR包;
缓存写入模块(213),将所述音频帧的所述TS包、所述视频帧的所述TS包和所述PCR包,一起写入一先入先出的缓冲存储器(214)中;以及
读取和输出模块(215),按照设定的所述ASI接口(202)的输出码率,读取存储有所述音频帧的TS包、所述视频帧的TS包和所述PCR包的所述缓冲存储器(214),其中每隔一不超过100ms的时间间隔,插入所述TS流所必须的一个188字节或者204字节的PAT包和一个188字节或者204字节的PMT包输出到所述ASI接口(202);其中,设定的所述ASI接口(202)的所述输出码率必须大于所述RTSP/RTP音视频流的码率。
6.根据权利要求5所述的装置(200),其特征在于,对于所述读取和输出模块(215),通过在所述缓冲存储器(214)中适时插入空TS包以适配所述ASI接口(202)的所述输出码率,实现所述ASI接口(202)的恒定码率输出;其中,如果所述缓冲存储器(214)中的数据量大于等于188字节或者204字节,那么就直接读取188字节或者204字节的数据输出到所述ASI接口(202);如果所述缓冲存储器(214)中的数据量小于188字节或者204字节,那么就插入一个188字节或者204字节的所述空TS包输出到所述ASI接口(202),实现所述ASI接口(202)的恒定码率输出。
7.根据权利要求5所述的装置(200),其特征在于,对于所述音视频帧分割模块(205),对于发送到同一个所述接收端口的所述音频RTP包或者所述视频RTP包,如果所述时间信息完全相同,那么这些所述音频RTP包或者所述视频RTP包都属于同一个所述音频帧或者同一个所述视频帧。
8.根据权利要求5所述的装置(200),其特征在于,对于所述PTS值计算模块(208),由于原始的所述时间信息为32位,所以在计算之前,需要将所述时间信息扩展为64位,然后再进行计算;其中,扩展所述时间信息的方法为:64位的所述时间信息低32位等于原始的所述时间信息,当原始的所述时间信息出现翻转,那么64位的所述时间信息高32位累加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510922191.1A CN105491401B (zh) | 2015-12-11 | 2015-12-11 | Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510922191.1A CN105491401B (zh) | 2015-12-11 | 2015-12-11 | Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105491401A CN105491401A (zh) | 2016-04-13 |
CN105491401B true CN105491401B (zh) | 2018-08-07 |
Family
ID=55678065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510922191.1A Active CN105491401B (zh) | 2015-12-11 | 2015-12-11 | Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105491401B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106534716B (zh) * | 2016-11-17 | 2019-10-08 | 三星电子(中国)研发中心 | 一种全景视频的传输和显示方法 |
JP6943148B2 (ja) * | 2017-11-10 | 2021-09-29 | 住友電気工業株式会社 | 放送再送信装置、放送再送信方法およびモニタ方法 |
CN109640038A (zh) * | 2018-11-30 | 2019-04-16 | 武汉烽火众智智慧之星科技有限公司 | 一种视频监控平台访问方法及装置 |
CN113141521B (zh) * | 2020-01-17 | 2022-08-23 | 北京达佳互联信息技术有限公司 | 一种音视频数据编码方法、装置、电子设备及存储介质 |
CN111669534A (zh) * | 2020-04-28 | 2020-09-15 | 视联动力信息技术股份有限公司 | 通信方法、第一客户端、即时通讯系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404764A (zh) * | 2008-10-30 | 2009-04-08 | 宁波中科集成电路设计中心有限公司 | 一种音视频解码过程中的内存管理方法 |
CN101605252A (zh) * | 2009-07-17 | 2009-12-16 | 深圳创维数字技术股份有限公司 | 将节目流转换成传输流的方法和系统 |
CN101742302A (zh) * | 2008-11-26 | 2010-06-16 | 中国科学院微电子研究所 | 多模mpeg系统层解复用方法 |
US8218651B1 (en) * | 2006-02-28 | 2012-07-10 | Arris Group, Inc | System and method for splicing |
CN102665135A (zh) * | 2012-04-18 | 2012-09-12 | 山东大学 | 一种嵌入式屏幕传输系统及其操作方法 |
-
2015
- 2015-12-11 CN CN201510922191.1A patent/CN105491401B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8218651B1 (en) * | 2006-02-28 | 2012-07-10 | Arris Group, Inc | System and method for splicing |
CN101404764A (zh) * | 2008-10-30 | 2009-04-08 | 宁波中科集成电路设计中心有限公司 | 一种音视频解码过程中的内存管理方法 |
CN101742302A (zh) * | 2008-11-26 | 2010-06-16 | 中国科学院微电子研究所 | 多模mpeg系统层解复用方法 |
CN101605252A (zh) * | 2009-07-17 | 2009-12-16 | 深圳创维数字技术股份有限公司 | 将节目流转换成传输流的方法和系统 |
CN102665135A (zh) * | 2012-04-18 | 2012-09-12 | 山东大学 | 一种嵌入式屏幕传输系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105491401A (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105491401B (zh) | Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 | |
US10848796B2 (en) | Transmitting method, receiving method, transmitting device, and receiving device | |
CN108881927B (zh) | 一种视频数据合成方法和装置 | |
KR101964419B1 (ko) | 방송 시스템에서의 멀티미디어 프레임 전송장치 및 방법 | |
CN103929681B (zh) | 一种提升低速网络中rtp视频流处理效率的方法 | |
JP4195030B2 (ja) | 連続的なビデオディスプレイのためのビデオデータの送信方法及び受信方法 | |
KR101484843B1 (ko) | 멀티미디어 전송 시스템에서 미디어 전송 패킷 전송 방법 및 장치 | |
EP3273661B1 (en) | Method for transmitting multimedia data in hybrid network | |
US20180205975A1 (en) | Broadcast signal transmission device, broadcast signal reception device, broadcast signal transmission method, and broadcast signal reception method | |
CN108877820B (zh) | 一种音频数据混合方法和装置 | |
BR102012005228B1 (pt) | Método para decodificar um segundo conteúdo de programa recebido através de uma rede de banda larga, e aparelho decodificador | |
CN106657113B (zh) | 一种广播网络复用协议的转换方法及系统 | |
CN104038844A (zh) | 一种基于mpeg-2标准的移动直播系统 | |
CN104754423B (zh) | 集成ipqam和docsis的mini cmts | |
CN107147916A (zh) | 一种在传输层上传输h.265编码视频数据的方法 | |
KR20130009670A (ko) | 엠엠티 시스템에서의 패킷 전송 장치 및 방법, 및 패킷 수신 장치 및 방법 | |
EP3096524A1 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
US9794143B1 (en) | Video delivery over IP packet networks | |
CN111010593A (zh) | 基于flv格式封装h.265视频数据的方法和装置 | |
EP3096525A1 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
WO2017157168A1 (zh) | 一种实现视频通话的方法、终端、系统和计算机存储介质 | |
BR112021012268A2 (pt) | Aparelhos e métodos de transmissão, de codificação e de recepção | |
CN110753234A (zh) | 一种国标ps流转rtmp直播流的实时转换方法 | |
US7949052B1 (en) | Method and apparatus to deliver a DVB-ASI compressed video transport stream | |
Han et al. | An implementation of capture and playback for ip-encapsulated video in professional media production |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |