CN101951387A - 流媒体传输方法及装置 - Google Patents
流媒体传输方法及装置 Download PDFInfo
- Publication number
- CN101951387A CN101951387A CN2010105061535A CN201010506153A CN101951387A CN 101951387 A CN101951387 A CN 101951387A CN 2010105061535 A CN2010105061535 A CN 2010105061535A CN 201010506153 A CN201010506153 A CN 201010506153A CN 101951387 A CN101951387 A CN 101951387A
- Authority
- CN
- China
- Prior art keywords
- frame
- bag
- packing
- data
- described frame
- 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.)
- Pending
Links
Images
Abstract
本发明实施例提供了一种流媒体传输方法及装置,涉及通信技术领域。为了提高用户对H.264流媒体的收视体验,本发明提供的技术方案如下:从H.264数据流中依次获取数据帧;将获取的数据帧打包转化为PES包;将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据;将所述TS包打包转化为RTP包;根据客户端发送的RTCP报文发送所述RTP包。本发明适用于3G网络的多媒体传输。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种流媒体传输方法及装置。
背景技术
3G技术可以更好地实现图像、音乐、视频等多种媒体信息,并提供实时监控、视频通话、手机电视等采用流媒体传输技术的功能。视频压缩标准H.264因其高压缩率、高质量、低码率的特点,成为了当前流媒体传输的主流标准。
目前,现有技术提供了通过基于RTP/RTCP(Real-time TransportProtocol/RTP Control Protocol,实时传输/控制协议)传输H.264流媒体的方法,其根据客户端的反馈信息对网络状态进行分析,并根据分析结果对H.264基本流直接打包转化成的RTP包的传输进行调整控制,以此降低H.264流媒体传输时的延时和丢包率,提高用户对H.264流媒体的收视体验。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:RTP包由H.264基本流直接打包而成时,当同步信息丢失时会造成数据丢失、误码的现象。TS(Transport Stream,传送流)格式可以在同步信息丢失时恢复数据信息,但在H.264基本流转换成TS流时,通过在TS流中插入空包进行PSI(Program Special Information,节目特定信息)数据和PCR(Program Clock Reference,节目时钟参考)信息的插入,这样就会造成传输的数据量大,在带宽受限的3G网络上传输时会降低用户对H.264流媒体的收视体验。
发明内容
本发明的实施例提供一种流媒体传输方法及装置,能够提高用户对H.264流媒体的收视体验。
为达到上述目的,本发明的实施例采用如下技术方案:
一种流媒体传输方法,包括:
从H.264数据流中依次获取数据帧;
将获取的数据帧打包转化为PES包;
将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据;
将所述TS包打包转化为RTP包;
根据客户端发送的RTCP报文发送所述RTP包。
一种流媒体传输装置,包括:
数据获取单元,用于从H.264数据流中依次获取数据帧;
数据打包单元,用于将所述数据获取单元获取的数据帧打包转化为PES包;将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据;
数据传送单元,用于将所述数据打包单元输出的TS包打包转化为RTP包,并根据客户端发送的RTCP报文发送所述RTP包。
本发明实施例提供的流媒体传输方法及装置,通过从H.264数据流中依次获取数据帧,并将获取的数据帧打包转化为PES包,然后,将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据,根据客户端发送的RTCP报文发送由TS包打包转化成的RTP包。因此,不需要在将H.264数据流转换的TS流时在该TS流中插入空包,减小了传输的数据量,并且使3G环境下H.264流媒体的传输误码率得到保障。从而提高用户对H.264流媒体的收视体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种流媒体传输方法的流程示意图;
图2为本发明实施例提供的另一种流媒体传输方法的流程示意图;
图3为本发明实施例提供的PTS值和DTS值的设置方法的流程示意图;
图4为本发明实施例提供的将所述PE S包打包转化为TS包的方法的流程示意图;
图5为本发明实施例提供的一种流媒体传输装置的构成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了能够提高用户对H.264流媒体的收视体验,本发明实施例提供了一种流媒体传输方法,如图1所示,包括:
101、从H.264数据流中依次获取数据帧;
举例而言,可以在接收H.264数据流时,以帧为单位存储该H.264数据流,依次读取存储的该H.264数据流的数据帧。
102、将获取的数据帧打包转化为PES(Packetised ElementaryStreams,包化基本数据流)包;
举例而言,可以从获取的数据帧的数据信息中获取帧速率,并根据该帧速率获取该数据帧的PTS(Presentation Time Stamp,显示时间标签)值和DTS(Decoding Time Stamp,解码时间标签)值,然后,根据该PTS值和DTS值将该数据帧打包转化为PES包。
其中,可以根据帧速率获取帧历时,并按照以下不同情况获取该数据帧的PTS和DTS值:
在所述数据帧为I帧,且所述数据帧的下一数据帧为P帧时,或者,在所述数据帧和所述数据帧的下一数据帧均为P帧时,根据所述帧历时和所述数据帧的序号获取所述数据帧的DTS值,根据所述帧历时和所述数据帧的下一数据帧的序号获取所述数据帧的PTS值;
在所述数据帧为I帧,且所述数据帧的下一数据帧为B帧时,或者,在所述数据帧为P帧,且所述数据帧的下一数据帧不是P帧时,根据所述帧历时和所述数据帧的序号获取所述数据帧的DTS值,根据所述帧历时,所述数据帧的序号,所述数据帧的图像编码输入顺序以及所述数据帧的上一数据帧的图像编码输入顺序获取所述数据帧的PTS值;
在所述数据帧为B帧时,根据所述帧历时和所述数据帧的序号获取所述数据帧的DTS值和PTS值。
103、将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据;
举例而言,可以先设置所述H.264数据流对应的PSI数据,所述PSI数据包括PAT表(Program Association Table,节目关联表)和PMT表(Program Map Table,节目映射表)和NIT表(NerworkInformation Table,网络信息表),获取所述数据帧的PCR信息,并根据所述帧速率获取插入时间间隔。然后,分别对所述PES包和所述PSI数据进行TS打包。在TS打包过程中,根据所述插入时间间隔在所述PES包打包转化成的TS包中确定信息插入包,在所述信息插入包中添加获取的PCR信息。并且,在所述PES包打包转化成的TS包队列中,在所述信息插入包之后插入所述PSI数据打包转化成的TS包。
104、将所述TS包打包转化为RTP包;
举例而言,依次对TS包设置RTP包时间戳,根据所述RTP包时间戳将TS包打包转化为RTP包。另外,在至少四个TS包所对应的RTP包时间戳分别同时生成时,将四个TS包打包转化为一个RTP。
105、根据客户端发送的RTCP报文发送所述RTP包。
举例而言,可以根据客户端发送的RTCP报文获取客户端丢失的RTP包的数量,在所述丢失的RTP包的数量大于阈值时,将当前的发送时间延时,然后,根据延时后的发送时间向客户端发送所述RTP包。
本发明实施例提供的流媒体传输方法,通过从H.264数据流中依次获取数据帧,并将获取的数据帧打包转化为PES包,然后,将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据,根据客户端发送的RTCP报文发送由TS包打包转化成的RTP包。因此,不需要在将H.264数据流转换的TS流时在该TS流中插入空包,减小了传输的数据量,并且使3G环境下H.264流媒体的传输误码率得到保障。从而提高用户对H.264流媒体的收视体验。
下面,以在3G网络下服务器端向客户端传输H.264视频流为例,对上一实施例作进一步详细的描述。
如图2所示,本实施例流媒体传输方法,包括:
201、服务器端启动系统,执行与H.264视频流传输相关的预设置操作。
举例而言,服务器端启动系统后,预先设置一个输入缓冲区,其用于存放需要打包的H.264数据。同时启动一个存储数据的线程,在此将该线程称为R线程,其用于将输入的一个H.264视频流,以帧为单位存放到缓冲区中。
并且,预先设置一个输出缓冲区,用来存放打包后的TS流数据。同时启动一个处理数据的线程,在此将该线程称为W线程,其用于进行TS打包和TS包传输。
202、服务器端依次获取H.264视频流的数据帧,将该数据帧存放到输入缓冲区。
举例而言,R线程根据一定的存储速度,将一帧一帧的H.264数据存放到输入缓冲区。其中,该存储速度是由图像的显示设置所决定,例如,图像的显示设置为25帧/S,那么R线程每隔40ms才向输入缓冲区中存入一帧H.264数据。
并且,R线程每向输入缓冲区中存入一帧H.264数据时,向线程W发送中断信号,要求W线程对该帧H.264数据进行处理。W线程接收该中断信号后,将该中断信号的事件加入到消息处理队列中,依次对该消息处理队列中的事件进行处理。
203、服务器端依次从输入缓冲区中获取H.264视频流的数据帧,将获取的数据帧打包转化为PES包。
举例而言,W线程从输入缓冲区中读取一帧H.264数据,设置该H.264数据帧打包后的PES包的PTS值和DTS值,其中,PTS用于规定该H.264数据帧的显示时间,DTS用于预定该H.264数据帧的解码时间。在设置了PTS值和DTS值后,将PES包头信息封装在H.264数据的前部,得到PES包。其中,PTS值和DTS值的设置方法可以如图3所示,其具体可以为:
2031、对读取的H.264数据帧进行解析,获取帧速率和图像编码输入顺序;
例如,对读取的H.264数据帧进行解析,根据H.264数据帧的frame_rate_code字段的内容获取该H.264数据帧的帧速率frame_rate,并从H.264数据帧的picture-head()中获取该H.264数据帧的图像编码输入顺序,即temporal-reference的值,该temporal-reference值的长度为10bit,表示编码时图像输入的顺序。
根据以下公式计算该H.264数据帧的帧历时frame_time:
frame_time=(1/frame_rate)×90000
H.264数据压缩采用预测编码,H.264数据帧的编码顺序和显示顺序可能不同,因此,还需要根据该H.264数据帧的前后各帧的情况确定该H.264数据帧的DTS值和PTS值。
2032、判断当前的H.264数据帧是否是I帧(内部编码帧);若当前的H.264数据帧是I帧,则进入步骤2033,否则跳至步骤2036。
2033、判断当前的H.264数据帧的下一H.264数据帧是否是P帧,若下一H.264数据帧是P帧,进入步骤2034,否则跳至步骤2035。
2034、根据当前的H.264数据帧的帧历时和序号获取DTS值,根据当前的H.264数据帧的帧历时和下一H.264数据帧的序号获取PTS值。
例如,在当前的H.264数据帧是I帧,且下一H.264数据帧是P帧时,当前的H.264数据帧一般为视频序列的第一帧,假设当前的H.264数据帧的序号为N,下一H.264数据帧的序号为N+1,那么根据下述公式计算当前的H.264数据帧的DTS值和PTS值:
DTS(N)=frame_time×N
PTS(N)=frame_time×(N+1)
2035、根据当前的H.264数据帧的帧历时和序号获取DTS值,根据当前的H.264数据帧的帧历时、序号和图像编码输入顺序,以及上一H.264数据帧的图像编码输入顺序获取PTS值。
例如,如果当前的H.264数据帧是I帧,其下一帧不是P帧而是B帧,那么可以根据下述公式计算当前的H.264数据帧的DTS值和PTS值:
DTS(N)=frame_time×N
PTS(N)=frame_time×
(N+temporal_reference(N)-temporal_reference(N-1))
其中,N为当前的H.264数据帧的序号,temporal_reference(N)为当前的H.264数据帧的图像编码输入顺序,temporal_reference(N-1)为上一H.264数据帧的图像编码输入顺序。
2036、判断当前的H.264数据帧是否为B帧,若当前的H.264数据帧是B帧,则进入步骤2037,否则跳至步骤2033。
2037、根据当前的H.264数据帧的帧历时和序号获取DTS值和PTS值。
例如,在当前的H.264数据帧为B帧时,应立即解码显示,因此,可以根据下述公式计算当前的H.264数据帧的DTS值和PTS值:
DTS(N)=PTS(N)=frame_time×N。
其中,N为当前的H.264数据帧的序号。
204、服务器端将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据;
其中,TS流是MPEG-2系统中的信息流格式。这种信息流格式的优点在于TS流的包结构是固定长度的。当传输过程中出现误码,破坏了某一个TS包的同步信息时,接收机可在固定的位置检测它后面的包中的同步信息,从而恢复同步,避免信息丢失。因此在网络环境恶劣的条件下,传输的误码率较高时,一般采用TS码流传输。
如图4所示,将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据的方法具体可以为:
2041、设置该H.264视频流的PSI数据。
例如,可以自定义地设置PMT表、NIT表和PES流的PID值,然后根据设置的PID值构建PAT表、PMT表和NIT表。
2042、设置该H.264数据帧的PCR信息。
例如,可以根据下述公式计算该H.264数据帧的PCR值:
PCR(N)=N×TransTime+(12×8×27000000)/Trans_rate.
其中,12×8表示PCR字段结尾距离传输包头为12个字节。TransTime为数据帧的传输时间,Trans_rate为数据帧的发送速率,TransTime和Trans_rate的值可以自行定义。N为该H.264数据帧的序号。
2043、根据该H.264数据帧的帧速率获取插入时间间隔。
其中,所述插入时间间隔表示将PSI数据的TS包和带有PCR信息的TS包插入到TS流中的时间间隔,插入时间间隔T可以通过以下公式计算得出:
T=1/frame_rate。
例如,在PAL(Phase Alternating Line,逐行倒相)制式下该H.264数据帧的帧速率为25帧/s,那么插入时间间隔T为40ms。即,每隔40ms将PSI数据的TS包和带有PCR信息的TS包插入到TS流中。也就是说,在本实施例中,分别对每一个H.264数据帧进行TS打包处理,并且每隔一个H.264数据帧便将PSI数据和PCR信息插入到TS流中,为流媒体同步提供有效的手段。
2044、分别对所述PES包和所述PSI数据进行TS打包;
例如,首先计算TS包头大小,因为每个TS包大小都为188个字节,需要将PES进行分割,按照184个字节对PES包进行分割,分割成多个分割段。每分割出一个184个字节的分割段,写入4个字节的TS包头信息,并且,还可以根据TS流格式的要求,对该TS包头信息进行CRC(Cyclical Redundancy Check,循环冗余码校验)数据验证,然后将验证结果和该TS包头信息放在该分割段的前面打包成一个TS包。如果最后一个分割段不够184个字节,则计算分割段实际大小与184个字节的差值,然后在TS包头中根据差值个数用0xFF填充。
并且,根据计算的插入时间间隔在所述PES包打包转化成的TS包中确定信息插入包,在所述信息插入包中添加获取的PCR信息,并且,在所述PES包打包转化成的TS包队列中,在所述信息插入包之后插入所述PSI数据打包转化成的TS包。
205、服务器端将生成的TS包输出到输出缓冲区中。
举例而言,W线程将形成的TS包输出到输出缓冲区中。线程W查看消息处理队列中是否存在中断信号的事件,即是否存在尚未处理的数据帧。如果W线程确定存在尚未处理的数据帧,则继续按照上文所述的步骤202-205进行处理,直至输入缓冲区中所有的H.264数据帧都打包完毕。如果W线程确定不存在尚未处理的数据帧,则等待R线程发送中断信号。
206、服务器端读取输出缓冲区中的TS包,将读取的TS包打包转化为RTP包,向客户端传输形成的RTP包。
举例而言,服务器端启动一个线程,用于根据RTP协议内容将从输出缓冲区中读取的TS包作为RTP负载,通过底层的3G网络发送出去,在此将该线程称为N线程。N线程在将TS包打包转化为RTP时,需要设置RTP包的时间戳,该时间戳反映了RTP数据包中第一个字节的采样时间。其中,采样时钟必须来源于一个及时的单调、线性递增时钟,以便允许同步和去除网络引起的数据包抖动。因此,该采样时钟的分辨率必须满足理想的同步精度和测量数据包到来时的抖动的需要,并且,时钟频率依赖于负载数据的格式。在本实施例中,时间戳的初始值是随机产生的,就像数据帧的序号一样。另外,如果多个连续的TS包打包转化成的RTP包的时间戳在逻辑上属于同时产生的,且该TS包的数量超过四个,则在此将4个TS包组成一个RTP包。另外,如果TS包的数量不足4个时,则将这几个TS包打包成一个RTP包。并且,在进行RTP打包的同时,将时间戳增量设置为20*90。
207、服务器端实时监控客户端发送的RTCP报文,根据接收的RTCP报文调整RTP包的发送策略。
举例而言,服务器端启动一个线程,用于接收RTCP包,并指示N线程进行调整,在此将该线程称为P线程。P线程启动后,实时向客户端发送RTCP-SR报文和RTCP-APP报文,客户端接收RTCP-SR报文和RTCP-APP报文后,实时向客户端反馈RTCP-RR报文和RTCP-APP报文。服务器端接收客户端反馈的RTCP-RR报文和RTCP-APP报文后,对接收的报文进行解析,可以获取往返时间、网络延时、丢包率等参数,根据这些参数分析当前的网络状况,如网络带宽和运行状态,然后,根据分析出的网络状况,进行发送相关参数的调整。例如,服务器端预先设定一个阈值n,对接收的客户端反馈的RTCP-RR报文和RTCP-APP解析,获知客户端丢失包的数目为m,当m>n时,则说明网络状况比较差,P线程向N线程发送中断请求。而N线程接收该中断信号后,以一定的延时时间向3G网络发送RTP包。
本发明实施例提供的流媒体传输方法,通过从H.264视频流中依次获取数据帧,并将获取的数据帧打包转化为PES包,然后,将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据,根据客户端发送的RTCP报文发送由TS包打包转化成的RTP包。因此,不需要在将H.264视频流转换的TS流时在该TS流中插入空包,减小了传输的数据量,并且使3G环境下H.264流媒体的传输误码率得到保障。从而提高用户对H.264流媒体的收视体验。另外,采用多线程技术进行TS流转换、传输等处理,因而处理速度更快,能够更好的实现性能要求。并且,在Ts流中添加CRC校验码,针对单个数据包里的包头信息进行校验,这样在数据量上比较小,并且在处理过程中简单,更适用于3G网络传输。
与上述方法相对应地,本发明实施例还提供了一种流媒体传输装置,如图5所示,包括:
数据获取单元301,用于从H.264数据流中依次获取数据帧;
数据打包单元302,用于将所述数据获取单元301获取的数据帧打包转化为PES包;将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据;
数据传送单元303,用于将所述数据打包单元302输出的TS包打包转化为RTP包,并根据客户端发送的RTCP报文发送所述RTP包。
进一步地,所述数据打包单元302包括:
帧速率获取子单元,用于从所述数据帧的数据信息中获取帧速率;
同步信息获取子单元,用于根据所述帧速率获取所述数据帧的PTS值和DTS值;
第一打包子单元,用于根据所述PTS值和DTS值将所述数据帧打包转化为PES包;
节目信息设置子单元,用于设置所述H.264数据流对应的PSI数据,所述PSI数据包括PAT表和PMT表和NIT表;
时钟获取子单元,用于获取所述数据帧的PCR信息;
时间间隔获取子单元,用于根据所述帧速率获取插入时间间隔;
第二打包子单元,用于分别对所述PES包和所述PSI数据进行TS打包;
数据插入子单元,用于根据所述插入时间间隔在所述PES包打包转化成的TS包中确定信息插入包;在所述信息插入包中添加获取的PCR信息;在所述PES包打包转化成的TS包队列中,在所述信息插入包之后插入所述PSI数据打包转化成的TS包。
进一步地,所述数据传送单元303包括:
第三打包子单元,用于将所述数据打包单元输出的TS包打包转化为RTP包;
报文交互子单元,用于与客户端交互RTCP报文;
丢包数量获取子单元,用于根据所述报文交互子单元接收的RTCP报文获取客户端丢失的RTP包的数量;
延时发送子单元,用于在所述丢失的RTP包的数量大于阈值时,将当前的发送时间延时;并根据延时后的发送时间向客户端发送所述RTP包。
在本发明实施例中,所述流媒体传输装置的具体工作流程可以参看图1至图5所描述的方法,在此不再赘述。
本发明实施例提供的流媒体传输装置,通过从H.264数据流中依次获取数据帧,并将获取的数据帧打包转化为PES包,然后,将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据,根据客户端发送的RTCP报文发送由TS包打包转化成的RTP包。因此,不需要在将H.264数据流转换的TS流时在该TS流中插入空包,减小了传输的数据量,并且使3G环境下H.264流媒体的传输误码率得到保障。从而提高用户对H.264流媒体的收视体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种流媒体传输方法,其特征在于,包括:
从H.264数据流中依次获取数据帧;
将获取的数据帧打包转化为基本数据流PES包;
将所述PES包打包转化为传送流TS包,并根据所述数据帧的帧速率在所述TS包中插入节目时钟参考PCR信息和节目特定信息PSI数据;
将所述TS包打包转化为实时传输协议RTP包;
根据客户端发送的实时控制协议RTCP报文发送所述RTP包。
2.根据权利要求1所述的流媒体传输方法,其特征在于,所述将获取的数据帧打包转化为PES包包括:
从所述数据帧的数据信息中获取帧速率;
根据所述帧速率获取所述数据帧的显示时间标签PTS值和解码时间标签DTS值;
根据所述PTS值和DTS值将所述数据帧打包转化为PES包。
3.根据权利要求2所述的流媒体传输方法,其特征在于,所述根据所述帧速率获取所述数据帧的PTS值和DTS值包括:
根据帧速率获取帧历时;
在所述数据帧为I帧,且所述数据帧的下一数据帧为P帧时,或者,在所述数据帧和所述数据帧的下一数据帧均为P帧时,根据所述帧历时和所述数据帧的序号获取所述数据帧的DTS值,根据所述帧历时和所述数据帧的下一数据帧的序号获取所述数据帧的PTS值;
在所述数据帧为I帧,且所述数据帧的下一数据帧为B帧时,或者,在所述数据帧为P帧,且所述数据帧的下一数据帧不是P帧时,根据所述帧历时和所述数据帧的序号获取所述数据帧的DTS值,根据所述帧历时,所述数据帧的序号,所述数据帧的图像编码输入顺序以及所述数据帧的上一数据帧的图像编码输入顺序获取所述数据帧的PTS值;
在所述数据帧为B帧时,根据所述帧历时和所述数据帧的序号获取所述数据帧的DTS值和PTS值。
4.根据权利要求2所述的流媒体传输方法,其特征在于,所述将所述PE S包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据包括:
设置所述H.264数据流对应的PSI数据,所述PSI数据包括节目映射表PAT表和节目映射表PMT表和网络信息表NIT表;
获取所述数据帧的PCR信息;
根据所述帧速率获取插入时间间隔;
分别对所述PES包和所述PSI数据进行TS打包;
根据所述插入时间间隔在所述PES包打包转化成的TS包中确定信息插入包;
在所述信息插入包中添加获取的PCR信息;
在所述PES包打包转化成的TS包队列中,在所述信息插入包之后插入所述PSI数据打包转化成的TS包。
5.根据权利要求4所述的流媒体传输方法,其特征在于,所述对所述PES包进行TS打包包括:
根据规定的大小对所述PES包进行分割;
在分割段不足所述规定大小时,根据所述分割段与所述规定大小的差值,在所述分割段对应的TS包头中填充0xFF。
6.根据权利要求1所述的流媒体传输方法,其特征在于,所述将所述TS包打包转化为RTP包包括:
在至少四个TS包所对应的RTP包时间戳分别同时生成时,将四个TS包打包转化为一个RTP。
7.根据权利要求1所述的流媒体传输方法,其特征在于,所述方法的每个步骤分别通过一个线程实现,所述线程之间采用中断请求的方式进行通信。
8.一种流媒体传输装置,其特征在于,包括:
数据获取单元,用于从H.264数据流中依次获取数据帧;
数据打包单元,用于将所述数据获取单元获取的数据帧打包转化为PES包;将所述PES包打包转化为TS包,并根据所述数据帧的帧速率在所述TS包中插入PCR信息和PSI数据;
数据传送单元,用于将所述数据打包单元输出的TS包打包转化为RTP包,并根据客户端发送的RTCP报文发送所述RTP包。
9.根据权利要求8所述的流媒体传输装置,其特征在于,所述数据打包单元包括:
帧速率获取子单元,用于从所述数据帧的数据信息中获取帧速率;
同步信息获取子单元,用于根据所述帧速率获取所述数据帧的PTS值和DTS值;
第一打包子单元,用于根据所述PTS值和DTS值将所述数据帧打包形成PES包;
节目信息设置子单元,用于设置所述H.264数据流对应的PSI数据,所述PSI数据包括PAT表和PMT表和NIT表;
时钟获取子单元,用于获取所述数据帧的PCR信息;
时间间隔获取子单元,用于根据所述帧速率获取插入时间间隔;
第二打包子单元,用于分别对所述PES包和所述PSI数据进行TS打包;
数据插入子单元,用于根据所述插入时间间隔在所述PES包打包转化成的TS包中确定信息插入包;在所述信息插入包中添加获取的PCR信息;在所述PES包打包转化成的TS包队列中,在所述信息插入包之后插入所述PSI数据打包转化成的TS包。
10.根据权利要求8所述的流媒体传输装置,其特征在于,所述数据传送单元包括:
第三打包子单元,用于将所述数据打包单元输出的TS包打包转化为RTP包;
报文交互子单元,用于与客户端交互RTCP报文;
丢包数量获取子单元,用于根据所述报文交互子单元接收的RTCP报文获取客户端丢失的RTP包的数量;
延时发送子单元,用于在所述丢失的RTP包的数量大于阈值时,将当前的发送时间延时;并根据延时后的发送时间向客户端发送所述RTP包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105061535A CN101951387A (zh) | 2010-09-30 | 2010-09-30 | 流媒体传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105061535A CN101951387A (zh) | 2010-09-30 | 2010-09-30 | 流媒体传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101951387A true CN101951387A (zh) | 2011-01-19 |
Family
ID=43454747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105061535A Pending CN101951387A (zh) | 2010-09-30 | 2010-09-30 | 流媒体传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101951387A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710512A (zh) * | 2012-05-23 | 2012-10-03 | 成都三零凯天通信实业有限公司 | 一种跨平台的流发生器及控制方法 |
CN102752669A (zh) * | 2011-04-19 | 2012-10-24 | 中国电信股份有限公司 | 多通道实时流媒体文件的传送处理方法与系统、接收装置 |
CN103561281A (zh) * | 2013-10-25 | 2014-02-05 | Tcl集团股份有限公司 | 一种多媒体数据共享的方法及装置 |
CN105049904A (zh) * | 2015-07-27 | 2015-11-11 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的播放方法和装置 |
CN105049920A (zh) * | 2015-07-27 | 2015-11-11 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的录制方法和装置 |
CN105227552A (zh) * | 2015-09-25 | 2016-01-06 | 重庆邮电大学 | 一种td-lte应急终端语音业务质量保障方法 |
CN105325007A (zh) * | 2013-09-20 | 2016-02-10 | 松下电器(美国)知识产权公司 | 发送方法、接收方法、发送装置及接收装置 |
CN106790044A (zh) * | 2016-12-19 | 2017-05-31 | 北京数码视讯科技股份有限公司 | Ts码流转换为rtp码流的方法和装置 |
CN108616326A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | 基于udp的发动机大数据可靠传输方法 |
CN109348282A (zh) * | 2018-11-19 | 2019-02-15 | 深圳市炬力北方微电子有限公司 | 一种降低无线投屏时延的方法及装置 |
CN110545161A (zh) * | 2019-08-13 | 2019-12-06 | 河北远东通信系统工程有限公司 | 一种具有冗余的多媒体数据实时传输方法 |
CN111352025A (zh) * | 2020-03-13 | 2020-06-30 | 京微齐力(深圳)科技有限公司 | 一种fpga中配置控制器验证方法、系统及设备 |
CN115412741A (zh) * | 2022-08-31 | 2022-11-29 | 北京奇艺世纪科技有限公司 | 数据封装、解析方法、装置、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710911A (zh) * | 2004-06-19 | 2005-12-21 | 三星电子株式会社 | 处理数字多媒体广播系统中的传输错误的方法和设备 |
CN1794812A (zh) * | 2005-12-05 | 2006-06-28 | 上海广电(集团)有限公司中央研究院 | 一种传输流复用的方法 |
CN101009826A (zh) * | 2006-01-25 | 2007-08-01 | 中国长城计算机深圳股份有限公司 | 一种于数字电视终端实现ts流复用的装置 |
CN101500157A (zh) * | 2008-12-31 | 2009-08-05 | 深圳市同洲电子股份有限公司 | 访问单元转换成传输流的方法及装置 |
-
2010
- 2010-09-30 CN CN2010105061535A patent/CN101951387A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710911A (zh) * | 2004-06-19 | 2005-12-21 | 三星电子株式会社 | 处理数字多媒体广播系统中的传输错误的方法和设备 |
CN1794812A (zh) * | 2005-12-05 | 2006-06-28 | 上海广电(集团)有限公司中央研究院 | 一种传输流复用的方法 |
CN101009826A (zh) * | 2006-01-25 | 2007-08-01 | 中国长城计算机深圳股份有限公司 | 一种于数字电视终端实现ts流复用的装置 |
CN101500157A (zh) * | 2008-12-31 | 2009-08-05 | 深圳市同洲电子股份有限公司 | 访问单元转换成传输流的方法及装置 |
Non-Patent Citations (2)
Title |
---|
孙振宇: "基于H_264的视频实时传输系统的研究与实现", 《CNKI优秀硕士学位论文全文库》 * |
潘爱辉: "多路MEPG2的PS流复用为一路TS流的研究与实现", 《CNKI优秀硕士学位论文全文库》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752669A (zh) * | 2011-04-19 | 2012-10-24 | 中国电信股份有限公司 | 多通道实时流媒体文件的传送处理方法与系统、接收装置 |
CN102752669B (zh) * | 2011-04-19 | 2015-09-16 | 中国电信股份有限公司 | 多通道实时流媒体文件的传送处理方法与系统、接收装置 |
CN102710512A (zh) * | 2012-05-23 | 2012-10-03 | 成都三零凯天通信实业有限公司 | 一种跨平台的流发生器及控制方法 |
CN105325007A (zh) * | 2013-09-20 | 2016-02-10 | 松下电器(美国)知识产权公司 | 发送方法、接收方法、发送装置及接收装置 |
CN105325007B (zh) * | 2013-09-20 | 2019-01-04 | 松下电器(美国)知识产权公司 | 发送方法、接收方法、发送装置及接收装置 |
CN103561281A (zh) * | 2013-10-25 | 2014-02-05 | Tcl集团股份有限公司 | 一种多媒体数据共享的方法及装置 |
CN103561281B (zh) * | 2013-10-25 | 2017-10-20 | Tcl集团股份有限公司 | 一种多媒体数据共享的方法及装置 |
CN105049920B (zh) * | 2015-07-27 | 2018-08-10 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的录制方法和装置 |
CN105049920A (zh) * | 2015-07-27 | 2015-11-11 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的录制方法和装置 |
CN105049904A (zh) * | 2015-07-27 | 2015-11-11 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的播放方法和装置 |
CN105049904B (zh) * | 2015-07-27 | 2019-05-31 | 青岛海信移动通信技术股份有限公司 | 一种多媒体文件的播放方法和装置 |
CN105227552A (zh) * | 2015-09-25 | 2016-01-06 | 重庆邮电大学 | 一种td-lte应急终端语音业务质量保障方法 |
CN108616326A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | 基于udp的发动机大数据可靠传输方法 |
CN106790044A (zh) * | 2016-12-19 | 2017-05-31 | 北京数码视讯科技股份有限公司 | Ts码流转换为rtp码流的方法和装置 |
CN106790044B (zh) * | 2016-12-19 | 2020-04-17 | 北京数码视讯科技股份有限公司 | Ts码流转换为rtp码流的方法和装置 |
CN109348282A (zh) * | 2018-11-19 | 2019-02-15 | 深圳市炬力北方微电子有限公司 | 一种降低无线投屏时延的方法及装置 |
CN110545161A (zh) * | 2019-08-13 | 2019-12-06 | 河北远东通信系统工程有限公司 | 一种具有冗余的多媒体数据实时传输方法 |
CN110545161B (zh) * | 2019-08-13 | 2021-10-08 | 河北远东通信系统工程有限公司 | 一种具有冗余的多媒体数据实时传输方法 |
CN111352025A (zh) * | 2020-03-13 | 2020-06-30 | 京微齐力(深圳)科技有限公司 | 一种fpga中配置控制器验证方法、系统及设备 |
CN115412741A (zh) * | 2022-08-31 | 2022-11-29 | 北京奇艺世纪科技有限公司 | 数据封装、解析方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101951387A (zh) | 流媒体传输方法及装置 | |
CN105009595B (zh) | 发送设备、发送方法、接收设备以及接收方法 | |
CN105191325B (zh) | 数据发送方法、数据再现方法、数据发送装置及数据再现装置 | |
CN101296184B (zh) | 一种数据传输的方法、系统及装置 | |
CN100382499C (zh) | 用于流式传输多媒体数据的装置和方法 | |
TW477128B (en) | Using a receiver model to multiplex variable-rate bit streams having timing constraints | |
CN102752669B (zh) | 多通道实时流媒体文件的传送处理方法与系统、接收装置 | |
CN103414957A (zh) | 一种音视频数据同步的方法和装置 | |
CN101222616B (zh) | 点播服务中的mpeg传送流的传输处理方法 | |
CN101605252B (zh) | 将节目流转换成传输流的方法和系统 | |
CN102932676B (zh) | 基于音视频同步的自适应带宽传输和播放方法 | |
CN107005729A (zh) | 用于多媒体和文件传输的传输接口 | |
JP2003114845A (ja) | メディア変換方法およびメディア変換装置 | |
CN109587551A (zh) | 一种流媒体直播卡顿的判断方法、装置、设备及存储介质 | |
CN103354618A (zh) | 一种基于hls的多场景流媒体自适应直播方法 | |
CN107995503B (zh) | 音视频播放方法和装置 | |
CN104735470A (zh) | 一种流媒体数据传输方法及装置 | |
CN101729908B (zh) | 一种传输流视音频同步复用方法 | |
CN101188477A (zh) | 一种数据包序列接收的方法及设备 | |
CN103686203A (zh) | 视频转码方法及装置 | |
TW201249185A (en) | Method for dynamic adaptation of the reception bitrate and associated receiver | |
CN109874027A (zh) | 一种低延时手术示教直播方法及其系统 | |
CN102223539A (zh) | 图像编码丢帧花屏的处理方法 | |
CN100464586C (zh) | 基于ip机顶盒的mpeg1文件实时播放的方法 | |
WO2010021665A1 (en) | Hypothetical reference decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110119 |