Presentation is loading. Please wait.

Presentation is loading. Please wait.

基于DirectShow的RTP视频监控系统

Similar presentations


Presentation on theme: "基于DirectShow的RTP视频监控系统"— Presentation transcript:

1 基于DirectShow的RTP视频监控系统
SC 王靖琰 SA 李娜娜 SC 郭 静

2 内容提要 项目介绍 视频监控系统关键技术 视频监控系统总体设计 视频监控系统实现 总结与收获

3 项目介绍 视频监控是安全防范系统的重要组成部分,它是一种防范能力较强的综合系统。
它是以计算机技术为核心,结合先进的多媒体技术、网络通信技术、数字视频压缩技术的一种监控技术。 视频监控以其直观、准确、及时和信息内容丰富而广泛应用于生产管理、保安等许多场合。

4 项目介绍 本课题组采用可扩展性好的DirectShow实现媒体流的数据管理,采用先进的视频压缩标准MPEG-4对视频进行编解码,采用RTP/RTCP实现视频流的实时传输,设计实现了一种基于DirectShow和RTP/RTCP传输的MPEG-4视频的实时视频监控系统。 网络 视频捕捉 视频压缩 视频发送 视频播放 视频解压 视频接收 李娜娜 郭静 王靖琰

5 视频监控系统关键技术 COM技术 DirectShow技术 MPEG-4视频压缩标准 实时传输协议RTP/RTCP

6 COM技术 COM组件是具有一定功能的、可以单独开发模块,它可以通过接口相互协同工作以完成某项任务,应用程序直接使用这些接口来实现对媒体流的控制。 本文用到的COM组件是基于COM技术的DirectShow过滤器(Filter)。

7 DirectShow技术 Direct Show 是Microsoft 公司为了简化流媒体处理而提供的基于Windows 平台的开发包。

8 DirectShow技术 Direct Show 使用一种称为Filter Graph 的模型来管理整个数据流的处理过程,参与数据处理的各个功能模块称为Filter ,Filter 之间的数据接口称为Pin 。Direct Show 的结构如图所示。

9 DirectShow技术 Direct Show 是建立在COM 组件技术基础上的,它的所有部件和功能都是由COM 接口来构造和实现的, Filter 和Pin 都是COM 对象。 Filter 之间的数据交换是通过COM 对象Media Sample 实现, 它封装了一段媒体流数据以及该段数据的属性。

10 MPEG-4标准 MPEG-4的最大的特点就是以对象为基础的空间可分级性,所谓的对象是在一个场景中能够访问和操纵的实体。

11 MPEG-4的语法结构 一个视频系列由若干个 视频会话VS构成.
VO是场景中的具体对象,是由时间上连续的帧画面系列组成的,是用户能够存取和操作的实体。 VOL是表明VO的空间和时间分辨率的一个类型。 GOV 在视频中提供标记用于记录视频平面单独编码的时域,空域位置,即实现了对视频流数据任意访问的可能 VOP是VO在某一时刻的表象,即某一帧VO。

12 MPEG-4的语法结构 VOP有三种相应的帧格式:IVOP, PVOP和BVOP.
IVOP在编码时只用到它自己的信息;PVOP在编码时要用到先前的VOP作为参考进行运动估计和补偿;BVOP在编码时则要用到先前和后续的VOP作为参考进行运动估计和补偿。 VOP可以分解为若干个宏块(大小为16 X 16),每个宏块又被分成4个的块(8X8大小)。任何一个编码序列都是从I帧(称为“关键帧”或“同步帧”)开始,后面可以有多个P帧或B帧.

13 基于对象的视频编码过程 (1)从原始视频流中分割视频对象。
(2)对输入的任意形状的VOP序列,用基于块的预测编码、形状编码和离散余弦变换的混合编码技术编码,处理顺序是先IVOP后PVOP, BVOP。 (3)对各个视频对象的码流进行复合,每个视频对象的形状、运动和纹理信息复合成VOL比特流,各视频对象视频流复合成统一的码流输出。

