如发现有乱码,
请直接从这里浏览原文
正文摘录:现岱曳壬技术》2007年第8期总第247期》新型元器件司被渲染过滤器阻塞了。通常情况下,过滤器图表中所有过滤器的状态是一致的。3系统设计本系统采用客户端/服务器(C/。s)结构。其中,客户端提供与用户交互的界面,实现点播功能;服务器端实现视频节目的存储管理,用户信息管理和用户点播请求的响应功能。3.1客户端概要设计客户端主要采用C。技术编程实现友好的视频点播界面。此外,由于现有的视频播放器,如windows。MediaPlayer无法收看可控视野的视频节目,所以采用I)irect—Show技术自行开发设计一个播放器。3.2服务器端概要设计服务器端分为We-b服务器和视频服务器两个部分。他们可以在同一个机器上,也可分布在不同的机器上。随着应用规模的不断扩大,可以灵活的增加服务器来提高视频服务器的资源带宽。服务器端的主要模块有:身份验证模块对用户的身份进行验证。数据库管理模块负责有关用户身份验证的查询和维护,播放管理模块对媒体流内容存储路径的查询和维护,完成从逻辑节目到文件物理存储的映射。播放管理模块负责点播服务的播放响应功能。4系统实现中的关键技术系统客户端播放器需要接收从服务器端传送过来的多路视频流。并将其分别解码、同步,然后合成播放。其中解码使用微软DirectShow现有的过滤器,同步和混合渲染都需要重写D.rectSllow中的VMR(Vide-0MixingRen—derer)组件来实现。VMR,即视频混合渲染器.也是Di—rectShow的一个渲染过滤器.可以同时呈现多路视频流,最多支持16路输入流的a混合。4.1VMR简介VMR位于视频流最后的筛选器图形中。根据具体的配置不同,由2~5个独立功能的组件构成(不包括输入引脚)。VMR包括混合器(Mixer)、图像合成器(Composi—toI‘)、分配演示器(Allocator’Presenter)、核心同步控制器(CorPSynchr()nizati‘onUnit)和窗口管理器(windowMan—ager),其结构如图1所示。(1)混合器当有多路输入流时VMR将加载该c()M对象。混合器负责收集每路输入流的信息,并将他们进行z排序;混合器还决定什么时候每个输入引脚接受输入样本,同时,还要在恰当的时间通知图像合成器执行实际的混合;混合器也计算每个输出图像的时间戳;当应用程序提供一幅位图用于显示在合成后的图像的最上层时,即使输入流的Z顺序发生了改变,混合器也必须保证位图处于最上面。(2)图像合成器该C()M对象执行实际的混合,将多路输入流合成到一个单一的DirectDraw表面,DirectDraw表面由分配演示器提供。VMR提供一个缺省的图像合成器供应用程序进行二维的a混合。应用程序可以提供一个自定义的图像合成器实现别的二维或者三维效果.如给部分图象应用纹理、每个像素进行a混合。图lVMR结构图(3)分配演示器这同样是个C()M对象,给图像合成器分配Direct—I)raw表面,同时负责与图形卡扣’交道。应用程序可以自己实现分配演示器从而控制DirectDraw物体.或者存视频呈现的时候访问位信息。(4)核心同步控制器保证每一帧都能在正确的时』1j=J呈现出来。核心同步控制器使用过滤器图表管理器提供的IReferenceCl。ck接口,并且执行质量控制和帧报告函数。(5)窗口管理器只有当VMR工作在窗[J(windowed)模式下时才使用。VMR的这种组件式结构使应用程序可以根据需要以不同的方式操作他,VMR支持3种不同的操作模式:有窗口(windowed)、无窗口(Windowless)和尤呈现(render—less);两种混合模式:单一流(singlestream)和多个流(multiplejstreams)。有窗口模式是默认模式.VMR会创建一个单独的窗口.并将视频呈现到该窗口}二;无窗口模式通过将视频直接呈现到应用程序窗口上,为应用程序提供了更强的控制能力;而无呈现模式使用程序自定义的分配演示器对象。可控视野点播系统需要播放多路视频流.所以采用无窗口模式。要注意的是,VMR必须被加入到过滤器图表中,并且必须保证在他连接其他过滤器之前已经全部配置完毕。在VMR被初始化之后,程序必须在所有的连接启动之前指定VMR将要接收的视频流的数目。4.2VMR的渲染原理VMR同时接收两路视频信号.并把他f『J同时播放出来。图2中VMR有默认的4个输入引脚,如果需要播放49
阅读此文(图):
在线翻阅