CN103607663A - 一种多媒体流的识别方法、装置及设备 - Google Patents

一种多媒体流的识别方法、装置及设备 Download PDF

Info

Publication number
CN103607663A
CN103607663A CN201310616936.2A CN201310616936A CN103607663A CN 103607663 A CN103607663 A CN 103607663A CN 201310616936 A CN201310616936 A CN 201310616936A CN 103607663 A CN103607663 A CN 103607663A
Authority
CN
China
Prior art keywords
rtsp
interleaved frame
bag
media stream
transmission
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
Application number
CN201310616936.2A
Other languages
English (en)
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.)
Fujian Star Net Communication Co Ltd
Original Assignee
Fujian Star Net Communication Co Ltd
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 Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN201310616936.2A priority Critical patent/CN103607663A/zh
Publication of CN103607663A publication Critical patent/CN103607663A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例提供了一种多媒体流的识别方法、装置及设备,根据获取的RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;当确定采用TCP协议传输多媒体流时,根据获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定不同类型的多媒体流在传输时分别使用的传输通道的通道标识;在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。实现了对基于TCP传输的流媒体数据包进行识别。本发明涉及网络通信领域。

Description

一种多媒体流的识别方法、装置及设备
技术领域
本发明涉及网络通信技术领域,尤其涉及一种多媒体流的识别方法、装置及设备。
背景技术
现有技术中的多媒体流的传输方式为:将音频、视频、以及多媒体文件按照指定格式生成多个压缩包,并按照流的方式进行传输。接收到多媒体流的用户,不必等待整个多媒体流传输完毕,就能够在多媒体流传输的过程中,解压并播放音频、视频、以及多媒体文件,实现了多媒体数据的实时传输。
目前,常用的与多媒体流传输相关的网络协议主要包括如下几种:实时传输协议(RTP,Real-time Transport Protocol)、实时传输控制协议(RTCP,Real-time Transport Control Protocol)、以及实时流协议(RTSP,Real TimeStreaming Protocol)。
RTP被定义为传输音频、视频、以及多媒体文件等实时数据的传输协议,与传统的注重高可靠的数据传输的传输层协议相比,RTP更加侧重数据传输的实时性。因此,RTP本身并不能为按顺序传送多媒体数据包提供可靠的传输机制,也不提供流量控制或拥塞控制,而是由RTCP提供这些服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化。RTSP是应用层协议,常与RTP结合使用,在多媒体流传输的启动阶段负责服务器和客户端之间的、与传输相关参数的协商。
但是,Internet环境是复杂多变的,流媒体文件在传输过程中,容易出现分片、丢包、乱序等现象,导致客户端在对接收到多媒体流进行播放时,出现唇音不同步、卡顿、马赛克等现象。因此,在多媒体流传输的中间节点(例如:路由器)上提前识别多媒体数据包,并对识别出的多媒体数据包中的多媒体数据进行重新排序和音视频同步等处理,能够避免在客户端播放多媒体流时出现的上述问题。
现有技术中,RTP通常基于UDP进行传输,因此,现有技术中能够识别的流媒体数据包,通常是基于UDP进行传输的,又由于UDP是不可靠的传输协议,越来越多的多媒体流开始基于TCP进行传输,因此,对基于TCP传输的流媒体数据包进行识别成为亟待解决的问题。
发明内容
本发明实施例提供了一种多媒体流的识别方法、装置及设备,用以解决现有技术中无法对基于TCP传输的流媒体数据包进行识别的问题。
基于上述问题,本发明实施例提供的一种多媒体流的识别方法,包括:
根据获取的实时流协议RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;
当确定采用TCP协议传输所述多媒体流时,根据所述获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定所述不同类型的多媒体流在传输时分别使用的传输通道的通道标识,其中,多媒体流的类型包括视频数据流、音频数据流、视频控制流、以及音频控制流;
在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
本发明实施例提供的一种多媒体流的识别装置,包括:
传输机制确定模块,用于根据获取的实时流协议RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;
通道标识确定模块,用于当确定采用TCP协议传输所述多媒体流时,根据所述获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定所述不同类型的多媒体流在传输时分别使用的传输通道的通道标识,其中,多媒体流的类型包括视频数据流、音频数据流、视频控制流、以及音频控制流;
多媒体类型确定模块,用于在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
本发明实施例提供的一种多媒体流的识别设备,包括:上述的多媒体流的识别装置。
本发明实施例的有益效果包括:
本发明实施例提供的一种多媒体流的识别方法、装置及设备,根据获取的RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;当确定采用TCP协议传输多媒体流时,根据获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定不同类型的多媒体流在传输时分别使用的传输通道的通道标识;在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。实现了对基于TCP传输的流媒体数据包进行识别,因此,可以对识别出的多媒体流的类型为多媒体数据流中的多媒体数据进行重新排序、音视频同步等处理,避免了在客户端播放多媒体流时出现唇音不同步、卡顿、马赛克等问题。
附图说明
图1为本发明实施例提供的一种多媒体流的识别方法的流程图;
图2为本发明实施例1提供的一种多媒体流的识别方法的流程图;
图3为本发明实施例2提供的一种多媒体流的识别方法的流程图;
图4为本发明实施例3提供的一种多媒体流的识别方法的流程图;
图5为本发明实施例4提供的确定TCP载荷中包含的interleaved frame的方法的流程图;
图6a-图6d为本发明实施例提供的通过软件抓取的RTSP包以及RTP数据包图;
图7为本发明实施例提供的一种多媒体流的识别装置的结构示意图。
具体实施方式
本发明实施例提供了一种多媒体流的识别方法、装置及设备,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种多媒体流的识别方法,如图1所示,包括:
S101、根据获取的RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输多媒体流。
S102、当确定采用TCP协议传输所述多媒体流时,根据获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定不同类型的多媒体流在传输时分别使用的传输通道的通道标识,其中,多媒体流的类型包括视频数据流、音频数据流、视频控制流、以及音频控制流。
S103、在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
进一步地,本发明提供的一种多媒体流的识别方法可以应用在多媒体流传输的中间节点(例如:路由器)上提前识别多媒体数据包。
进一步地,在上述步骤S101之前,还可以包括判断获取的数据包是否为RTSP包的步骤。由于协议规定RTSP的对应端口为554,当获取到目的端口为554的数据包时,可以确定该获取的数据包为RTSP数据包。也就是说,可以通过RTSP对应的端口,识别获取的数据包是否为RTSP包。
进一步地,上述获取目的端口为554的数据包,是由于上述步骤S101中获取的数据包为客户端发送给服务器的RTSP包。例如下述应用场景:当客户端通过网络观看视频,点击播放按钮之后,客户端会向视频所在的服务器发送RTSP包,对后续传输多媒体流进行传输参数协商,在位于多媒体流传输的路由器上获取该RTSP包,目的端口为554。
下面结合附图,用具体实施例对本发明提供的方法及相关设备进行详细描述。
实施例1:
本发明实施例1,如图2所示,具体包括如下步骤:
S201、判断获取的RTSP包中携带的方法标识是否为设置(SETUP),若是,则进入步骤S202;若否,则继续对后续RTSP包进行解析,本流程结束。
S202、若是,则进一步判断获取的RTSP包中携带的传输(transport)参数的第一个参数值,是否为RTP/AVP/TCP,若是,则进入步骤S203;若否,则继续对后续RTSP数据包进行解析,本流程结束。
本步骤中,方法标识为SETUP的RTSP数据包中,携带了transport参数,transport参数的第一个参数值,表征了多媒体数据流的传输机制,即基于UDP传输还是基于TCP传输。
本步骤中,AVP为audio video profile的缩写,中文解释为:音视频规格。
S203、确定采用TCP协议传输多媒体流。
S204、当确定采用TCP协议传输所述多媒体流时,根据获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定不同类型的多媒体流在传输时分别使用的传输通道的通道标识,其中,多媒体流的类型包括视频数据流、视频控制流、音频数据流和音频控制流。
进一步地,视频数据流和音频数据流通常可以基于RTP协议进行传输,统称为多媒体数据流,视频控制流和音频控制流通常可以基于RTCP协议进行传输,统称为多媒体控制流。
S205、在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
实施例2:
本发明实施例2提供的一种多媒体流的识别方法,如图3所示,具体包括如下步骤:
S301、根据获取的RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输多媒体流。
S302、当确定采用TCP协议传输多媒体流时,获取并记录获取的RTSP包携带的请求(Request)参数的轨道识别符(trackID)参数值,以及transport参数的交错(interleaved)参数值。
本步骤中,transport参数的第三个参数为interleaved参数,interleaved参数的参数值通常为两个连续整数,该两个连续整数中,较小值标识多媒体数据流(即RTP数据流)传输通道的通道标识,较大值标识多媒体控制流(即RTCP数据流)传输通道的通道标识。
进一步地,服务器可以将RTP数据和该RTP数据的控制数据(RTCP数据)分别进行传输,也可以在同一个数据包中进行传输。但是,不论是分别进行传输还是在同一个数据包中进行传输,RTP数据和RTCP数据都有各自的传输通道,并在进行多媒体数据传输之前,客户端与服务器进行参数协商时,为RTP数据和RTCP控制数据分配不同的传输通道,并通过interleaved参数携带传输通道的通道标识。
S303、判断是否存在在先获取的RTSP包,其中,在先获取的RTSP包为在获取到上述获取的RTSP包之前获取到的、方法标识为SETUP的RTSP包。若存在,则进入步骤S304;否则,进入步骤S307。
进一步地,在传输多媒体数据时,可以只有视频数据,也可以既有视频数据又有音频数据,可以通过trackID参数值标识当前协商的参数值为视频数据的传输参数值还是音频数据的传输参数值。根据RTSP协议的规定,当同时传输视频流和音频流时,可以通过两个RTSP包分别对视频流和音频流传输参数进行设置,并且该两个RTSP包分别携带的trackID中,较小trackID值所在RTSP包表征视频流使用的传输参数,较大trackID值所在RTSP包表征音频流使用的传输参数。
进一步地,由于在每个RTSP包中,仅包含一个trackID参数值,因此当接收到一个方法标识为SETUP的RTSP包时,可以将该RTSP包中的trackID参数值保存,并接收下一个方法标识为SETUP的RTSP包,并将该下一个RTSP包中的trackID参数值保存,将两个trackID参数值进行比较,其中,较小trackID参数值所在的RTSP包中协商的传输参数,为传输视频流使用的传输参数(即较小trackID参数值所在的RTSP包中interleaved参数中,较小值为视频数据流使用的传输通道的通道标识,较大值为视频控制流使用的传输通道的通道标识),较大trackID参数值所在的RTSP包中协商的传输参数,为传输音频流使用的传输参数(即较小trackID参数值所在的RTSP包中interleaved参数中,较小值为音频数据流使用的传输通道的通道标识,较大值为音频控制流使用的传输通道的通道标识)。因此,通过将在先接收到的RTSP包以及在后接收到的RTSP包中分别包含的trackID参数值以及interleaved参数值相结合,就可以判断出传输的多媒体流中,音频数据流使用的传输通道的通道标识、音频控制流使用的传输通道的通道标识、视频数据流使用的传输通道的通道标识、以及视频控制流使用的传输通道的通道标识。
S304、若存在,则执行比较操作,将上述获取的RTSP包携带的trackID参数值与预先记录的在先获取的RTSP包携带的trackID参数值进行比较。
进一步地,在针对一次多媒体流传输进行参数协商时,携带SETUP方法标识的RTSP包可能存在一个或者两个,当存在一个携带SETUP方法标识的RTSP包时,表征此次将要传输的多媒体流为视频流或者音频流(一般单纯的音频流不使用RTP协议进行传输),当存在两个携带SETUP方法标识的RTSP包时,表征此次将要传输的多媒体流包括视频流和音频流,该两个携带SETUP方法标识的RTSP包中,一个为针对视频流传输参数的协商,另一个为针对音频流传输参数的协商。该两个携带SETUP方法标识的RTSP包中,均携带有trackID参数值,当接收到第一个携带SETUP方法标识的RTSP包时,可以先将该第一个RTSP包中的trackID参数值存储,若能接收到第二个携带SETUP方法标识的RTSP包,则获取该第二个RTSP包中的trackID参数值,并与第一个RTSP包中的trackID参数值进行比较,其中,较小trackID值所属的RTSP包为针对视频流传输参数的设置,较大trackID值所属的RTSP包为针对音频流传输参数的设置。
S305、根据比较结果,将较小的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识。
S306、将较大的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为音频数据流使用的传输通道的通道标识,最大值确定为音频控制流使用的传输通道的通道标识。进入步骤S310。
步骤S305与步骤S306的执行没有严格的先后顺序。
S307、获取下一个方法标识为SETUP的RTSP包。若能够获取到,则进入步骤S308;否则,进入步骤S309。
S308、若能够获取到下一个方法标识为SETUP的RTSP包,则针对该下一个RTSP包和所述获取的RTSP包,执行S304中的比较操作。进入步骤S310。
S309、若未能获取到下一个方法标识为SETUP的RTSP包,则将获取的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识。
进一步地,本步骤中,由于一般单纯的音频流不使用RTP协议进行传输,因此,若未能获取到下一个方法标识为SETUP的RTSP包,则可以认为传输的多媒体流只有视频流,而没有音频流,因此,可以直接将interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识。
S310、在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
本步骤中,可以通过判断接收到的数据包的源端口是否为554来确定接收到的数据包是否为传输多媒体流的多媒体数据包。
实施例3:
本发明实施例3提供的一种多媒体流的识别方法,如图4所示,具体包括如下步骤:
S401、根据获取的RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输多媒体流。
S402、当确定采用TCP协议传输所述多媒体流时,根据获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定不同类型的多媒体流在传输时分别使用的传输通道的通道标识。
S403、确定接收到的多媒体数据包的TCP载荷中包含的interleaved frame,其中,多媒体数据包为基于RTP传输的数据包或基于RTCP传输的控制包。
进一步地,本步骤中,多媒体数据包的TCP载荷中可以包含多个interleavedframe,interleaved frame指音/视频数据包,以及音/视频控制包在TCP报文内混合传输。TCP载荷的第一个字节为第一个interleaved frame的第一个字节,每个interleaved frame为4个字节,第一个字节为该interleaved frame起始的魔数(Magic)(interleaved frame的唯一标识符),即0x24,第二个字节为该interleaved frame引导的多媒体载荷使用的传输通道的通道标识,第三个和第四个字节为该interleaved frame引导的多媒体载荷的长度,从第五个字节开始为该interleaved frame引导的多媒体载荷,该多媒体载荷之后为下一个该interleaved frame。
S404、针对每个interleaved frame,从确定的各通道标识中确定与该interleaved frame的第二个字节表征的通道标识匹配的通道标识。
S405、确定该interleaved frame引导的多媒体载荷的类型为上述匹配的通道标识对应的多媒体流的类型。
本步骤中,假设在步骤S402中确定出视频数据流在传输时使用的传输通道的通道标识为01,视频控制流在传输时使用的传输通道的通道标识为02,音频数据流在传输时使用的传输通道的通道标识为03,音频控制流在传输时使用的传输通道的通道标识为04,在步骤S404中,确定某个interleaved frame的第二个字节表征的通道标识为01,则步骤S405中,可以确定该interleavedframe引导的多媒体载荷的类型为视频数据流。
实施例4:
本发明实施例4,针对实施例3中,步骤S403、确定接收到的多媒体数据包的TCP载荷中包含的interleaved frame,提供了一种确定TCP载荷中包含的interleaved frame的方法,如图5所示,具体包括如下步骤:
S501、当接收到的多媒体数据包中TCP载荷的第一个字节为预设起始字节时,确定以该第一个字节为起始字节的interleaved frame为TCP载荷包含的第一个interleaved frame。
S502、将所述第一个interleaved frame作为当前interleaved frame,循环执行如下步骤,顺次遍历每个interleaved frame,直到不存在未遍历的interleavedframe为止:
S503、将上述TCP载荷的长度与包括当前interleaved frame在内的、已遍历的interleaved frame分别引导的多媒体载荷长度之和相减。
其中,每个interleaved frame的第三个和第四个字节表征该interleavedframe引导的多媒体载荷的长度;
S504、判断S503中相减得到的差值是否等于4与包括上述当前interleavedframe在内的、已遍历的interleaved frame个数的乘积,若是,则进入步骤S505;若否,则进入步骤S506。
S505、当相减得到的差值等于4与包括所述当前interleaved frame在内的、已遍历的interleaved frame个数的乘积时,确定已遍历完所述TCP载荷中包含的所有interleaved frame。本流程结束。
S506、根据上述当前interleaved frame引导的多媒体载荷的长度,将紧邻上述当前interleaved frame引导的多媒体载荷之后的interleaved frame,更新为新的当前interleaved frame。进入步骤S503。
本步骤中,TCP的载荷包括interleaved frame和interleaved frame引导的多媒体载荷,当TCP仅包含一个interleaved frame时,TCP载荷的长度与interleaved frame引导的多媒体载荷的长度之间的差值为interleaved frame的长度,即4个字节。
当TCP载荷的长度与TCP载荷中第一个interleaved frame引导的多媒体载荷的长度相减得到的差值大于4个字节时,确定所述TCP载荷中包含至少两个interleaved frame,需要从第一个interleaved frame开始,顺次确定每个interleaved frame的起始位置,这样才能确定每个interleaved frame的第二个字节,得到各interleaved frame引导的多媒体载荷的类型。
下面以一个具体的例子对本发明实施例提供的多媒体流的识别方法进行说明。图6a-图6d为通过软件抓取的RTSP包以及RTP数据包。
图6a为当客户端向服务器发送RTSP包时,通过软件抓取的RTSP包的内容,如图6a所示,RTSP包的目的端口为554,即“Dst Port:rtsp(554)”,RTSP包的方法标识为SETUP,Request参数的trackID参数值为1,即“trackID=1”,transport参数的第一个参数值为“RTP/AVP/TCP”,(其中,AVP为audio videoprofile,中文解释为:音视频规格))表征多媒体流基于TCP进行传输,transport参数的interleaved参数值为0-1,即“interleaved=0-1”。
图6b为当客户端向服务器发送RTSP包时,在抓取到图6a所示的RTSP包之后,抓取的RTSP包的内容,如图6b所示,RTSP包的目的端口(destinationport)为554,即“Dst Port:rtsp(554)”,RTSP包的方法标识为SETUP,Request参数的trackID参数值为2,即“trackID=2”,transport参数的第一个参数值为“RTP/AVP/TCP”,表征多媒体流基于TCP进行传输,transport参数的interleaved参数值为2-3,即“interleaved=2-3”。将在先接收的RTSP包(如图6a所示)与在后接收的RTSP包(如图6b所示)相结合进行解析,由于在先接收的RTSP包中trackID的值小于在后接收的RTSP包中trackID的值,因此可以确定在先接收的RTSP包是对传输视频流的相关参数的协商,在后接收的RTSP包是对传输音频流的相关参数的协商,也就是说,在先接收的RTSP包中,interleaved参数值为0-1,表征视频数据流使用的传输通道的通道标识为0,视频控制流使用的传输通道的通道标识为1,在后接收的RTSP包中,interleaved参数值为2-3,表征音频数据流使用的传输通道的通道标识为2,音频控制流使用的传输通道的通道标识为3。
图6c为客户端接收到的传输视频数据流的数据包。如图6c所示,该视频流数据包源端口(source port)为554,即“src port:rtsp(554)”,TCP载荷的长度为580,即“len:580”,interleaved frame中第一个字节为0x24,即“Magic:0x24”,第二个字节为interleaved frame引导的多媒体载荷使用的传输通道的通道(Channel)标识,即“Channel:0x00”,第三个字节和第四个字节为interleavedframe引导的多媒体载荷的长度(Length),即“Length:576bytes”,在接收到该数据包之后,根据TCP载荷长度与为interleaved frame引导的多媒体载荷的长度之差(580-576=4),确定该TCP载荷中只携带了一个interleaved frame,并且根据interleaved frame的第二个字节0x00,以及图6a中RTSP包中解析出的视频数据流使用的传输通道的通道标识为0,确定出interleaved frame引导的多媒体载荷为视频数据流。
图6d为客户端接收到的传输视频数据流的数据包。如图6d所示,该视频流数据包源端口为554,即“src port:rtsp(554)”,TCP载荷的长度为476,即“len:476”,TCP载荷中的第一个interleaved frame中第一个字节为0x24,即“Magic:0x24”,第二个字节为第一个interleaved frame引导的多媒体载荷使用的传输通道的通道标识,即“Channel:0x02”,第三个字节和第四个字节为第一个interleaved frame引导的多媒体载荷的长度,即“Length:332bytes”,在接收到该数据包之后,根据TCP载荷长度与为interleaved frame引导的多媒体载荷的长度之差(476-332>4),确定该TCP载荷中携带了多个interleavedframe,根据第一个interleaved frame引导的多媒体载荷的长度332bytes,从第一个interleaved frame后的332字节之后的第一个字节为0x24,即“Magic:0x24”,确定该字节为第二个interleaved frame的起始字节,第二个interleavedframe第二个字节为第二个interleaved frame引导的多媒体载荷使用的传输通道的通道标识,即“Channel:0x00”,第一个interleaved frame的第三个字节和第四个字节为第一个interleaved frame引导的多媒体载荷的长度,即“Length:136bytes”,由于332bytes(第一个interleaved frame引导的多媒体载荷的长度)+136bytes(第二个interleaved frame引导的多媒体载荷的长度)+8bytes(两个interleaved frame的长度)=476bytes(TCP载荷的长度),说明该TCP载荷包含两个interleaved frame及其引导的多媒体载荷;
进一步地,根据第一个interleaved frame的第二个字节0x02,以及图6a中RTSP包中解析出的音频数据流使用的传输通道的通道标识为2,确定出第一个interleaved frame引导的多媒体载荷为音频数据流,根据第二个interleavedframe的第二个字节0x00,以及图6a中RTSP包中解析出的视频数据流使用的传输通道的通道标识为0,确定出第二个interleaved frame引导的多媒体载荷为视频数据流。
基于同一发明构思,本发明实施例还提供了一种多媒体流的识别装置及设备,由于这些装置和设备所解决问题的原理与前述多媒体流的识别方法相似,因此该装置和设备的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供了一种多媒体流的识别装置,如图7所示,包括如下模块:
传输机制确定模块701,用于根据获取的实时流协议RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;
通道标识确定模块702,用于当确定采用TCP协议传输所述多媒体流时,根据所述获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定所述不同类型的多媒体流在传输时分别使用的传输通道的通道标识,其中,多媒体流的类型包括视频数据流、音频数据流、视频控制流、以及音频控制流;
多媒体类型确定模块703,用于在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
进一步地,所述传输机制确定模块701具体用于判断获取的RTSP包中携带的方法标识是否为设置SETUP;若是,则进一步判断所述获取的RTSP包中携带的传输transport参数的第一个参数值,是否为RTP/AVP/TCP;若是,则确定采用TCP协议传输多媒体流。
进一步地,所述通道标识确定模块702具体用于当确定采用TCP协议传输所述多媒体流时,获取并记录所述获取的RTSP包携带的Request参数的轨道识别符trackID参数值,以及transport参数的交错interleaved参数值;判断是否存在在先获取的RTSP包,其中,所述在先获取的RTSP包为在获取到所述获取的RTSP包之前获取到的、方法标识为SETUP的RTSP包;若存在,则执行比较操作,将所述获取的RTSP包携带的trackID参数值与预先记录的所述在先获取的RTSP包携带的trackID参数值进行比较;根据比较结果,将较小的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识;将较大的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为音频数据流使用的传输通道的通道标识,最大值确定为音频控制流使用的传输通道的通道标识。
进一步地,所述通道标识确定模块702具体用于若不存在在先获取的RTSP包,获取下一个方法标识为SETUP的RTSP包;若能够获取到下一个方法标识为SETUP的RTSP包,则针对该下一个RTSP包和所述获取的RTSP包,执行所述比较操作。
进一步地,所述通道标识确定模块702具体用于若未能获取到下一个方法标识为SETUP的RTSP包,则将所述获取的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识。
进一步地,所述多媒体类型确定模块703具体用于确定接收到的多媒体数据包的TCP载荷中包含的交错帧interleaved frame;针对每个interleaved frame,从确定的各通道标识中确定与该interleaved frame的第二个字节表征的通道标识匹配的通道标识;确定该interleaved frame引导的多媒体载荷的类型为所述匹配的通道标识对应的多媒体流的类型。
进一步地,所述多媒体类型确定模块703具体用于当接收到的多媒体数据包中TCP载荷的第一个字节为预设起始字节时,确定以所述第一个字节为起始字节的interleaved frame为所述TCP载荷包含的第一个interleaved frame;将所述第一个interleaved frame作为当前interleaved frame,循环执行如下步骤,顺次遍历每个interleaved frame,直到不存在未遍历的interleaved frame为止:将所述TCP载荷的长度与包括当前interleaved frame在内的、已遍历的interleaved frame分别引导的多媒体载荷长度之和相减,其中,每个interleavedframe的第三个和第四个字节表征该interleaved frame引导的多媒体载荷的长度;当相减得到的差值等于4与包括所述当前interleaved frame在内的、已遍历的interleaved frame个数的乘积时,确定已遍历完所述TCP载荷中包含的所有interleaved frame;否则,根据所述当前interleaved frame引导的多媒体载荷的长度,将紧邻所述当前interleaved frame引导的多媒体载荷之后的interleavedframe,更新为当前interleaved frame。
本发明实施例提供了一种多媒体流的识别设备,包括:上述的多媒体流的识别装置。
上述各单元的功能可对应于图1至图5所示流程中的相应处理步骤,在此不再赘述。
本发明实施例提供的一种多媒体流的识别方法、装置及设备,根据获取的RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;当确定采用TCP协议传输多媒体流时,根据获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定不同类型的多媒体流在传输时分别使用的传输通道的通道标识;在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。实现了对基于TCP传输的流媒体数据包进行识别,因此,可以对识别出的多媒体流的类型为多媒体数据流中的多媒体数据进行重新排序、音视频同步等处理,避免了在客户端播放多媒体流时出现唇音不同步、卡顿、马赛克等问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种多媒体流的识别方法,其特征在于,包括:
根据获取的实时流协议RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;
当确定采用TCP协议传输所述多媒体流时,根据所述获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定所述不同类型的多媒体流在传输时分别使用的传输通道的通道标识,其中,多媒体流的类型包括视频数据流、音频数据流、视频控制流、以及音频控制流;
在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
2.如权利要求1所述的方法,其特征在于,根据获取的RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流,具体包括:
判断获取的RTSP包中携带的方法标识是否为设置SETUP;
若是,则进一步判断所述获取的RTSP包中携带的传输transport参数的第一个参数值,是否为RTP/AVP/TCP;
若是,则确定采用TCP协议传输多媒体流。
3.如权利要求1所述的方法,其特征在于,根据所述获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定所述不同类型的多媒体流在传输时分别使用的传输通道的通道标识,具体包括:
获取并记录所述获取的RTSP包携带的请求Request参数的轨道识别符trackID参数值,以及transport参数的交错interleaved参数值;
判断是否存在在先获取的RTSP包,其中,所述在先获取的RTSP包为在获取到所述获取的RTSP包之前获取到的、方法标识为SETUP的RTSP包;
若存在,则执行比较操作,将所述获取的RTSP包携带的trackID参数值与预先记录的所述在先获取的RTSP包携带的trackID参数值进行比较;
根据比较结果,将较小的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识;
将较大的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为音频数据流使用的传输通道的通道标识,最大值确定为音频控制流使用的传输通道的通道标识。
4.如权利要求3所述的方法,其特征在于,若不存在在先获取的RTSP包,还包括:
获取下一个方法标识为SETUPRTSP的RTSP包;
若能够获取到下一个方法标识为SETUPRTSP的RTSP包,则针对该下一个RTSP包和所述获取的RTSP包,执行所述比较操作;
若未能获取到下一个方法标识为SETUP的RTSP包,则将所述获取的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识。
5.如权利要求1-4任一项所述的方法,其特征在于,在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型,具体包括:
确定接收到的多媒体数据包的TCP载荷中包含的交错帧interleaved frame;
针对每个interleaved frame,从确定的各通道标识中确定与该interleavedframe的第二个字节表征的通道标识匹配的通道标识;
确定该interleaved frame引导的多媒体载荷的类型为所述匹配的通道标识对应的多媒体流的类型。
6.如权利要求5所述的方法,其特征在于,确定接收到的多媒体数据包的TCP载荷中的interleaved frame,具体包括:
当接收到的多媒体数据包中TCP载荷的第一个字节为预设起始字节时,确定以所述第一个字节为起始字节的interleaved frame为所述TCP载荷包含的第一个interleaved frame;
将所述第一个interleaved frame作为当前interleaved frame,循环执行如下步骤,顺次遍历每个interleaved frame,直到不存在未遍历的interleaved frame为止:将所述TCP载荷的长度与包括当前interleaved frame在内的、已遍历的interleaved frame分别引导的多媒体载荷长度之和相减,其中,每个interleavedframe的第三个和第四个字节表征该interleaved frame引导的多媒体载荷的长度;当相减得到的差值等于4与包括所述当前interleaved frame在内的、已遍历的interleaved frame个数的乘积时,确定已遍历完所述TCP载荷中包含的所有interleaved frame;否则,根据所述当前interleaved frame引导的多媒体载荷的长度,将紧邻所述当前interleaved frame引导的多媒体载荷之后的interleavedframe,更新为当前interleaved frame。
7.一种多媒体流的识别装置,其特征在于,包括:
传输机制确定模块,用于根据获取的实时流协议RTSP包中携带的、用于标识传输多媒体流所采用的传输机制的传输机制参数值,确定是否采用TCP协议传输所述多媒体流;
通道标识确定模块,用于当确定采用TCP协议传输所述多媒体流时,根据所述获取的RTSP包中携带的、用于标识不同类型的多媒体流在传输时分别使用的传输通道的通道参数值,确定所述不同类型的多媒体流在传输时分别使用的传输通道的通道标识,其中,多媒体流的类型包括视频数据流、音频数据流、视频控制流、以及音频控制流;
多媒体类型确定模块,用于在接收多媒体流时,根据接收的多媒体流在传输时使用的传输通道的通道标识,识别接收的多媒体流的类型。
8.如权利要求7所述的装置,其特征在于,所述传输机制确定模块具体用于判断获取的RTSP包中携带的方法标识是否为设置SETUP;若是,则进一步判断所述获取的RTSP包中携带的传输transport参数的第一个参数值,是否为RTP/AVP/TCP;若是,则确定采用TCP协议传输多媒体流。
9.如权利要求7所述的装置,其特征在于,所述通道标识确定模块具体用于当确定采用TCP协议传输所述多媒体流时,获取并记录所述获取的RTSP包携带的Request参数的轨道识别符trackID参数值,以及transport参数的交错interleaved参数值;判断是否存在在先获取的RTSP包,其中,所述在先获取的RTSP包为在获取到所述获取的RTSP包之前获取到的、方法标识为SETUP的RTSP包;若存在,则执行比较操作,将所述获取的RTSP包携带的trackID参数值与预先记录的所述在先获取的RTSP包携带的trackID参数值进行比较;根据比较结果,将较小的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识;将较大的trackID参数值所在的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为音频数据流使用的传输通道的通道标识,最大值确定为音频控制流使用的传输通道的通道标识。
10.如权利要求9所述的装置,其特征在于,所述通道标识确定模块具体用于若不存在在先获取的RTSP包,获取下一个方法标识为SETUP的RTSP包;若能够获取到下一个方法标识为SETUP的RTSP包,则针对该下一个RTSP包和所述获取的RTSP包,执行所述比较操作;若未能获取到下一个方法标识为SETUP的RTSP包,则将所述获取的RTSP包中,携带的transport参数的interleaved参数值中,最小值确定为视频数据流使用的传输通道的通道标识,最大值确定为视频控制流使用的传输通道的通道标识。
11.如权利要求7-10任一项所述的装置,其特征在于,所述多媒体类型确定模块具体用于确定接收到的多媒体数据包的TCP载荷中包含的交错帧interleaved frame;针对每个interleaved frame,从确定的各通道标识中确定与该interleaved frame的第二个字节表征的通道标识匹配的通道标识;确定该interleaved frame引导的多媒体载荷的类型为所述匹配的通道标识对应的多媒体流的类型。
12.如权利要求11所述的装置,其特征在于,所述多媒体类型确定模块具体用于当接收到的多媒体数据包中TCP载荷的第一个字节为预设起始字节时,确定以所述第一个字节为起始字节的interleaved frame为所述TCP载荷包含的第一个interleaved frame;将所述第一个interleaved frame作为当前interleaved frame,循环执行如下步骤,顺次遍历每个interleaved frame,直到不存在未遍历的interleaved frame为止:将所述TCP载荷的长度与包括当前interleaved frame在内的、已遍历的interleaved frame分别引导的多媒体载荷长度之和相减,其中,每个interleaved frame的第三个和第四个字节表征该interleaved frame引导的多媒体载荷的长度;当相减得到的差值等于4与包括所述当前interleaved frame在内的、已遍历的interleaved frame个数的乘积时,确定已遍历完所述TCP载荷中包含的所有interleaved frame;否则,根据所述当前interleaved frame引导的多媒体载荷的长度,将紧邻所述当前interleavedframe引导的多媒体载荷之后的interleaved frame,更新为当前interleaved frame。
13.一种多媒体流的识别设备,其特征在于,包括:如权利要求7-12任一项所述的多媒体流的识别装置。
CN201310616936.2A 2013-11-27 2013-11-27 一种多媒体流的识别方法、装置及设备 Pending CN103607663A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310616936.2A CN103607663A (zh) 2013-11-27 2013-11-27 一种多媒体流的识别方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310616936.2A CN103607663A (zh) 2013-11-27 2013-11-27 一种多媒体流的识别方法、装置及设备

