摘要:在简述MPEG-4压缩标准编码特性和RTP/RTCP协议原理的基础上提出了一个适合目前视频点播、组播的RTP流媒体应用方案,该方案使用了optibase公司的MPEG-4MovieMaker400板卡和Apple公司的DARWIN流媒体服务器,采用了MPEG-4音视频传输的RTP组包算法,该算法具有传输的高效性和丢包的鲁棒性。
关键词:MPEG-4RTP/RTCPDARWINMPEG-4MovieMaker400
1引言
随着互联网的普及和多媒体技术在互联网上的应用,实时传送视频、音频、多媒体动画等媒体文件的技术成为了热点,这种传输技术称为流媒体传输技术。简单地说流媒体传输技术是由专门的流媒体服务器向用户连续、实时地发送声音、影像、动画等多媒体文件,这样用户可以不必等到整个文件全部下载完毕,而只需要经过几秒钟的启动延时就可以了,当这些多媒体数据在客户机上播放时,文件的剩余部分将继续从流媒体服务器下载。
MPEG-4标准以其高压缩率、高质量、低传输率成为目前网络多媒体传输的主要格式和标准,因此研究基于MPEG-4的实时传输技术对于实现流媒体传输技术是必要和有意义的。另外音视频文件的实时传输要求较低的时延和较小的丢包率,由于TCP的重发机制带来较大的时延,UDP本身又不提供任何Qos保证,因此需要通过实时传输协议(RTP)和实时传输控制协议(RTCP)配合使用提供数据实时传输和Qos服务来满足网络音视频数据实时传输的时延和丢包要求。
综上所述,开发基于RTP及MPEG-4的流媒体系统已成为满足日新月异的互联网多媒体技术发展非常重要的一种手段。
2系统原理
2.1 MPEG-4压缩标准
MPEG-4是1998年12月正式发布的,旨在为视、音频数据的通信、存取与管理提供一个灵活的框架及一套开发的编码工具,它用在64Kbit/s以下的低速率视音频编码十分有效。MPEG-4与MPEG-1、MPEG-2相比,最重要的特征有:
(1)编码是基于对象的。它把图像和视频分割成不同的对象,对每一个对象的编码形成一个对象码流层,该码流中包含着对象的形状、位置、纹理及其他方面的属性。对一幅图像编码所形成的码流由一系列对象层码流构成,用户可直接对“对象层”进行存取操作,这样就使得操作、控制对象成为可能,而传统的编码都是基于帧的,无法对对象进行操作。
(2)MPEG-4可根据现场带宽和误码率的客观条件在时域和空域有灵活的可扩展性。时域扩展是在带宽允许时在基本层上的增强层中增加帧率,在带宽窄时在基本层中减少帧率;空域扩展是指对基本层中的图像进行插值,增加或减少空间分辨率,以达到充分利用带宽,使图像质量更好。
为了实现上面所说的功能,MPEG-4将音视频码流的语法层次分为视频会话VS、视频对象VO、视频对象层VOL和视频对象平面VOP。一个完整的视频序列由若干个VS构成。VO是给定场景中的一些具体对象,是用户能够存取和操作的实体。若干个VO构成一个VS;VOL是表明VO的空间和时间分辨率的一个类型,与空间和时间分级性密切相关。每个VO可有多层VOL;VOP是VO在某一时刻的表象,即某一帧VO,MPEG-4对每个VOP独立进行编解码,如图1所示。图1MPEG-4语法结构
2.2RTP/RTCP协议
实时传输协议(Real-timeTransportProtocol,PRT)是在Internet上处理多媒体数据流的一种网络协议,利用它能够在1对1(unicast,单播)或者1对多(multicast,多播)的网络环境中实现流媒体数据的实时传输。RTP通常使用UDP来进行多媒体数据的传输,但如果需要的话可以使用TCP或者ATM等其它协议。RTP协议的设计目的是提供实时数据传输中的时间戳信息以及各数据流的同步功能。RTP协议提供序列号字段使接受方通过检测收到的分组序列号判断是否有分组丢失,并可重新恢复发送时的分组顺序;提供时间戳字段用于重新建立原始音频、视频的时序,帮助接受方确定数据到达时间的一致性或变化;提供同步源标识符(SSRC)字段,在接收端为包分组从而进行回放。RTP本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由实时传输控制协议RTCP来负责完成。通常RTCP会采用与RTP相同的分发机制,向会话中的所有成员周期性地发送控制信息,应用程序通过接收这些数据,从中获取相关资料,从而能够对服务质量进行控制或者对网络状况进行诊断。
当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
3传输模型
图2是基于RTP的MPEG-4音视频传输模型。MPEG4数据流分别被封装上RTP报头、UDP报头和IP报头,然后IP数据包通过Internet向接收端发送。当发送端收到已被正常编码压缩的MPEG-4码流后,按照RTP数据传输协议的报文格式装入RTP报文的数据负载段,并配置RTP报文头部的时间戳、同步信息、序列号等参数,此时数据报文已被‘流’化了;同时发送端周期性地接收RTCP包,将Qos反馈控制信息发送到视频服务器,服务器利用这些信息动态地改变自身参数设置。接收端收到IP包后先分析RTP包头,判断版本、长度、负载类型等信息的有效性,更新缓冲区的RTP信息,如收到的字节数、视频帧数、包数、序列号数等信息;按照RTP时间戳和包序列号等进行信源同步,整理RTP包顺序,重构视频帧;最后根据负载类型标识进行解码,将数据放入缓存供解码器解码输出;同时接收端根据RTP包中的信息周期性回送包含Qos反馈控制信息的RTCP包到数据发送端以检测发送端和接收端数据的一致性。
图2基于RTP的MPEG-4音视频传输模型
4系统实现
本系统由3个部分构成:压缩编码、流媒体服务器和客户端播放软件构成。
4.1压缩编码
压缩编码部分采用optibase公司的MPEG-4MovieMaker400实时编码器,基于PCI视频编码平台的MPEGMovieMaker400使用BSP-15芯片Optibase视频编码运算法则和音频软件编码,它在低码流下提供高质量的视频传输。一个MPEGMovieMaker400编码卡有能力去同时编码两路MPEG-4ISMA,而且每一路可以按3种不同的编码流传输,在同一PC机中最多可插入6块MPEGMovieMaker400编码卡且从12个不同的源提供36个编码流的输出,为各种应用程序提供了广阔的编码容量和应用前景,另外只需使用板卡附带提供的SDK就可对其进行进一步的设计和实现。在MPEG-4MovieMaker400实时编码器中要通过RTP传输MPEG-4音视频流,因此需要对MPEG-4音视频数据进行打包,加上时间、同步等信息。由于在MPEG-4中是对每个VOP单独进行编解码的,因此以VOP为单位进行打包既提高了效率又充分利用了MPEG-4的编码特性。另外为了不造成IP碎片,包长必须不超过该网络路径的MTU(MaxiumTransitUnit)。考虑到传输的高效性和丢包的鲁棒性,取包长为当前VOP大小与路径MTU值的较小值,采用如下组包机制:若当前VOP能放入单个RTP包,就把此VOP单独放入一个RTP包中;若放不下,则把VOP分段,放入多个RTP包,此时须把VOP头部信息复制到每个RTP包,以去除包间的相关性,达到丢包的鲁棒性;为减小包数,降低开销,一包中能放入多少宏块就尽可能多地放入多少宏块,但即使最后一个包中仍有剩余空间,也不能把另一VOP中的宏块放入此包中。
RTP包封装MPEG-4数据的算法描述如下:
While(MPEG-4数据流结束前)
{If(发现下一个VOP起始码)
{If(当前分段长度≤去除头部字段长度的路径MTU值)
{把此段数据打入RTP包}
else
{把尽可能多的宏块打入RTP包}
}
else
{对剩余数据打包}
}
另外,只要使用插件,目前MPEGMovieMaker400能够传输到一般播放器中如:QuickTime,RealOne以及WindowsMediaPlayers,因此只需客户端安装optibase提供的专门的MPEGMovieMaker400插件,就可以使用多种主流播放器观看本流媒体系统提供的流媒体文件了。
4.2流媒体服务器
DARWIN流媒体服务器是Apple公司向外界提供的一个开放源代码的流媒体服务系统软件,用户可以对其进行功能上的修改和扩充,它是在QuickTimeStreamingServer基础上简化而来的,但具有QuickTimeStreamingServer的主要功能。DARWIN流媒体服务器的整个传输过程为:当服务器收到RTSP请求,它首先产生RTSP请求对象,然后调用特定的功能模块;对于单播服务,客户端向服务器请求视频内容是通过RTSP协议,服务器通过RTSP协议的应答信息将请求的内容以流会话(streamingsession)的形式描述,内容包括数据流包括多少个流、媒体类型和编解码格式。一个流会话由一个或多个数据流组成,如视频流和音频流等。实际的数据流通过RTP协议传递到客户端。更为重要的是,系统提供了基于Java语言的应用程序开发接口,利用该接口可以方便地开发客户端播放程序,而不必使用系统提供的QuickTimePlayer播放器,减轻了客户端对系统的依赖性,让开发人员把Java语言和QucitTime的优势结合起来,开发出功能强大的多媒体处理程序。
另外流媒体信息的上载、查询等,可采用SQLServer技术的客户/服务器系统数据库结构,数据存放在服务器上,客户端界面作为软件系统的另一部分存在于客户端桌面计算机上,完成显示和应用逻辑。
5结束语
系统基于optibase公司的MPEG-4MovieMaker400实时编码器和DARWIN流媒体服务器,充分利用带宽而又不引起网络阻塞,具有时延小、丢包率低、传输高效的特点,可广泛应用在远程教育、电子商务、娱乐、科研等各个领域。但由于MPEG-4MovieMaker400实时编码器推出的时间较短,对于它的开发和应用仍有许多值得探索的地方。
分享到:
相关推荐
### 基于RTP协议和MPEG-4的流媒体系统分析与实现 #### 概述 在当今数字化时代,随着互联网的迅速发展和多媒体技术的广泛应用,流媒体技术成为了实时传输视频、音频和多媒体动画等媒体文件的关键。本文旨在深入探讨...
基于RTP和MPEG-4的流媒体系统的设计与实现为互联网上的实时多媒体传输提供了有效的解决方案。通过对MPEG-4标准的深入理解和应用,结合RTP和RTCP的优势,可以有效地解决实时传输中的关键问题,如数据包丢失和时延等...
综上所述,基于MPEG-4的流媒体播放方案通过结合RTP/RTCP协议的优势和MPEG-4编码的高效性,成功地提高了互联网上的多媒体数据传输质量和用户体验。此外,通过合理的线程管理和优化传输机制,该方案还能够在保障播放...
实时传输协议(RTP)和实时传输控制协议(RTCP)是实现流媒体传输中的重要组成部分。RTP被用来承载实时数据,如音频和视频流,而RTCP则负责监控服务质量(QoS),如传输质量、丢失率等,确保数据能够有效地在网络中...
此外,了解MPEG-4与MPEG-7的结合,有助于实现基于内容的检索和推荐系统。 总的来说,这个压缩包提供的资料对于学习和开发MPEG-4网络传输应用非常有价值,无论是对多媒体编码的理论研究,还是实际的软件开发,都将...
通过结合RTP/RTCP协议和MPEG-4视频标准,可以构建出高效且稳定的网络视频传输系统。本文介绍了一个实际的应用案例,不仅详细阐述了基于RTP/RTCP协议下的MPEG-4视频流传输原理和技术要点,还探讨了相关的编程实现方法...
传统的流媒体系统通常采用基于PC服务器的C/S(Client/Server)模式结构,视频服务器由计算机主机和多个存放视频的磁盘阵列组成,主要用于视频的存储和传输。然而,在移动视频监控等特殊场合,传统流媒体系统由于体积...
3. **MPEG-4视频文件播放器的研究与开发**:为了便于回放和分析历史监控视频,需要开发一个兼容MPEG-4标准的视频播放器。 #### 解决方案与关键技术 - **网络服务质量(QoS)保证**:由于IP网络本身无法提供服务...
### 基于3G无线网络实时传输MPEG_4流媒体的设计与实现 #### 一、引言 随着多媒体应用技术的迅速发展,人们在日常生活、学习和工作中越来越多地采用了多媒体手段。视频监控系统作为多媒体应用的重要组成部分,在...
基于 C-S 模式流媒体传输系统研究 本文研究了基于 C-S 模式的流媒体传输系统,讨论了其原理和模型。...本文讨论了基于 C-S 模式的流媒体传输系统的原理和模型,对流媒体传输系统的模型和应用进行了详细的分析和讨论。
标题中的“rtp_src.rar_ ts rtp_mpeg ts_rtp_ts rtp_ts send”提到了几个关键术语,包括RTP、MPEG-TS、TS-RTP和TS-Send,这些都与网络传输和视频流处理相关。RTP(Real-time Transport Protocol)是一种用于在IP网络...
总之,RTP(PS)播放器是一个强大的工具,结合了RTP协议的实时传输优势和PS流的数据封装特性,尤其适用于国标GB28181相关的多媒体系统开发和调试。通过使用这个播放器,开发者可以更高效地测试和优化他们的系统,确保...
H264,或称为MPEG-4 Part 10 / AVC,是一种高效的视频编码标准,广泛应用于视频流媒体、视频会议和数字电视等领域,因为它能在相对较低的带宽下提供高质量的视频。 在实现RTP/UDP视频传输时,需要考虑以下几个关键...
内容可能涵盖了系统架构设计、协议栈实现、MPEG-4解码优化、资源管理策略以及实际应用案例分析等。 总之,嵌入式OS的流媒体技术涉及多方面的专业知识,包括但不限于操作系统定制、网络协议栈实现、多媒体编解码技术...
### 基于RTP协议H_264视频流传输QoS保证的研究 #### 摘要 本文探讨了一种在Linux环境下基于RTP/RTCP协议的H.264视频流传输方案,旨在确保高质量的服务(Quality of Service, QoS)。该方案首先通过调用V4L (Video ...
在流媒体系统中,RTP负责数据传输,而RTCP则负责监控传输性能,例如丢包率、延迟和 jitter,从而帮助优化传输策略。 H.264,也称为AVC(Advanced Video Coding),是ITU-T V.80系列的一部分,由MPEG-4 Part 10和ISO...
gm8120_mpeg rtp linux_mpeg4 rtp_rtptypes_un”揭示了这个压缩包文件的主要内容,它涉及的是使用RTP(Real-time Transport Protocol)在Linux环境下处理MPEG4编码视频流的编程实践,特别是与GM8120芯片相关的实现。...
MPEG-4不仅支持传统的流媒体服务,还引入了基于对象的编码,提供内容交互和网络适应性。 首先,MPEG-4的关键技术包括视频对象分割、视频编码可分级技术以及运动估计与补偿技术。视频对象分割是MPEG-4的核心特征之一...