14 基于对象的视频编码过程 在对VOP的形状信息编码后,取得任意形状VOP的采样,每个VOP划分为不相交的宏块,每个宏块含有4个8X8象素块,以进行运动估计和补偿以及纹理编码,己编码的VOP帧保存在帧存中,在当前VOP帧和己编码VOP帧之间计算运动矢量 对将编码的块和宏块,计算他们的运动补偿预测误差;运动补偿预测后的IVOP及误差用8X8块DCT变换,并进行DCT系数的量化,然后是游程编码和嫡编码。

15 实时传输协议RTP/RTCP 实时传输协议(Real-time Transport Protocol,PRT)是在 Internet 上实时传输多媒体数据流的一种网络协议。RTP 通常使用 UDP 来进行多媒体数据的传输,但如果需要可以使用 其它协议。 RTP/RTCP协议族由两个相关的协议构成: 1) 实时传输协议RTP用来传输具有实时特点的数据。 2) 实时传输控制协议RTCP用于统计、管理和控制RTP传输。

16 实时传输协议RTP/RTCP RTP 数据协议负责对流媒体数据进行封包并实现媒体流的实时传输,每一个RTP数据报都由头部和负载两个部分组成。
的头部格式 RTP 数据报的头部格式包含了传输媒体的类型、格式、序列号、时间戳以及是否有附加数据等信息,这些都为实时的流媒体传输提供了相应的基础。

17 RTCP 控制协议 RTCP 数据报携带有服务质量监控的必要信息,能够对服务质量进行动态的调整,并能够对网络拥塞进行有效的控制。
SR(发送端报告) RR(接收端报告) SDES(源描述)  BYE(通知离开) APP(由应用程序自己定义)

18 RTCP 控制协议 媒体流发送端将周期性地产生发送端报告 SR,含有不同媒体流间的同步信息、已发送的数据报和字节的计数,接收端根据这些信息可以估计出实际的数据传输速率。 接收端会向所有已知的发送端发送接收端报告 RR,含有已接收数据报的最大序列号、丢失的数据报数目、延时抖动和时间戳等重要信息,发送端应用根据这些信息可以估计出往返时延,并且可以根据数据报丢失概率和时延抖动情况动态调整发送速率,以改善网络拥塞状况,或者根据网络状况平滑地调整应用程序的服务质量。

19 视频监控系统总体设计 系统采用Client/Server结构,其中服务器端主要任务是视频捕捉、视频压缩、视频存储、视频网络发送和视频实时预览;客户端的主要任务是视频网络接收、视频解码、视频存储和视频回放。系统功能流程结构如图所示:

20 系统软件总体结构

21 视频实时捕捉模块 DirectShow捕捉视频技术是在VFW基础上发展起来的新一代基于COM的开放式多媒体开发平台,它对不依赖于硬件的实时视频捕捉系统的开发具有极其重要的意义。 DirectShow提供了一个叫做Capture Graph Builder的对象,提供CaptureGraphBuilder2接口,该接口可以建立和控制Capture Graph。

22 视频实时捕捉模块 建立视频捕捉程序,必须首先获取并初始化ICaptureGraphBuilder2接口,然后通过枚举选择一个适当的视频捕捉设备,为该设备创建Capture Filter,然后调用addFilter把Capture Filter添加到Filter Graph。

23 视频编码模块 本系统采用符合MPEG-4标准的XviD作为视频编解码器。
XviD主要优点在于:开放源码;图像压缩后质量接近于DVD画质,数据量只有DVD的1 /8;目前最快的视频编解码器。 XviD编码器运行状态图如图所示:

24 视频编码模块 在过滤器图中添加用来实现视频编码的过滤器。具体采用XVID编解码器(XVID Codec)。
在调用XVID Codec的时候,对编码器进行枚举,直到找到需要的视频编码器为止,并将其绑定成一个Filter,加入到过滤器图表中。

25 视频解码模块 视频解码部分主要由MPEG-4解码过滤器XviD MPEG-4 Video Decoder实现,它包括一个输入Pin和一个输出Pin,在接收Filter的后面接上该解码Filter的输入Pin即可,最后输出Pin接上Video Renderer Filter就可以把接收到的数据回放出来。

