基于DirectShow的可控视野视频点播系统的设计与实现
发布时间:2008/6/5 0:00:00 访问次数:352
1 引 言
视频点播(video on demand,vod)是利用视频服务器存储的视频节目和其他多媒体信息,通过传输网络和用户前端设备(如机顶盒)向用户提供交互式的视频服务。用户能够通过计算机或相应的用户前端设备,对服务器提供的视频节目进行编辑与处理,如暂停、快/慢进、搜索等等。vod还可以实现上网、家庭购物、旅游指南、订票预约、股票交易等其他功能。
但是,目前的视频点播功能具有一定的局限性。播放的节目都是由电视台决定的,尤其是在比赛的转播中,电视台播放哪些画面、镜头,观众只能被动地接受,无法选择。而可控视野的视频点播是利用摄像机组将现场各方位的画面都拍摄下来,然后利用视频融合技术进行处理,供用户进行点播。这样,用户就可以自由地左看、右看了。
2 directshow技术
directshow是建立在directdraw和directsound组件基础上的流媒体处理的开发包,他通过directdraw对显卡进行控制以显示视频,通过directsound对声卡进行控制以播放声音。
过滤器是directshow最基本的组成元件。过滤器是一个com组件,是完成directshow处理过程的基本单元。
过滤器主要分为以下几种类型:
(1) 源过滤器(source filter)
源过滤器引人数据到过滤器图表中,数据来源可以是文件、网络等。不同的源过滤器处理不同类型的数据源。 (2) 变换过滤器(transform filter)
变换过滤器的工作是获取输人流,处理数据,并生成输出流。变换过滤器对数据的处理包括编解码、格式转换、压缩解压缩等。
(3) 渲染过滤器(renderer filter)
渲染过滤器在过滤器图表里处于最后一级,他们接收数据并把数据提交给外设进行渲染。
在directshow里,一组过滤器称为一个过滤器图表(filter graph)。过滤器图表用来连接过滤器以控制媒体流,也可以将数据返回给应用程序,并搜索所支持的过滤器。过滤器有3种可能的状态:运行、停止和暂停。暂停是一种中间状态,停止状态到运行状态必定经过暂停状态。暂停可以理解为数据就绪状态,是为了快速切换到运行状态而设计的。在暂停状态下,数据线程是启动的,但被渲染过滤器阻塞了。通常情况下,过滤器图表中所有过滤器的状态是一致的。 3 系统设计
本系统采用客户端/服务器(c/s)结构。其中,客户端提供与用户交互的界面,实现点播功能;服务器端实现视频节目的存储管理,用户信息管理和用户点播请求的响应功能。
3.1 客户端概要设计
客户端主要采用c#技术编程实现友好的视频点播界面。此外,由于现有的视频播放器,如windows mediaplayer无法收看可控视野的视频节目,所以采用direct-show技术自行开发设计一个播放器。
3.2 服务器端概要设计
服务器端分为web服务器和视频服务器两个部分。他们可以在同一个机器上,也可分布在不同的机器上。随着应用规模的不断扩大,可以灵活的增加服务器来提高视频服务器的资源带宽。
服务器端的主要模块有:
身份验证模块 对用户的身份进行验证。
数据库管理模块 负责有关用户身份验证的查询和维护,播放管理模块对媒体流内容存储路径的查询和维护,完成从逻辑节目到文件物理存储的映射。
播放管理模块 负责点播服务的播放响虚功能。 4 系统实现中的关键技术
系统客户端播放器需要接收从服务器端传送过来的多路视频流,并将其分别解码、同步,然后合成播放。其中解码使用微软directshow现有的过滤器,同步和混合渲染都需要重写directshow中的vmr(video mixing renderer)组件来实现。vmr,即视频混合渲染器,也是dj-rectshow的一个渲染过滤器,可以同时呈现多路视频流,最多支持16路输入流的α混合。
4.1 vmr简介
vmr位于视频流最后的筛选器图形中。根据具体的配置不同,由2~5个独立功能的组件构成(不包括输入引脚)。vmr包括混合器(mixer)、图像合成器(composi-tor)、分配演示器(allocator presenter)、核心同步控制器(core synchronization unit)和窗口管理器(window man-ager),其结构如图1所示。
当有多路输入流时vmr将加载该com对象。混合器负责收集每路输入流的信息,并将他们进行z排序;混合器还决定什么时候每个输入引脚接受输入样本,同时,还要在恰当的时间通知图像合成器执行实际的混合;混合器也计算每个输出图像的时间戳;当应用程序提供一幅位图用于显示在合成后的图像的最上层时,即使输入流的z顺序发生了改变,混合器也必须保证位图处于最上面。
(2) 图像合成器
该com对象执行实际的混合,将多路输入流合成到一个单一的directdraw表面,directdraw表面由分配演示
1 引 言
视频点播(video on demand,vod)是利用视频服务器存储的视频节目和其他多媒体信息,通过传输网络和用户前端设备(如机顶盒)向用户提供交互式的视频服务。用户能够通过计算机或相应的用户前端设备,对服务器提供的视频节目进行编辑与处理,如暂停、快/慢进、搜索等等。vod还可以实现上网、家庭购物、旅游指南、订票预约、股票交易等其他功能。
但是,目前的视频点播功能具有一定的局限性。播放的节目都是由电视台决定的,尤其是在比赛的转播中,电视台播放哪些画面、镜头,观众只能被动地接受,无法选择。而可控视野的视频点播是利用摄像机组将现场各方位的画面都拍摄下来,然后利用视频融合技术进行处理,供用户进行点播。这样,用户就可以自由地左看、右看了。
2 directshow技术
directshow是建立在directdraw和directsound组件基础上的流媒体处理的开发包,他通过directdraw对显卡进行控制以显示视频,通过directsound对声卡进行控制以播放声音。
过滤器是directshow最基本的组成元件。过滤器是一个com组件,是完成directshow处理过程的基本单元。
过滤器主要分为以下几种类型:
(1) 源过滤器(source filter)
源过滤器引人数据到过滤器图表中,数据来源可以是文件、网络等。不同的源过滤器处理不同类型的数据源。 (2) 变换过滤器(transform filter)
变换过滤器的工作是获取输人流,处理数据,并生成输出流。变换过滤器对数据的处理包括编解码、格式转换、压缩解压缩等。
(3) 渲染过滤器(renderer filter)
渲染过滤器在过滤器图表里处于最后一级,他们接收数据并把数据提交给外设进行渲染。
在directshow里,一组过滤器称为一个过滤器图表(filter graph)。过滤器图表用来连接过滤器以控制媒体流,也可以将数据返回给应用程序,并搜索所支持的过滤器。过滤器有3种可能的状态:运行、停止和暂停。暂停是一种中间状态,停止状态到运行状态必定经过暂停状态。暂停可以理解为数据就绪状态,是为了快速切换到运行状态而设计的。在暂停状态下,数据线程是启动的,但被渲染过滤器阻塞了。通常情况下,过滤器图表中所有过滤器的状态是一致的。 3 系统设计
本系统采用客户端/服务器(c/s)结构。其中,客户端提供与用户交互的界面,实现点播功能;服务器端实现视频节目的存储管理,用户信息管理和用户点播请求的响应功能。
3.1 客户端概要设计
客户端主要采用c#技术编程实现友好的视频点播界面。此外,由于现有的视频播放器,如windows mediaplayer无法收看可控视野的视频节目,所以采用direct-show技术自行开发设计一个播放器。
3.2 服务器端概要设计
服务器端分为web服务器和视频服务器两个部分。他们可以在同一个机器上,也可分布在不同的机器上。随着应用规模的不断扩大,可以灵活的增加服务器来提高视频服务器的资源带宽。
服务器端的主要模块有:
身份验证模块 对用户的身份进行验证。
数据库管理模块 负责有关用户身份验证的查询和维护,播放管理模块对媒体流内容存储路径的查询和维护,完成从逻辑节目到文件物理存储的映射。
播放管理模块 负责点播服务的播放响虚功能。 4 系统实现中的关键技术
系统客户端播放器需要接收从服务器端传送过来的多路视频流,并将其分别解码、同步,然后合成播放。其中解码使用微软directshow现有的过滤器,同步和混合渲染都需要重写directshow中的vmr(video mixing renderer)组件来实现。vmr,即视频混合渲染器,也是dj-rectshow的一个渲染过滤器,可以同时呈现多路视频流,最多支持16路输入流的α混合。
4.1 vmr简介
vmr位于视频流最后的筛选器图形中。根据具体的配置不同,由2~5个独立功能的组件构成(不包括输入引脚)。vmr包括混合器(mixer)、图像合成器(composi-tor)、分配演示器(allocator presenter)、核心同步控制器(core synchronization unit)和窗口管理器(window man-ager),其结构如图1所示。
当有多路输入流时vmr将加载该com对象。混合器负责收集每路输入流的信息,并将他们进行z排序;混合器还决定什么时候每个输入引脚接受输入样本,同时,还要在恰当的时间通知图像合成器执行实际的混合;混合器也计算每个输出图像的时间戳;当应用程序提供一幅位图用于显示在合成后的图像的最上层时,即使输入流的z顺序发生了改变,混合器也必须保证位图处于最上面。
(2) 图像合成器
该com对象执行实际的混合,将多路输入流合成到一个单一的directdraw表面,directdraw表面由分配演示
上一篇:SIM卡读卡器的研究与设计