您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 会议纪要 > 第5章 网络视频点播系统
北华航天工业学院计算机系制作VC++程序设计项目实践贾振华北华航天工业学院计算机系制作单击此处编辑母版标题样式第5章网络视频点播系统学习目标:Winsock网络编程DirectShow的使用方法ActiveX控件制作及使用方法在VC++环境中验证程序的方法北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介DirectShow是一个windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括ASF、MPEG、AVI、MP3和WAV文件,同时支持使用WDM驱动或早期的VFW驱动来进行多媒体流的采集。DirectShow整合了其它的DirectX技术,能自动地侦测并使用可利用的音视频硬件加速,也能支持没有硬件加速的系统。为了对DirectShow系统有个整体的印象,我们先看一下所示的DirectShow系统示意图,如图5-1所示。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介图5-1DirectShow系统示意图北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介图中央最大的一块即是DirectShow系统。DirectShow使用一种叫FilterGraph的模型来管理整个数据流的处理过程,参与数据处理的各个功能模块叫做过滤器(Filter),各个Filter在FilterGraph中按一定的顺序连接成一条“流水线”协同工作。过滤器(Filter)是DirectShow的基本组成部分,是FilterGraph(过滤器图)中最小的功能模块,DirectShow将多媒体数据的处理分离成不同的步骤,这些不同的步骤由相应的Filter去处理。这样我们可以把不同的过滤器搭配在一起达到我们要求的来处理多媒体数据。过滤器根据实现功能的不同大致可分为3类:北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介(1)源过滤器(SourceFilters)。源过滤器负责得到原始媒体数据。这些媒体数据的来源包括本地硬盘或网络上的媒体文件、各种采集卡等。(2)转换过滤器(TransformFilters)。转换过滤器的任务是处理从其他过滤器中接收的数据,经过一定的处理后再传递给下一个过滤器。编解码器就是典型的转换过滤器。(3)表现过滤器(RenderingFilters)。表现过滤器对接收到的数据进行最后的处理。它做的工作有:把媒体数据保存为文件、将数据发送到网络、显示视频、回放音频等。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介值得注意的是,三个部分并不是都只有一个Filter去完成功能。恰恰相反,每个部分往往是有几个Fitler协同工作的。比如,TransformFilters可能包含了一个Mpeg的解码Filter、以及视频色彩空间的转换Filter、音频采样频率转换Filter等等。除了系统提供的大量Filter外,可以定制自己的Filter,以完成需要的功能。一条典型的Avi文件回放FilterGraph链路,如图5-2所示。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介图5-2Avi文件回放链路北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介在DirectShow系统之上的是应用程序(Application)。应用程序要按照程序所要实现的功能建立起相应的FilterGraph,然后借助于FilterGraphManager来控制整个数据的处理过程。DirectShow能在FilterGraph运行的时候接收到各种事件,并通过消息的方式发送到应用程序。这样就实现了应用程序与DirectShow系统之间的交互。DirectShow应用程序开发的一般过程如图5-3所示。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介图5-3DirectShow应用程序开发过程示意图北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.1DirectShow简介以上简单介绍了DirectShow的系统结构,希望对这个强劲的应用框架已经有了大概的认识。如果感兴趣,可详细研究DirectX的帮助文档。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.2DirectShow支持的格式DirectShow是一个开放的框架,因此只要有合适的filter来分析和解码,它可以支持任何格式。DirectShow默认支持以下的文件类型和压缩格式(打*号的需要WindowsMediaFormatSDK支持):1.文件类型:WindowsMediaAudio(WMA)*WindowsMediaVideo(WMV)*AdvancedSystemsFormat(ASF)*MotionPictureExpertsGroup(MPEG)Audio-VideoInterleaved(AVI)QuickTime(version2andlower)WAVAIFFAUSNDMIDI北华航天工业学院计算机系制作单击此处编辑母版标题样式5.1DirectShow技术5.1.2DirectShow支持的格式2.压缩格式:WindowsMediaVideo*ISOMPEG-4videoversion1.0*MicrosoftMPEG-4version3*SiproLabsACELP*WindowsMediaAudio*MPEGAudioLayer-3(MP3)(decompressiononly)DigitalVideo(DV)MPEG-1(decompressiononly)MJPEGCinepak微软自己没有提供MPEG2解码器,一些可用的DirectShowMPEG2硬件或软件解码器是由第三方提供的。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.2ActiveX技术简介ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自主的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX控件。ActiveX是Microsoft为抗衡SunMicrosystems的JAVA技术而提出的,此控件的功能和JAVAapplet功能类似。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.2ActiveX技术简介在Windows操作系统中,会看到一些以OCX结尾的文件。OCX代表“对象链接与嵌入控件”(OLE),这个技术是Microsoft提出的程序技术,用于处理桌面文件的混合使用。现在COM的概念已经取代OLE的一部分,Microsoft也使用ActiveX控件代表组件对象。组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个COM组件(ActiveX控件)可由不同语言的开发工具开发,包括C++和VisualBasic或PowerBuilder,甚至一些技术性语言如VBScript。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.2ActiveX技术简介ActiveX组件包括如下几类:(1)自动化服务器(2)自动化控制器(3)控件(4)文档(5)容器北华航天工业学院计算机系制作单击此处编辑母版标题样式5.3VOD点播系统实现5.3.1系统简介通过设计一个典型的VOD视频点播系统,介绍创建视频点播程序的基本过程。采用客户端/服务器(C/S)结构。服务器端实现视频节目的存储管理和用户点播请求的响应功能,客户端可点播相应节目。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.3VOD点播系统实现服务器端的主要功能是响应客户端请求,包括重选曲目、播放、停止等各项控制功能。客户端的主要功能是响应用户的各种操作,包括视频文件的点播、播放、停止等。北华航天工业学院计算机系制作单击此处编辑母版标题样式5.3VOD点播系统实现5.3.2服务器应用程序实现1.服务器端界面构建2.服务器端功能实现(1)服务器端首先要创建监听线程,用来监听客户端的请求。(2)每个多媒体文件的基本信息用到如下媒体文件信息类(3)视频文件的添加和删除北华航天工业学院计算机系制作单击此处编辑母版标题样式运行服务器端程序,其媒体文件添加过程及添加结果分别如图5-6、5-7所示。5.3VOD点播系统实现5.3.2服务器应用程序实现图5-6服务器端文件添加界面图5-7服务器端文件添加结果北华航天工业学院计算机系制作单击此处编辑母版标题样式5.3.3客户端应用程序实现1.客户端界面构建(1)客户端首先要创建线程,用来向服务器发送消息并接收来自服务器的响应消息。(2)实现客户端各子功能运行客户端程序,实现文件的播放,运行结果如图5-14所示。图5-14文件点播界面北华航天工业学院计算机系制作单击此处编辑母版标题样式本章小结本节设计了一个典型的VOD点播系统,并介绍创建视频点播程序的基本过程和精要之处。该系统采用客户端/服务器(C/S)结构。其中,客户端提供与用户交互的界面,实现点播功能;服务器端实现视频节目的存储管理和用户点播请求的响应功能。本程序在VC++6.0下编译通过,在使用windowsXP/NT的局域网里运行良好。北华航天工业学院计算机系制作
本文标题:第5章 网络视频点播系统
链接地址:https://www.777doc.com/doc-3176827 .html