Publications (1)

Publication Number Publication Date
CN103607663A true CN103607663A (zh) 2014-02-26

Family

ID=50125860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310616936.2A Pending CN103607663A (zh) 2013-11-27 2013-11-27 一种多媒体流的识别方法、装置及设备

Country Status (1)

Country Link
CN (1) CN103607663A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559687A (zh) * 2016-11-11 2017-04-05 努比亚技术有限公司 移动终端和数据传输方法
CN106572361A (zh) * 2016-11-15 2017-04-19 中兴通讯股份有限公司 一种视频文件的处理方法、装置和系统
CN110366008A (zh) * 2018-03-26 2019-10-22 优酷网络技术(北京)有限公司 多媒体资源请求识别方法及装置
CN112217842A (zh) * 2019-07-09 2021-01-12 北京声智科技有限公司 一种数据传输方法及装置
CN113542688A (zh) * 2021-07-14 2021-10-22 杭州海康威视数字技术股份有限公司 音视频监控方法、装置、设备、存储介质以及系统
CN115150369A (zh) * 2022-06-29 2022-10-04 湖北天融信网络安全技术有限公司 音视频代理方法及音视频代理容器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200577A1 (en) * 2005-03-03 2006-09-07 Lg Electronics Inc. Method for transmitting moving picture data to mobile terminal using pseudo-streaming technology

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200577A1 (en) * 2005-03-03 2006-09-07 Lg Electronics Inc. Method for transmitting moving picture data to mobile terminal using pseudo-streaming technology

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
张友兵: "IPTV系统中客户端流数据接收控制与处理", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
陈锋锋: "基于RTSP的流媒体传输系统的应用开发", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
黄克飞: "基于流媒体技术的网络传输系统研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106559687A (zh) * 2016-11-11 2017-04-05 努比亚技术有限公司 移动终端和数据传输方法
CN106572361A (zh) * 2016-11-15 2017-04-19 中兴通讯股份有限公司 一种视频文件的处理方法、装置和系统
CN110366008A (zh) * 2018-03-26 2019-10-22 优酷网络技术(北京)有限公司 多媒体资源请求识别方法及装置
CN110366008B (zh) * 2018-03-26 2021-10-08 阿里巴巴(中国)有限公司 多媒体资源请求识别方法、装置及存储介质
CN112217842A (zh) * 2019-07-09 2021-01-12 北京声智科技有限公司 一种数据传输方法及装置
CN113542688A (zh) * 2021-07-14 2021-10-22 杭州海康威视数字技术股份有限公司 音视频监控方法、装置、设备、存储介质以及系统
CN115150369A (zh) * 2022-06-29 2022-10-04 湖北天融信网络安全技术有限公司 音视频代理方法及音视频代理容器

