流媒体实时传输系统的设计与实现(服务器端).doc
《流媒体实时传输系统的设计与实现(服务器端).doc》由会员分享,可在线阅读,更多相关《流媒体实时传输系统的设计与实现(服务器端).doc(40页珍藏版)》请在三一文库上搜索。
1、江苏技术师范学院毕业设计说明书(论文)流媒体实时传输系统的设计与实现(服务器端)摘 要:随着Internet和多媒体技术的快速发展,网络视频的实时传输成为网络应用的热点之一。H.264 作为新兴的编解码技术带来了技术上的改进,在同等压缩质量情况下,压缩输出码率大约为MPEG-4的二分之一。加之网络带宽的进一步提升,实现网络实时监控技术已趋成熟。本文采用VC+ 6.0开发工具以及套接字编程技术设计与实现一个基于Windows流媒体实时传输系统。该系统通过接收网络摄像机发来的经过H.264编码的视频帧,保存在视频文件中,同时通过NAL单元提取模块在视频帧中搜索NAL单元的起始码从而提取出NAL单元
2、。当NAL单元数据不大于1400B时则将NAL单元封装成单一的RTP包,否则,采用分割NAL单元封装成多个RTP包,其大小不超过IP网络的最大传输单元。经过处理后的NAL单元以RTP包的形式按UDP数据包发往客户端,由客户端实时监控视频。本系统运行可靠,能够正确地接受网络摄像机发来的视频数据,并能正确地发送给客户端,实现客户端实时监控现场。关键词:流媒体,H.264,实时传送协议,NAL单元,网络视频Design and Implementation of Streaming Media Real-time Transmission System (Server)Abstract: With
3、the fast development of Internet and multimedia technology, the network video real-time transmission become one of hot spots of network applications. H.264 as emerging decoding technology, brings in the technical improvement. In the same compression cases, its compression output for original code-ra
4、te is about one half of MPEG-4. And further improvement of network bandwidth, network real-time monitoring technology tends to be matured. This paper uses VC+ 6.0 development tool and socket programming technology to design and implement a real-time streaming media transmission system based on Windo
5、ws . This system receives the H.264 video frames sended by network camera and stores them in the video files .By the Unit extraction module ,it serches start codes in the video frames and extracts NAL Units. when NAL unit data is not bigger than 1400B, makes the NAL unit encapsulate to be a single R
6、TP packet. Otherwise, uses segmentation NAL unit to encapsulate some RTP packets, but its size is not allowed to exceed the maximum transsimision unit of IP network. after dealing, sends them to client through UDP data packet in the form of RTP packet. And client Monitors in real time. This system r
7、uns reliably and accurately. It is able to correctly accept video data from network camera , send to client and make client monitor the site in real time.Keywords: Streaming Media,H.264,Real-time Transport Protocol,NAL Unit,Network VideoII目录前言1第1章 流媒体技术概论21.1 流媒体概念21.2 流媒体的特点21.3 多媒体数据网络传输现状31.4 本文主
8、要工作及章节安排3第2章 流媒体传输基础理论52.1 H.264编码简介52.2 UDP协议72.3 RTP协议82.4 H.264视频的传输方法102.5 本章小结13第3章 流媒体实时传输系统服务器端的设计143.1 参数设置模块的设计153.2 接收网络摄像机视频数据模块的设计153.3 保存视频文件模块的设计163.4 NAL单元提取模块的设计173.5 将NAL单元数据封装后发送给客户端模块的设计183.5.1 H.264视频流的RTP设计规则193.5.2 服务器与客户端之间的通信193.5.3 RTP数据包的封装193.6 本章小结22第4章 流媒体实时传输系统服务器端的实现23
9、4.1 参数设置模块的实现234.2 接收网络摄像机视频数据模块的实现244.3 保存视频文件模块的实现254.4 NAL单元提取模块的实现264.5 将NAL单元数据封装后发送给客户端模块的设计274.5.1 服务器与客户端之间的通信的实现274.5.2 时间戳的计算274.5.3 NAL单元字节数不大于1400B时的RTP数据包的封装284.5.4 NAL单元字节数大于1400B时的RTP数据包的封装294.6 系统的运行304.7 本章小结32结束语33参考文献34致谢36IV前言视频监控正从传统的安防监控向管理、生产监控发展,并逐步与管理信息系统相结合,达到资源共享,为管理者提供更直观
10、、有效的决策信息。这不仅使人们能以最简便、最逼真、最安全的方式进行远距离实时监控,实现零距离沟通,其在各个领域的广泛应用也有力地推动了整个社会信息化的发展。就目前视频监控系统发展进程来说,它向着前端一体化、视频数字化、监控网络化、系统集成化等方向发展,而数字化是网络化的前提,网络化又是系统集成化的基础。正是在这种背景下,提出网络实时监控系统课题。该课题从功能上可分为三个大模块:第一个模块是网络摄像机,它由DaVinci平台和摄像头构成,DaVinci将摄像头采集到的一帧帧视频图像数据经过H.264压缩算法压缩后按帧发往服务器。第二个模块是服务器模块,它的功能是接收网络摄像机发来的视频帧,并保存
11、在磁盘上,供后期查询视频内容,同时从每一帧中提取NAL单元(Network Abstraction Layer Unit)数据发往客户端进行实时监控。第三个模块是客户端播放器,它的功能是接收服务器端的视频流并用播放器播放,起到实时监控的作用。本课题是网络实时监控系统的一个子系统,主要设计与实现第二个模块,即服务器模块。本文是基于Windows系统设计并实现了流媒体实时传输系统,完成视频的接收与实时传输。所涉及到的理论知识有流媒体技术、视频压缩、RTP实时传输协议以及网络编程等。使用VC+6.0开发工具,利用套接字进行程序设计。第1章 流媒体技术概论1.1 流媒体概念通常意义上的流媒体是指在In
12、ternet/Intranet中使用流式传输技术传输的连续时基媒体及其相关技术的统称。实现流媒体的关键技术是流式传输。流媒体传输技术是指把连续的影像和声音信息经过特殊的压缩方式分成一个个压缩包,由音/视频服务器向用户计算机连续、实时地传送。用户可以通过播放器一边下载一边观看,不需要等整个压缩文件下载到本地后才可开始欣赏。实现流式传输有两种方法:实时流式传输(Real-time Streaming)和顺序流式传输(Progressive Streaming)。实时流式传输指保证媒体信号带宽与网络连接配匹,使媒体可被实时观看到。顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻
13、,用户只能观看已下载的那部分,而不能跳到还未下载的部分,顺序流式传输不像实时流式传输在传输期间根据用户连接的速度做调整。实时流式传输特别适合现场事件,也支持随机访问,用户可快进或后退以观看前面或后面的内容。在实际中采用哪种传输方法依赖用户的需求1。1.2 流媒体的特点流媒体具有如下特点:实时传输和实时播放。流媒体使得用户可以立即播放音频和视频,这无论对于获取存储在服务器上的流媒体音频和视频文件还是现场音频和视频流都是很有意义的。如用户可以立即浏览前面一部分视频信息来决定是否继续观看。可以节省大量的存储空间。预先构造的流文件或用实时编码器对现场信息进行编码后得到的现场流比原始信息的数据要小,而且
14、用户不需将所有下载的数据都同时存储在本地存储器上,从而节省了大量的磁盘空间。使传输那些事先不知道或无法知道大小的媒体数据(如网上直播、视频会议等)成为可能。1.3 多媒体数据网络传输现状 国际上一些通用的视频标准的网络传输已得到广泛研究和发展,已制定了一系列的标准。在一般的流式传输中通常都采用了RTP/UDP协议来传输多媒体数据。IETF已经制定了一系列的RTP与特定媒体相结合的标准,如 MPEG-1/2 over RTP,MPEG-4 over RTP, Interleaved Media over RTP, General Audio over RTP, FEC over RTP等。不同的
15、视频编码标准有不同的结构和概念,因此对它们进行RTP封装时所采用的技术就会存在差异甚至是很大的差异。因此,对每种视频编码标准的媒体数据进行RTP封装时,要考虑到它们自身的特性,在提高封装效率的同时,尽量保证。IETF对H.264的RTP封装也已经提出了草案。对于H.264 over RTP现阶段仅有一个Internet草案,还没有正式的标准文档。由于H.264在设计之初就考虑到了网络传输,因此 H.264 具有很好的网络亲和力。在H.264的编码结构中有专门的网络抽象层NAL,因此在一个RTP数据包里可以封装一个或多个NAL单元,视具体的使用场景而定。在H.264 over RTP草案中,提出
16、了三种RTP封装模式:单一NAL模式,非交织模式和交织模式。在单一NAL模式下,只能在一个RTP包中封装一个单一NAL包,该方式兼容ITU-T H.241,适用于低延迟的场合。非交织模式主要适用于不符合H.241建议的低延迟场合,在这种模式下,NAL包要按照NAL单元解码顺序来传输,可以使用单一NAL包,或者不带解码顺序号(Decoding Order Number,DON)的单时间聚合包和不带DON的分割包。交织模式主要用于对端到端延迟要求不严格的场合,它允许把属于一个NAL单元的数据放到多个RTP包中进行传输,这主要用于配合一些错误恢复策略的实施,提高鲁棒性等。除单一NAL包和不带DON的
17、单时间聚合包不能使用外,其他NAL包(大多是带DON的)都可以在交织模式下使用2 。1.4 本文主要工作及章节安排远程视频监控系统由网络摄像机、网络服务器、客户端播放器三部分组成,其结构如图1-1所示。网络摄像机将采集到的每一帧视频图像经过H.264压缩编码后,传输给视频服务器;视频服务器将接收到的帧以NAL单元为单位发送给客户端;客户端网络摄像机网络视频服务器网络客户端图1-1 视频监控系统示意图播放接收到的H.264NAL单元数据。本课题主要设计与实现视频服务器的功能。包括服务器整体架构设计,服务器与客户端的会话交互设计与实现,服务器接收网络摄像机的视频数据,进行RTP封装并发送到客户端。
18、本文主要包括以下内容:(1) 简要介绍本系统中所用到的相关理论知识,分析H.264算法、RTP协议。(2) 服务器的设计与实现,完成的主要功能包括接收网络摄像机的视频流,保存视频流到文件中,将视频比特流分解为NAL单元流,以RTP打包并传输给客户端。本论文章节安排如下: 第1章 对流媒体概念、特点以及多媒体数据传输技术进行简单介绍。第2章 介绍本课题中所用到的通信协议的原理及使用方法。第3章 详细分析视频服务器的需求,并设计流媒体实时传输系统服务器端的功能模块。第4章 介绍流媒体实时传输系统服务器端的实现及运行情况。最后进行总结。第 36 页 共 36 页第2章 流媒体传输基础理论在网络上传输
19、流媒体需要合适的压缩算法对声音/视频数据进行编码,以减轻网络负担。流媒体传输的实现需要合适的传输协议,由于TCP需要较多的开销,故不太适合传输实时数据。在流媒体传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。本文视频图像采用H.264压缩算法编码,应用UDP数据包封装RTP数据包传输给客户端。 2.1 H.264编码简介H.264/AVC是国际电信联盟电信标准化部的VCEG(Video Coding Experts Group) 和国际标准化组织/国际电工委员会的 MPEG(Moving Picture Experts Group)联合成立的“联
20、合视频组”JVT(Joint Video Team)共同制定的视频编码新标准。由于在相同重建图像质量下,H.264相比MPEG-4可以节省约50%的输出码率3。由于H.264采用了许多不同于以往标准中使用的先进技术,所以相对于以往的标准,H.264能获得比H.263和MPEG4更高的压缩性能,有利于用有限的空间存储更多的图像数据;对网络传输具有更好的支持,引入面向数据包编码,有利于将数据打包在网络中传输,支持流媒体服务应用;具有较强的抗误码特性,以适应在噪声干扰大、丢包率高的无线信道中传输;对不同应用的时延要求具有灵活的适应性;编码和解码复杂度具有可扩展性,支持编码和解码复杂度的不等分配和扩展
21、4。H.264作为一种新型的视频压缩标准,对于研究多媒体通信和新一代的网络业务有着重要的意义5。H.264的基本流(elementary stream, ES)的结构分为两层,包括视频编码层VCL(Video Coding Layer)和网络抽象层NAL(Network Abstraction Layer)。VCL负责高效的视频内容表示,而NAL负责以网络所要求的恰当的方式对数据进行打包和传送。引入NAL并使之与VCL分离带来的好处包括两方面:其一、使信号处理和网络传输分离,VCL和NAL可以在不同的处理平台上实现;其二、VCL和NAL分离设计,使得在不同的网络环境内,网关不需要因为网络环境不
22、同而对VCL比特流进行重构和重编码。H.264的基本流由一系列NAL单元(NAL Unit)组成,不同的NAL单元数据量各不相同。当H.264数据流是储存在介质上时,在每个NAL单元前添加起始码,用来指示一个NAL单元的起始和终止位置。起始码有两种,分别是3字节的0x000001和4字节的0x00000001。当一个完整的帧被编为多个片段(slice)时,包含这些编码片的NAL单元使用3字节起始码,其余场合使用4字节的起始码。在这样的机制下,解码器在码流中检测起始码,作为一个NAL单元的起始标识,当检测到下一个起始码时,当前NAL单元结束3。NAL单元是NAL的基本语法结构,它包含一个字节的头
23、信息和一系列来自VCL的称为原始字节序列载荷(raw byte sequence payload,RBSP)的字节流。其中NAL单元头的格式如下图2-1所示。01234567FNRITYPE图2-1 NAL单元头格式禁止位(forbidden_zero_bit):F,占1 位。值为0表示NAL单元无语法错误。值为 1表示NAL单元头和净负荷中可能包含比特错误或其他语法错误。NAL参考标号(nal_ref_idc):NRI,占2 位。指示当前NAL的优先级。取值范围为0-3,值越高,表示当前NAL越重要,需要优先受到保护。H.264规定如果当前NAL是属于参考帧的片,或是序列参数集,或是图像参数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流媒体 实时 传输 系统 设计 实现 服务器端
链接地址:https://www.31doc.com/p-10727732.html