26 视频播放模块 视频回放体系中各个模块实现后,为了实现视频的实时回放,就要将客户端系统运行起来.

27 视频传输与服务质量控制 实现视频流实时传输的核心是网络发送过滤器和网络接收过滤器的实现,本系统定义为RTPSender和RTPReceiver. RTP/RTCP协议功能在这两个过滤器中实现, RTPSender用于把从压缩过滤器传来的媒体数据封装成RTP包,将MPEG-4数据作为RTP数据包的净负荷,设置RTP包头,标记顺序号,打上时间戳等,形成RTP数据包,然后根据视频帧发送时间间隔发送到网络中去。

28 网络传输过滤器的实现 RTPReceiver负责从网络接收媒体数据包、对视频数据包解封装、读取包的序列号、对包进行分析排序并写入接收端缓冲区。 两个传输过滤器都是结合微软SDK示例DSNetwork和开源代码JRTPLIB 开发的。 JRTPLIB是一个用C++语言写的面向对象的RTP库,这个库使用socket机制实现网络通讯,通过使用这个库可以很好地用RTP发送和接收数据。

29 网络传输过滤器的实现 使用JRTPLIB时,只需要通过继承RTPSession类实现以下几步就可以完成数据的发送和接收。
(2)数据发送:首先需要设置目标地址,然后就可以调用RTPSession类的SendPacket()方法,向目标地址发送流媒体数据。 (3)数据接收:首先需要调用RTPSession类的JoinMulticastGroup()加入组播组,然后用polldata()方法来接收发送过来的rtp或者rtcp数据包。

30 视频服务质量控制 视频服务质量控制是根据网络状况自适应地控制视频质量,主要目的是保证在视频传输过程中改善视频质量。
由于网络带宽有限,一旦传输速度过快,就可能引起网络拥塞、抖动和丢包。 本系统采用如下的服务质量控制策略:一方面发送方服务器在接收到客户端的服务质量报告后动态地调整发送速率,另一方面客户端设置环形缓冲区来弥补网络延迟和抖动的影响。

31 基于RTCP的自适应传输控制 本系统采用某段时间内数据包丢失率作为拥塞状态的反馈信息。 丢包数( ,时刻t之前的丢包数):
丢包率( , t时刻和k时刻之间发生的丢包率):

32 基于RTCP的自适应传输控制 接收用户终端不断并通过RTCP的接收方报告(RR)把测量丢包率反馈给发送端. 发送端反馈控制算法如下:
if ( >Puthreahold){//网络拥塞 RateCurrent = max{a*RateCurrent,LRate};} else if ( <Plthreahold){//网络空闲 RateCurrent=min{(RateCurrent+step),URate};} else RateCurrent=RateCurrent;//网络负载均衡适中

33 系统对抖动的处理 缓冲区使用先进先出的环形链表队列,Read的时候读链表头,AddBuffer时就加到队列尾部。
目的端根据接收视频流缓冲区状况实时管理环形缓冲区,力图使输出节奏均匀。 环形缓冲区的设计平滑了时延抖动对回放质量造成的冲击,能够较好地满足视频回放的要求。 出队 入队 使用方向 空闲空间

34 视频传输与服务质量控制 所有Filter实现后,在GraphEdit中连接,运行效果图如图

35 总结 视频监控系统是一个非常有意义又十分困难的综合性课题。 本组深入研究了DirectShow, MPEG-4, RTP/RTCP等技术,提出了视频服务质量控制策略,在此基础上设计并实现了一个视频监控系统。 目前,本系统的设计、编码已经基本完成,系统在测试过程中取得了较好的效果。

36 收获 通过长期努力,本系统基本达到了设计要求,通过本项目,本组人员分析问题和解决问题的能力大大提高,同时对多媒体数据的采集、压缩、链路管理、实时传输协议等技术有了较深入的理解。 但由于直播系统本身具有的复杂性,同时由于条件限制,目前的成果距离实际应用还有一段相当长的路要走。本系统还有较多需要完善的地方,比如对音频的支持,以及组播功能。

37


Download ppt "基于DirectShow的RTP视频监控系统"

Similar presentations


Ads by Google