Similar Documents

Publication Publication Date Title
CN103607663A (zh) 一种多媒体流的识别方法、装置及设备
CA2917290C (en) Method and apparatus for transmitting/receiving media broadcasting signal in real time transport protocol-based broadcasting system
US8358670B2 (en) Method and apparatus for processing packet
US10911510B2 (en) Apparatus and method for transmitting multimedia data in a broadcast system
EP3113500B1 (en) Method and device for displaying application data in wireless communication system
WO2011159140A2 (en) Storage file format for multimedia streaming file, and storage method and client apparatus using the same
US20080256254A1 (en) Communication method and apparatus using hypertext transfer protocol
US8806048B2 (en) Method and apparatus for transmitting and receiving streaming data based on real-time streaming protocol (RTSP) session
KR20080068690A (ko) 상보적 지정 파일을 이용하여 실시간전송프로토콜 출구스트리밍을 위한 방법 및 장치
CN104541516B (zh) 用于传递多媒体数据的传输特性信息的方法和设备
EP2827596A1 (en) Transmitting and receiving method of multimedia video data and corresponding device
WO2012047004A2 (ko) Http 스트리밍의 표현 스위칭시 자연스런 재생을 위한 스케일러블한 http 스트리밍 전송 방법
WO2012030120A2 (ko) Http 스트리밍을 위한 미디어 정보 파일의 전송 및 수신 방법
WO2014003465A1 (ko) 영상통화의 효율적 세션 교섭을 위한 장치 및 방법
WO2012039576A2 (ko) Http 스트리밍에서 표현 스위칭시 처리 방법
EP3092812A1 (en) Method and apparatus for transmitting and receiving media data in multimedia system
WO2016003244A1 (ko) 멀티미디어 시스템에서 미디어 패킷을 수신하는 방법 및 장치
CN115208864A (zh) 数据传输方法、装置、设备、车辆及存储介质
CN106790030B (zh) 多屏协同音频传输服务端、客户端、系统及其处理方法
US8296444B2 (en) Medium resource reservation method, service package information obtaining method and apparatus
US8412840B2 (en) Live media serving system and method
WO2018093051A1 (ko) 실시간 파일 포맷 변환 스트리밍 서비스 방법
WO2014036873A1 (zh) 一种传输流的共享方法
CN115767192A (zh) 基于ssrc管理调度多路视频流的方法及装置
CN1960509B (zh) 在传输移动多媒体广播媒体数据时实现错误隔离的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140226