CN106790044B - Ts码流转换为rtp码流的方法和装置 - Google Patents
Ts码流转换为rtp码流的方法和装置 Download PDFInfo
- Publication number
- CN106790044B CN106790044B CN201611174581.6A CN201611174581A CN106790044B CN 106790044 B CN106790044 B CN 106790044B CN 201611174581 A CN201611174581 A CN 201611174581A CN 106790044 B CN106790044 B CN 106790044B
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- audio
- video
- rtp
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6125—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
Abstract
本发明提供了一种TS码流转换为RTP码流的方法和装置,涉及多媒体的技术领域,包括:获取目标TS码流;对目标TS码流中的PSI表进行搜索,得到目标结果,其中,PSI表用于指示节目说明信息;根据目标结果对目标TS码流进行拆分,得到ES数据;按照实时传输协议标准对ES数据进行封装,封装得到RTP数据包,并按照当前时刻的网络传输速率向终端设备传输RTP数据包,以缓解现有技术中无法直接将广播电视系统中的数据直接发送至互联网直播系统的技术问题。
Description
技术领域
本发明涉及多媒体的技术领域,尤其是涉及一种TS码流转换为RTP码流的方法和装置。
背景技术
TS(Transport Stream)是一种分包发送应用的封装格式,其应用主要是同轴传输的数字视频广播,并且支持多种基本媒体流和多种媒体编码标准(MPEG-2、MPEG-4、H.264、H.265和AVS等),方便扩展。TS已经有十多年实际的大规模普遍性应用,得到全球广播行业和互联网行业的一致认同。目前三种数字电视标准:先进电视制式委员会(AdvancedTelevision System Committee,简称ATSC)、数字视频广播(Digital VideoBroadcasting,简称DVB)、综合业务数字广播(Integrated Services DigitalBroadcasting,简称ISDB)都基于MPEG TS作为实现基础。
实时传输协议(Real-time Transport Protocol,简称RTP)是一种针对互联网上多媒体码流的传输协议,由IETF的多媒体传输工作小组1996年在RFC1889中公布的,最新的为RFC3550。RTP被定义作为会话广播应用,支持一对一,或者,一对多的传输情况。RTP协议常用于流媒体系统,应用于互联网点播、视频会议、视频监控等应用。典型应用建立在UDP上,也可以在TCP等其他协议之上工作。RTP协议采用视频流和音频流分开传输方式实现。
在现有的传输方案中,MPEG TS系统和RTP传输系统之间的数据传输基本是处于割裂状态,缺少互通连接的纽带。当两种系统有另外一方的传输需求时,常常需要重新搭建系统,采购设备,并且不能重复利用之前系统的设备,因此,造成了成本剧增,资源浪费。
现有的MPEG TS转RTP的方案,常用的方案是直接把TS包封装到RTP包中。由于原本采用TS方式就已经增加了IP网络传送开销。在此基础上继续增加RTP头又产生了额外开销,增加了网络负担。而且这种封装方式背离了RTP传输音视频初衷,实际上接收端不能直接根据码流获取到RTP携带信息,增加了接收端的负担。
综上,在现有的转换方案中,没有提供码率控制方案,从而导致RTP码流传输时波动比较大,容易造成网络拥塞,数据丢包等一系列问题。并且在现有编码芯片方案中,较大部分支持直接输出TS。对于应用这样编码芯片方案不能应用于互联网传输或者视频通话等。
发明内容
本发明的目的在于提供一种TS码流转换为RTP码流的方法和装置,以缓解现有技术中无法直接将广播电视系统中的数据直接发送至互联网直播系统的技术问题。
根据本发明实施例的一个方面,提供了一种TS码流转换为RTP码流的方法,包括:获取目标TS码流;对所述目标TS码流中的PSI表进行搜索,得到目标结果,其中,所述PSI表用于指示节目说明信息;根据所述目标结果对所述目标TS码流进行拆分,得到ES数据;按照实时传输协议标准对所述ES数据进行封装,封装得到RTP数据包,并按照当前时刻的网络传输速率向终端设备传输所述RTP数据包。
根据本发明实施例的一个方面,提供了一种TS码流转换为RTP码流的装置,包括:第一获取单元,用于获取原始TS码流,并对所述原始TS码流进行同步处理,得到目标TS码流;搜索单元,用于对所述目标TS码流中的PSI表进行搜索,得到目标结果,其中,所述PSI表用于指示节目说明信息;拆分单元,用于根据所述目标结果对所述目标TS码流进行拆分,得到ES数据;封装传输单元,用于按照实时传输协议标准对所述ES数据进行封装,封装得到RTP数据包,并按照当前时刻的网络传输速率向终端设备传输所述RTP数据包。
在本发明实施例中,首先对获取到的原始TS码流进行同步处理,然后,对同步处理之后的目标TS码流进行搜表处理,得到搜索结果,接下来,根据目标结果对目标TS码流进行拆分,得到ES数据,最后,按照实时传输协议标准对ES数据进行封装,得到RTP数据包,在得到RTP数据包之后,就可以通过网络向接收终端传输TS码流。在本发明实施例中,达到了简化数据传输流程的目的,进而解决了现有技术中无法直接将广播电视系统中的数据直接发送至互联网直播系统的技术问题,从而实现了减小网络传输负担的技术效果。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种TS码流转换为RTP码流的方法的流程图;
图2是根据本发明实施例的一种可选的搜表过程的流程图;
图3是根据本发明实施例的一种可选的TS码流转换为RTP码流的方法的流程图;
图4是根据本发明实施例的一种可选的PES数据结构的示意图;
图5是根据本发明实施例的一种可选的RTP数据的头信息的示意图;
图6是根据本发明实施例的一种TS码流转换为RTP码流的装置的示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
根据本发明实施例,提供了一种TS码流转换为RTP码流的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种TS码流转换为RTP码流的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取目标TS码流。
TS规范采用TS包封装格式将视、音频流复用后单一流传输。TS码流数据包长固定为188字节,包头4个字节,第一字节固定为0x47,负载为184字节。
因此,在获取到广电网络传输的目标TS数据(以下均简称为TS数据)之后,可以对TS数据进行同步处理,即按照第一字节和包长对TS数据进行检验,以保证TS数据能够被识别。
步骤S104,对目标TS码流中的PSI表进行搜索,得到目标结果,其中,PSI表用于指示节目说明信息。
在MPEG-TS中定义了节目特定信息表(PSI),PSI表用来描述传送流的组成结构,在TS传输系统中担任极其重要的角色,在多路复用中尤为重要的是PAT表和PMT表。
在本发明实施例中,在获取到TS数据之后,可以对PSI表进行搜表处理,得到目标结果,具体地,搜索结果将在下述实施例中进行详细说明。
步骤S106,根据目标结果对目标TS码流进行拆分,得到ES数据。
在本发明实施例中,在获取到的目标结果之后,就可以通过目标结果对TS码流进行拆分,得到ES数据。
步骤S108,按照实时传输协议标准对ES数据进行封装,封装得到RTP数据包,并按照当前时刻的网络传输速率向终端设备传输RTP数据包。
在本发明实施例中,在拆分得到ES数据之后,就可以通过RTP协议对ES数据进行封装,得到RTP数据包,进而,就可以通过网络向终端设备传输RTP数据包,实现MPEG TS系统和RTP传输系统之间数据的自由传输。
当前时刻的网络传输速率为实时计算得到的,具体计算过程将在下述实施例中进行调整。
需要说明的是,上述步骤S102至步骤S108中的描述的方案均通过一个转换设备来执行,该转换设备设置于广电网络和终端设备之间,用于将广电网络的数据传输至终端设备。
在本发明实施例中,首先对获取到的原始TS码流进行同步处理,然后,对同步处理之后的目标TS码流进行搜表处理,得到搜索结果,接下来,根据目标结果对目标TS码流进行拆分,得到ES数据,最后,按照实时传输协议(RTP协议)标准对ES数据进行封装,得到RTP数据包,在得到RTP数据包之后,就可以通过网络向接收终端传输TS码流。在本发明实施例中,达到了简化数据传输流程的目的,进而解决了现有技术中无法直接将广播电视系统中的数据直接发送至互联网直播系统的技术问题,从而实现了减小网络传输负担的技术效果,并建立了MPEG TS系统和RTP传输系统之间数据的传输桥梁。
在本发明的一个可选实施方式中,对目标TS码流中的PSI表进行搜索,得到目标结果包括如下步骤:
步骤S1041,在PSI表中搜索节目关联表,其中,节目关联表的PID标识为第一预设标识;
步骤S1042,对节目关联表进行解析,得到节目映射表,其中,节目映射表的PID标识为第二预设标识;
步骤S1043,对节目关联表进行解析,得到视频TS数据包、音频TS数据包和PCR数据包。
具体地,在MPEG-TS中定义了节目特定信息表(PSI表),PSI表用来描述传送流的组成结构,在TS传输系统中担任极其重要的角色,在多路复用中尤为重要的是节目关联表(PAT表)和节目映射表(PMT表)。PAT表给出了一路MPEG-TS码流中有多少套节目,以及它与PMT表PID之间的对应关系;PMT表给出了一套节目的具体组成情况与其视频、音频等PID对应关系。PSI搜表过程是通过解析PSI表获取音频和视频流的PID和码流类型。
在本发明实施例中,首先按照ISO-IEC 13818-1标准,先搜索PID标识为0x00的PAT数据包(Program Association Table,节目关联表),其中,0x00即上述第一预设标识。查找到PID标识为0x00的PAT后,对PAT进行解析查找到PID标识为第二预设标识的PMT表(Program Map Table,节目映射表)的PID,例如,查找标识为0xNN的PMT表。在获取到PMT表后,可以通过该PMT表获取视频TS数据包、音频TS数据包和PCR数据包。
具体地,在视频TS数据包中包括视频的PID和视频流类型(stream_type);在音频TS数据包中包括音频的PID和音频流类型(stream_type);在PCR数据包中包括PCR的PID和PCR流类型(stream_type)。
如图2所示的即为一种搜表过程,通过图2所示,首先在PSI中搜索PID为0x00(第一预设标识)的PAT表,然后,在对PAT表进行解析,得到PID为第二预设标识(例如,0xNN)的PMT表,通过对PMT进行解析,就可以分别知晓视频、音频和PCR的流类型和PID。
需要说明的是,图2中所示的视频TS数据包,音频TS数据包和PCR数据包即为上述目标结果。
在得到视频TS数据包,音频TS数据包之后,就可以根据视频TS数据包和音频TS数据包对TS码流进行拆分,得到ES数据,具体地,包括如下步骤:
步骤S1061,根据视频TS数据包中的流类型确定视频PID,以及根据音频TS数据包中的流类型确定音频PID;
步骤S1062,根据第视频PID和音频PID分别对视频TS数据包和音频TS数据包进行拆分;
步骤S1063,对拆分之后的视频TS数据包和音频TS数据包进行拼接,得到视频PES数据包和音频PES数据包;
步骤S1064,删除视频PES数据包和音频PES数据包的头信息,得到视频ES数据和音频ES数据。
具体地,在本发明实施例中,首先,根据视频TS数据包中的流类型确定视频PID,以及根据音频TS数据包中的流类型确定音频PID,然后,根据音频PID对音频TS数据包进行拆分,以及根据视频PID视频TS数据包进行拆分。并对拆分之后音频TS数据包和视频TS数据包进行拼接。根据TS包中的pay_load_start_endicator拼接成音频或视频帧PES包。
在本发明实施例中,主要通过TS码流数据包中的pay_load_start_endicator对音频TS数据包和视频TS数据包进行拼接,进而分别得到音频PES数据包和视频PES数据包。其中,pay_load_start_endicator=1表示PES数据包的开始。
例如,在拼接音频PES数据包时,主要根据PES数据包的长度字段判断是否为完整PES,如果不完整,则表示还未拼接完,那么继续拆分下一个音视TS数据包,以对音频PES数据包进行拼接,直到拼接完成,即拼接得到一个完整的音频PES数据包。
需要说明的是,在本发明实施例中,根据第一PID标识和第二PID标识分别对TS码流分别对视频TS数据包和音频TS数据包进行拆分,进而,再根据拆分得到的视频TS数据包和音频TS数据包分别进行拼接,得到视频PES数据包和音频PES数据包。具体地,拼接得到视频PES数据包的过程与拼接得到音频PES数据包的过程相同,此处不再赘述。
在拼接得到视频PES数据包和音频PES数据包之后,就可以一次删除视频PES数据包和音频PES数据包的头信息,分别得到视频ES数据和音频ES数据。
可选地,在删除视频PES数据包和音频PES数据包的头信息,得到视频ES数据和音频ES数据之前,该方法还包括如下步骤:
步骤S1,分别提取视频PES数据包和音频PES数据包的头信息中的PTS数据,得到第一PTS数据和第二PTS数据;
步骤S2,将第二PTS数据进行时间戳转换,并将第一PTS数据和转换之后的第二PTS数据作为时间信息。
具体地,在上述步骤S1062得到视频PES数据包和音频PES数据包之后,还可以分别提取视频PES数据包和音频PES数据包的头信息中的PES数据,并保留,其中,PES数据为时间数据。
进一步地,由于PTS的时间单位是90KHz,因此,在发送音频数据包时,需要转换为音频编码采样率48KHz时间;当发送视频数据包时,由于两者时间单位都是90KHZ不需要转换。因此,在提取PES数据之后,需要完成从MPEG-TS系统的PTS到RTP系统的timestamp转换(即,时间戳转换)。
具体地,可以按照公式timestamp=(pts/90000)*48000对音频PTS数据(即,第二PTS数据)进行转换,其中,该公式中“pts”即为第二PTS数据。
在本发明的另一个可选实施方式中,按照实时传输协议标准对ES数据进行封装,得到RTP数据包包括如下步骤:
步骤S1081,对ES数据进行拆分,得到RTP负载数据包,其中,RTP负载数据包的数量至少为一个;
步骤S1082,根据预设配置参数和时间信息生成RTP负载数据包的头信息,其中,预设配置参数为RTP数据的传输参数;
步骤S1083,将RTP负载数据包的头信息与RTP负载数据包进行拼接,得到RTP数据。
具体地,在本发明实施例中,在得到上述音频ES数据和视频ES数据之后,就可以分别对音频ES数据和视频ES数据进行拆分,拆分得到音频RTP负载数据包和视频RTP负载数据包。其中,每个RTP负载数据包最多承载一个ES数据包。当ES数据大于一个RTP最大负载长度时,需要将ES数据拆分到多个RTP发送,其中,ES数据拆分完时,记录结束标志。
接下来,就可以根据上述时间信息和预设配置参数生成RTP负载数据包的头信息,具体,生成音频RTP负载数据包的头信息和视频RTP负载数据包的头信息。
最后,将音频RTP负载数据包的头信息与音频RTP负载数据包进行拼接,得到音频RTP数据;将视频RTP负载数据包的头信息与视频RTP负载数据包进行拼接,得到视频RTP数据,其中,音频RTP数据和视频RTP数据组成上述RTP数据。其中,预设配置参数包括:目的UDP端口,目的IP地址信息和RTP负载数据的负载类型。
在将TS码流转换成RTP数据之后,就可以向终端设备传输RTP数据包,具体传输步骤包括:
步骤S1084,获取当前时刻的上一时刻解析得到的历史PCR数据包;具体地,通过上述描述可知,目标结果中包括PCR数据包,因此,在传输RTP数据时,可以根据当前时刻的PCR数据和上一时刻的PCR数据来确定当前的网络传输速率,进而,根据当前的网络传输速率动态地对传输量进行调节。
步骤S1085,根据公式timeDelta=(PCR1-PCR0)/(27*1000*1000)计算传输预设数量个TS数据包的时间,其中,PCR1为PCR数据包中的PCR值,PCR0为历史PCR数据包中PCR值,timeDelta为传输预设数量个TS数据包的时间,预设数量为当前时刻传输的PCR数据包与上一时刻传输的PCR数据包之间TS数据包的个数;具体地,可以根据公式timeDelta=(PCR1-PCR0)/(27*1000*1000)计算传输预设数量个TS数据包的时间。
步骤S1086,根据公式bitRate=(packNum*188*8))/timeDelta计算当前时刻的网络传输速率,其中,packNum为所述预设数量,bitRate为网络传输速率;具体地,在计算传输预设数量个TS数据包的时间timeDelta之后,就可以根据公式bitRate=(packNum*188*8))/timeDelta计算网络传输速率。
步骤S1087,按照网络传输速率向终端设备传输RTP数据;具体地,在计算到当前时刻的网络传输速率bitRate之后,就可以根据计算的网络传输对RTP数据进行传输。
实施例2
下面将结合图3对本发明提供的TS码流转换为RTP码流的方法进行说明。
基于本发明实施例的设计实现的转换设备能够实现广电网络和RTP应用网络的连接。本发明提供的音视频TS码流的转换方法的具体流程描述如下:
步骤301,参数配置,即配置上述预设配置参数,具体包括:发送音频和视频的目的IP地址,目的UDP端口和PT(Payload Type:RTP负载类型)。
步骤302,TS接收与同步,即接收广电网络传输的TS码流数据,并对TS码流数据按照上述步骤S102中描述的方法进行同步处理。
具体地,根据TS码流的同步字节0x47和TS包长度188,做TS码流同步处理。每个输入包,校验包头为0x47,包长188后还是同步字节,判断数据同步,以保证能够正常识别TS码流数据包。
步骤303,PSI搜表与获取PCR数据包,即对TS码流数据中的PSI表进行搜表处理,以获取音频和视频流PID、音频和视频的流类型(stream_type)。
PSI搜表过程为:先查找PID为0x00的TS包PAT。在查找到该PAT表之后,对PAT表进行解析,进而根据PAT存储的节目列表,查找到PMT的PID。然后,根据在PAT中查找到的PMT的PID,搜索查找PMT表。并在查找到PMT表后,对PMT表进行解析,以获取到PCR PID、音频PID、视频PID,视频和音频的stream_type,并对数据进行存储。
步骤305,计算系统码率,即根据当前接受到PCR数据包,计算上次PCR数据包与本次PCR数据包之间的TS包个数packNum;然后,解析PCR的TS包获取到PCR值。其中,PCR的计数是基于27MHz时钟计数,两次PCR差值除27MHZ时钟获取传送packNum个TS包的时间。
具体地,可以根据下述公式计算系统码率(也即,网络传输速率):
timeDelta=(PCR1-PCR0)/(27*1000*1000),其中,PCR1为PCR数据包中的PCR值,PCR0为历史PCR数据包中PCR值,timeDelta为传输预设数量个TS数据包的时间,预设数量为当前时刻传输的PCR数据包与上一时刻传输的PCR数据包之间TS数据包的个数;具体地,可以根据公式timeDelta=(PCR1-PCR0)/(27*1000*1000)计算传输预设数量个TS数据包的时间;
bitRate=(packNum*188*8))/timeDelta,packNum为预设数量,bitRate为网络传输速率;具体地,在计算传输预设数量个TS数据包的时间timeDelta之后,就可以根据公式bitRate=(packNum*188*8))/timeDelta计算网络传输速率。
步骤306,TS包拆分重组PES,具体地,根据步骤303中解析得到的音频和视频PID,分别对音频TS数据包和视频TS数据包进行拆分,然后,并对拆分之后音频TS数据包和视频TS数据包进行拼接。根据TS包中的pay_load_start_endicator拼接成音频或视频PES数据包。在本发明实施例中,主要通过TS码流数据包中的pay_load_start_endicator对音频TS数据包和视频TS数据包进行拼接,进而分别得到音频PES数据包和视频PES数据包。其中,pay_load_start_endicator=1表示PES数据包的开始。
步骤307,PES数据包拆分为ES数据,具体地,提取PES数据包的头信息中的PTS数据进行保留,然后,去掉PES数据包的头信息,进而形成ES数据。具体地,PES数据结构如图4所示。
步骤308,PTS转timestamp,也即时间戳转换,以完成MPEG-TS系统的PTS到RTP系统的转换。
由于PTS的时间单位是90KHz,当发送音频包时,需要转换为音频编码采样率48KHz时间;当发送视频包时,两者时间单位都是90KHZ不需要转换。实例中音频采用48KHz。时间转换方式如下:timestamp=(pts/90000)*48000。
步骤309,生成RTP负载数据。每个RTP包最多承载一个ES数据包。ES数据大于一个RTP最大负载长度时,做数据拆分,其中,ES数据拆分完时,记录结束标志。
步骤310,生成RTP包头,具体地,按照标准生成RTP数据的头信息,其中,包头长度固定为12字节。如图5所示为一种可选的RTP数据的头信息,如图5所示,各个字段如下生成:
V(Version)配置为1;
P(padding)配置为0,不使用padding数据节省带宽;
X(extension)配置为0,不使用extension数据;
CC(CSRC count)配置为0,不使用CSRC;
M(marker)配置为0,根据步骤109的结束标志设置,有结束标志设置为1;
PT(payload type)按照配置参数添加;
sequence number:初始为0,后续每生成一个RTP头+1。音频和视频的RTP包有独立sequence number计数;
timestamp:使用步骤108获取timestamp;
SSRC(synchronization source identifier):固定的随机数,初始时生成,以后不变化。音频和视频流有独立的SSRC。
步骤311,拼接RTP头信息和负载数据,按照发送码率控制发送RTP,具体地,根据前端获取的系统码率bitRate,控制发送RTP数据,以保证码流的平稳。
综上,本发明实施例提出了一种音视频TS码流的转换方法,该方法将广播电视领域的音视频流转换为网络点播、视频监控电等领域的音视频流。本发明提出的音视频TS码流的转换方法为广播电视领域与网络视频、视频监控领域之间提供了沟通的桥梁。能够实现把广播电视的高画质高清晰度的视频节目用于网路视频、监控领域提供用户体验。进一步地,本发明实施例提供的音视频TS码流的转换方法,通过码流的格式转换,能够有效节省带宽满足低带宽需求。
本发明实施例还提供了一种TS码流转换为RTP码流的装置,该TS码流转换为RTP码流的装置主要用于执行本发明实施例上述内容所提供的TS码流转换为RTP码流的方法,以下对本发明实施例提供的音TS码流转换为RTP码流的装置做具体介绍。
图6是根据本发明实施例的一种TS码流转换为RTP码流的装置的示意图,如图6所示,该TS码流转换为RTP码流的装置主要包括:第一获取单元61、搜索单元62、拆分单元63和封装传输单元64,其中:
第一获取单元61,用于获取原始TS码流,并对原始TS码流进行同步处理,得到目标TS码流;
搜索单元62,用于对目标TS码流中的PSI表进行搜索,得到目标结果,其中,PSI表用于指示节目说明信息;
拆分单元63,用于根据目标结果对目标TS码流进行拆分,得到ES数据;
封装传输单元64,用于按照实时传输协议标准对ES数据进行封装,封装得到RTP数据包,并按照当前时刻的网络传输速率向终端设备传输RTP数据包。
在本发明实施例中,首先对获取到的原始TS码流进行同步处理,然后,对同步处理之后的目标TS码流进行搜表处理,得到搜索结果,接下来,根据目标结果对目标TS码流进行拆分,得到ES数据,最后,按照实时传输协议标准对ES数据进行封装,得到RTP数据包,在得到RTP数据包之后,就可以通过网络向接收终端传输TS码流。在本发明实施例中,达到了简化数据传输流程的目的,进而解决了现有技术中无法直接将广播电视系统中的数据直接发送至互联网直播系统的技术问题,从而实现了减小网络传输负担的技术效果。
可选地,ES数据包括视频ES数据和音频ES数据,目标结果包括视频TS数据包和音频TS数据包,拆分单元包括:第一确定模块,用于根据视频TS数据包中流类型确定视频PID,以及根据音频TS数据包中流类型确定音频PID;第一拆分模块,用于根据视频PID和PID分别对视频TS数据包和音频TS数据包进行拆分;第一拼接模块,用于对拆分之后的视频TS数据包和音频TS数据包进行拼接,得到视频PES数据包和音频PES数据包;删除模块,用于删除视频PES数据包和音频PES数据包的头信息,得到视频ES数据和音频ES数据。
可选地,拆分单元还包括:提取模块,用于在删除视频PES数据包和音频PES数据包的头信息,得到视频ES数据和音频ES数据之前,分别提取视频PES数据包和音频PES数据包的头信息中的PTS数据,得到第一PTS数据和第二PTS数据;转换模块,用于将第二PTS数据进行时间戳转换,并将第一PTS数据和转换之后的第二PTS数据作为时间信息。
可选地,封装传输单元包括:第二拆分单元,用于对ES数据进行拆分,得到RTP负载数据包,其中,RTP负载数据包的数量至少为一个;生成模块,用于根据预设配置参数和时间信息生成RTP负载数据包的头信息,其中,预设配置参数为RTP数据的传输参数;第二拼接模块,用于将RTP负载数据包的头信息与RTP负载数据包进行拼接,得到RTP数据。
可选地,预设配置参数包括:目的UDP端口,目的IP地址信息和RTP负载数据的负载类型。
可选地,目标结果包括PCR数据包,封装传输单元包括:获取模块,用于获取当前时刻的上一时刻解析得到的历史PCR数据包;第一计算模块,用于根据公式timeDelta=(PCR1-PCR0)/(27*1000*1000)计算传输预设数量个TS数据包的时间,其中,PCR1为PCR数据包中的PCR值,PCR0为历史PCR数据包中PCR值,timeDelta为传输预设数量个TS数据包的时间,预设数量为当前时刻传输的PCR数据包与上一时刻传输的PCR数据包之间TS数据包的个数;第二计算模块,用于根据公式bitRate=(packNum*188*8))/timeDelta计算当前时刻的网络传输速率,其中,packNum为预设数量,bitRate为网络传输速率;按照网络传输速率向终端设备传输RTP数据。
可选地,搜索单元包括:搜索模块,用于在PSI表中搜索节目关联表,其中,节目关联表的PID标识为第一预设标识;第一解析模块,用于对节目关联表进行解析,得到节目映射表,其中,节目映射表的PID标识为第二预设标识;第二解析模块,用于对节目关联表进行解析,得到视频TS数据包、音频TS数据包和PCR数据包。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (7)
1.一种TS码流转换为RTP码流的方法,其特征在于,包括:
获取目标TS码流;
对所述目标TS码流中的PSI表进行搜索,得到目标结果,其中,所述PSI表用于指示节目说明信息;
根据所述目标结果对所述目标TS码流进行拆分,得到ES数据;
按照实时传输协议标准对所述ES数据进行封装,封装得到RTP数据包,并按照当前时刻的网络传输速率向终端设备传输所述RTP数据包;
其中,所述ES数据包括视频ES数据和音频ES数据,所述目标结果包括视频TS数据包和音频TS数据包,根据所述目标结果对所述TS码流进行拆分,得到ES数据包括:
根据所述视频TS数据包中流类型确定视频PID,以及根据所述音频TS数据包中流类型确定音频PID;
根据所述视频PID和所述音频PID分别对所述视频TS数据包和所述音频TS数据包进行拆分;
对拆分之后的所述视频TS数据包和所述音频TS数据包进行拼接,得到视频PES数据包和音频PES数据包;
删除所述视频PES数据包和所述音频PES数据包的头信息,得到所述视频ES数据和所述音频ES数据;
其中,所述目标结果包括PCR数据包,向终端设备传输所述RTP数据包包括:
获取所述当前时刻的上一时刻解析得到的历史PCR数据包;
根据公式timeDelta=(PCR1-PCR0)/(27*1000*1000)计算传输预设数量个TS数据包的时间,其中,PCR1为所述PCR数据包中的PCR值,PCR0为所述历史PCR数据包中PCR值,timeDelta为传输预设数量个TS数据包的时间,所述预设数量为当前时刻传输的PCR数据包与上一时刻传输的PCR数据包之间TS数据包的个数;
根据公式bitRate=(packNum*188*8))/timeDelta计算当前时刻的网络传输速率,其中,packNum为所述预设数量,bitRate为所述网络传输速率;
按照所述网络传输速率向所述终端设备传输所述RTP数据。
2.根据权利要求1所述的方法,其特征在于,在删除所述视频PES数据包和所述音频PES数据包的头信息,得到所述视频ES数据和所述音频ES数据之前,所述方法还包括:
分别提取所述视频PES数据包和所述音频PES数据包的头信息中的PTS数据,得到第一PTS数据和第二PTS数据;
将所述第二PTS数据进行时间戳转换,并将所述第一PTS数据和转换之后的所述第二PTS数据作为时间信息。
3.根据权利要求2所述的方法,其特征在于,按照实时传输协议标准对所述ES数据进行封装,得到RTP数据包包括:
对所述ES数据进行拆分,得到RTP负载数据包,其中,所述RTP负载数据包的数量至少为一个;
根据预设配置参数和时间信息生成所述RTP负载数据包的头信息,其中,所述预设配置参数为所述RTP数据的传输参数;
将所述RTP负载数据包的头信息与所述RTP负载数据包进行拼接,得到所述RTP数据。
4.根据权利要求3所述的方法,其特征在于,所述预设配置参数包括:目的UDP端口,目的IP地址信息和所述RTP负载数据的负载类型。
5.根据权利要求2所述的方法,其特征在于,对所述目标TS码流中的PSI表进行搜索,得到目标结果包括:
在所述PSI表中搜索节目关联表,其中,所述节目关联表的PID标识为第一预设标识;
对所述节目关联表进行解析,得到节目映射表,其中,所述节目映射表的PID标识为第二预设标识;
对所述节目关联表进行解析,得到所述视频TS数据包、所述音频TS数据包和所述PCR数据包。
6.一种TS码流转换为RTP码流的装置,其特征在于,包括:
第一获取单元,用于获取原始TS码流,并对所述原始TS码流进行同步处理,得到目标TS码流;
搜索单元,用于对所述目标TS码流中的PSI表进行搜索,得到目标结果,其中,所述PSI表用于指示节目说明信息;
拆分单元,用于根据所述目标结果对所述目标TS码流进行拆分,得到ES数据;
封装传输单元,用于按照实时传输协议标准对所述ES数据进行封装,封装得到RTP数据包,并按照当前时刻的网络传输速率向终端设备传输所述RTP数据包;
其中,所述ES数据包括视频ES数据和音频ES数据,所述目标结果包括视频TS数据包和音频TS数据包,所述拆分单元包括:
第一确定模块,用于根据所述视频TS数据包中流类型确定视频PID,以及根据所述音频TS数据包中流类型确定音频PID;
第一拆分模块,用于根据第一PID标识和第二PID标识分别对所述视频TS数据包和所述音频TS数据包进行拆分,其中,所述第一PID标识为所述视频TS数据包中的标识,所述第二PID标识为所述音频TS包中的标识;
第一拼接模块,用于对拆分之后的所述视频TS数据包和所述音频TS数据包进行拼接,得到视频PES数据包和音频PES数据包;
删除模块,用于删除所述视频PES数据包和所述音频PES数据包的头信息,得到所述视频ES数据和所述音频ES数据;
其中,所述目标结果包括PCR数据包,所述封装传输单元包括:获取模块,用于获取当前时刻的上一时刻解析得到的历史PCR数据包;第一计算模块,用于根据公式timeDelta=(PCR1-PCR0)/(27*1000*1000)计算传输预设数量个TS数据包的时间,其中,PCR1为PCR数据包中的PCR值,PCR0为历史PCR数据包中PCR值,timeDelta为传输预设数量个TS数据包的时间,预设数量为当前时刻传输的PCR数据包与上一时刻传输的PCR数据包之间TS数据包的个数;第二计算模块,用于根据公式bitRate=(packNum*188*8))/timeDelta计算当前时刻的网络传输速率,其中,packNum为预设数量,bitRate为网络传输速率;按照网络传输速率向终端设备传输RTP数据。
7.根据权利要求6所述的装置,其特征在于,所述拆分单元还包括:
提取模块,用于在删除所述视频PES数据包和所述音频PES数据包的头信息,得到所述视频ES数据和所述音频ES数据之前,分别提取所述视频PES数据包和所述音频PES数据包的头信息中的PTS数据,得到第一PTS数据和第二PTS数据;
转换模块,用于将所述第二PTS数据进行时间戳转换,并将所述第一PTS数据和转换之后的所述第二PTS数据作为时间信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611174581.6A CN106790044B (zh) | 2016-12-19 | 2016-12-19 | Ts码流转换为rtp码流的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611174581.6A CN106790044B (zh) | 2016-12-19 | 2016-12-19 | Ts码流转换为rtp码流的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106790044A CN106790044A (zh) | 2017-05-31 |
CN106790044B true CN106790044B (zh) | 2020-04-17 |
Family
ID=58889876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611174581.6A Active CN106790044B (zh) | 2016-12-19 | 2016-12-19 | Ts码流转换为rtp码流的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790044B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108174283A (zh) * | 2017-12-27 | 2018-06-15 | 威创集团股份有限公司 | 一种视频信号源产生方法及装置 |
CN108173861A (zh) * | 2017-12-29 | 2018-06-15 | 北京奇虎科技有限公司 | 一种视频直播的方法、装置和直播分发连接器 |
CN110798731A (zh) * | 2019-11-15 | 2020-02-14 | 北京字节跳动网络技术有限公司 | 视频数据的处理方法、装置、电子设备及计算机可读介质 |
CN110753259B (zh) * | 2019-11-15 | 2022-01-25 | 北京字节跳动网络技术有限公司 | 视频数据的处理方法、装置、电子设备及计算机可读介质 |
CN114531606B (zh) * | 2022-02-22 | 2023-04-11 | 重庆紫光华山智安科技有限公司 | 封装待传输视频数据生成、视频传输方法、系统及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179736A (zh) * | 2006-11-08 | 2008-05-14 | 中兴通讯股份有限公司 | 一种传输流节目转换成中国移动多媒体广播节目的方法 |
CN101951387A (zh) * | 2010-09-30 | 2011-01-19 | 海信集团有限公司 | 流媒体传输方法及装置 |
CN202009471U (zh) * | 2011-04-18 | 2011-10-12 | 北京歌华有线数字媒体有限公司 | 基于dvb传输的流媒体边缘适配器装置 |
-
2016
- 2016-12-19 CN CN201611174581.6A patent/CN106790044B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179736A (zh) * | 2006-11-08 | 2008-05-14 | 中兴通讯股份有限公司 | 一种传输流节目转换成中国移动多媒体广播节目的方法 |
CN101951387A (zh) * | 2010-09-30 | 2011-01-19 | 海信集团有限公司 | 流媒体传输方法及装置 |
CN202009471U (zh) * | 2011-04-18 | 2011-10-12 | 北京歌华有线数字媒体有限公司 | 基于dvb传输的流媒体边缘适配器装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106790044A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790044B (zh) | Ts码流转换为rtp码流的方法和装置 | |
US10715844B2 (en) | Method and apparatus for transceiving data for multimedia transmission system | |
US8532171B1 (en) | Multiple stream adaptive bit rate system | |
CN100568971C (zh) | 一种mpeg-4的传输码流到互联网流媒体联盟流的实时转换方法 | |
CN102665141B (zh) | 一种基于rtp封装的avs音视频预同步方法 | |
US10939160B2 (en) | Fast change method for DVB channel, device, and system | |
WO2008055420A1 (fr) | Procédé de synchronisation entre différents flux de média et un système | |
Schierl et al. | Scalable video coding over RTP and MPEG-2 transport stream in broadcast and IPTV channels | |
US20140369222A1 (en) | Method for estimating network jitter in apparatus for transmitting coded media data | |
Standard | Transport of high bit rate media signals over IP networks (HBRMT) | |
EP3142369A1 (en) | Broadcast signal transmission apparatus, broadcast signal reception apparatus, broadcast signal transmission method, and broadcast signal reception method | |
CN101193290A (zh) | 一种mpeg-4的传输码流到互联网流媒体联盟流的实时转换系统 | |
EP2363972A1 (en) | Mapping of service components to physical-layer pipes | |
CN101179738B (zh) | 一种传输流到中国移动多媒体广播复用协议的转换方法 | |
JP2023021166A (ja) | 送信方法および受信装置 | |
EP3217606A1 (en) | Transmission device, transmission method, reception device, and reception method | |
Van Phuoc et al. | Design and implementation of versatile live multimedia streaming for IP network camera | |
Yu et al. | Design and Implementation of TS over IP Gateway System | |
EP3035691A2 (en) | Methods and apparatus for minimizing timing artifacts in remultiplexing | |
CN101179737B (zh) | 一种多媒体广播网络中复用协议的转换方法 | |
Kim et al. | A Study on Packet Recombination based QoS/QoE Guaranteeing Scheme for Real-time IPTV Services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |