基于DirectShow的媒体播放器设计0
- 格式:ppt
- 大小:2.03 MB
- 文档页数:28
c#中用DirectShow实现媒体播放器的核心(1) DirectShow简介用.net做多媒体开发的似乎不多,所以网上资源也少,看的人更少。
不过我的博客上居然还有几位在等新文章的人,有点出乎我的意料了。
目前我已不再从事多媒体相关的工作,加入新公司至今都忙到吐血,再加上害怕水平不够误人子弟,所以一直都没有更新这个系列。
但是之前有承诺过得着空就一定要更新,现在总算稍微空了那么一点点,继续烂着这个坑的理由就没有了。
DirectShow是微软平台上处理多媒体相关事务的一个平台,本身是基于COM技术上的框架,所以可以和.net配合的非常好。
在这套框架里,多媒体相关事务被分成一个一个的子任务,每个任务都放在一些名为Filter的COM组件里。
如果你只是做一些简单的工作,那么微软自带的那些filter估计已经够用了;但是如果你还有更高级的任务要完成,那么写filter估计就不可避免了。
在陷入到细节的泥潭之前,我们先给DirectShow拍个快照以便有一个整体的印象。
一开始火星人用竹竿捅下地球人的探测器后,在里面发现了一张光盘,火星人的计算机水平都巨高无比,他们在硬盘上用小刀刻一个操作系统只需要三分钟(相信我,还是破解版的),他们很想看看光盘里的内容,因为火星人是如此的土,以至于饭岛爱去世的新闻都不知道,还都在等她的无码片。
现在他们有操作系统了,他们也有光驱,他们什么都有,可是他们没有播放器。
火星人上有个广电不急,时刻准备把那一小撮不明真相的不看电视的群众消灭干净。
火星人只看电视。
可是在饭岛爱面前,广电不急一败涂地,火星人打算用他们的智慧开发出一款播放器,来观看精彩的饭岛爱无码片,他们不怕死。
很快他们就画出了草图:后来火星人发现把所有的功能都放到一个盒子里不好。
虽然没有老板检测他们的代码,逼他们加班重写,扣他们工资,但他们都是计算机水平巨高无比的生物,他们甚至知道27种设计模式,他们忍受不了如此丑陋的代码。
基于DirectFB的流媒体播放终端的研究与设计的开题报告一、研究背景随着互联网技术的快速发展,流媒体技术在网络视频领域的应用越来越广泛。
流媒体技术能够将音视频数据按照一定的压缩格式进行编码,并通过网络以流的方式进行传输,具有节省带宽、实时性强等优点。
现在许多应用软件都借助流媒体技术实现音视频播放和视频会议等功能。
流媒体技术的发展也催生了相应的嵌入式设备,并成为了新一代家庭娱乐的标配产品。
然而,由于嵌入式设备资源有限,流媒体播放终端需要具有较好的性能和低功耗特性。
目前较流行的软件平台有Qt、GStreamer等,这些平台的效率较低,占用系统资源过多,难以满足嵌入式设备的要求。
DirectFB是一种轻量级的嵌入式图形平台,可以在Linux系统下运行,并提供了硬件加速和嵌入式设备特性的支持。
因此,利用DirectFB开发流媒体播放终端可以有效解决嵌入式设备资源不足的问题。
二、研究内容和目的本项目将基于DirectFB平台设计和实现一款流媒体播放终端,实现以下功能:1.支持常见的流媒体格式,如RTSP、RTP等协议以及H.264、MPEG-4等视频编码格式;2.支持网络视频流的接收和解码,同时支持硬件加速,提高播放效果;3.提供简单易用的用户界面,实现播放进度、音量控制等功能,并支持全屏播放模式;4.低功耗。
通过DirectFB平台的优秀设计,可以大幅降低系统资源占用率,实现低功耗稳定运行。
本项目的研究目的如下:1.掌握DirectFB平台的基本功能和使用方法,并深入了解DirectFB 在嵌入式设备上的应用;2.实现一款高效、稳定、低功耗的流媒体播放终端,提高视频播放效果,并满足嵌入式设备资源有限的要求;3.提高嵌入式设备开发的技能,增强自身的竞争力。
三、研究方法和进度安排1.研究方法(1)调研:首先对流媒体技术和DirectFB平台进行深入调研,了解技术的基本原理及应用场景。
(2)设计:根据调研结果,结合研究目的,设计流媒体播放终端的整体框架和模块设计。
基于DirectShow的可控视野视频点播系统的设计与实现王艺娜;王广生【摘要】随着网络和计算机技术的不断发展,视频点播的功能也不断完善,但仍然存在不足之处,不能满足观众个性化的需求.通过分析DirectShow的组成结构和工作原理,以及VMR的结构和渲染原理,介绍了利用VMR实现可控视野视频点播系统的方法.该系统可以让观众自己掌控收视的主动权,自由选择想看的电视画面.【期刊名称】《现代电子技术》【年(卷),期】2007(030)008【总页数】3页(P48-50)【关键词】视频点播;过滤器;DirectShow;VMR【作者】王艺娜;王广生【作者单位】北京工业大学,北京,100022;北京工业大学,北京,100022【正文语种】中文【中图分类】TP3111 引言视频点播(Video on Demand,VOD)是利用视频服务器存储的视频节目和其他多媒体信息,通过传输网络和用户前端设备(如机顶盒)向用户提供交互式的视频服务。
用户能够通过计算机或相应的用户前端设备,对服务器提供的视频节目进行编辑与处理,如暂停、快/慢进、搜索等等。
VOD还可以实现上网、家庭购物、旅游指南、订票预约、股票交易等其他功能。
但是,目前的视频点播功能具有一定的局限性。
播放的节目都是由电视台决定的,尤其是在比赛的转播中,电视台播放哪些画面、镜头,观众只能被动地接受,无法选择。
而可控视野的视频点播是利用摄像机组将现场各方位的画面都拍摄下来,然后利用视频融合技术进行处理,供用户进行点播。
这样,用户就可以自由地左看、右看了。
2 DirectShow技术DirectShow是建立在DirectDraw和DirectSound组件基础上的流媒体处理的开发包,他通过DirectDraw对显卡进行控制以显示视频,通过DirectSound对声卡进行控制以播放声音。
过滤器是DirectShow最基本的组成元件。
过滤器是一个COM组件,是完成DirectShow处理过程的基本单元。
基于DirectShow的音/视频传输系统设计与实现摘要:在IP网络基础之上,应用DirecShow这种流媒体处理开发包搭建框架,进行音/视频相关数据的回放、解码、网络传输、编码、采集的处理方案设计,最后实现时采用VC++编程软件进行操作。
基于DirecShow的音/视频传输系统为远距离视频监控、诊断故障、技术支援等计算机系统,给予利用音/视频开展实时沟通、交流的可能。
关键词:DirecShow;音/视频传输系统;设计;实现在远距离视频监控、诊断故障、技术支援等计算机系统之中,利用音/视频传输系统开展实时沟通、交流是其中较为关键的功能。
音/视频传输系统为关键设备或系统的维护修理、诊断故障给予远距离技术保障,同时为获得“实时”帮助的效果提供了较为关键的策略。
为实现现场、实时音/视频沟通、交流的功能,需要先保证音/视频相关数据得以有效的远距离传输,因为基于DirecShow的音/视频传输系统的基础在于IP网络,所以音/视频相关数据的传输也是利用卫星通信的TP网络,且在Windows这个平台之上得以实现。
一、基于DirecShow的音/视频传输系统方案设计1.选择DirecShow架构我们从程序开发应用的视角来说,利用卫星通信的TP网络,达到音/视频相关数据远距离传输必须从总体上考量数据的网络接收、数据采集、数据编/解码、数据回放与传输的方案,进而将数据传输的效率与质量有效提升,与此同时还应当尽量降低系统开发投入的成本与难度。
所以第一件要做的就是选择一个适宜的开发平台。
一般来说有以下三种开发平台可以选择:①直接利用Windows中API函数,这种平台虽然有着较大的灵活性,然而却具有开发难度高,需要较长开发时间的缺点。
②直接应用成熟的如NetMeeting等满足本系统需求的组件。
这种开发平台虽然没有多大的灵活性,却具有开发难度低,不需要过多的开发时间的优势。
③选择介于第一种与第二种开发平台之间的开发方式,结合拟开发的音/视频传输系统特点进行二次开发,这种开发平台难度与第一种开发方式相比较有很大程度的降低,却有着比第二种开发方式更大的灵活性。
DirectShow 应用程序应该至少连接库文件strmiids.lib 和quartz.lib。
前者定义了DirectShow 标准的CLSID 和IID,后者定义了导出函数AMGetErrorText(如果应用程序中没有使用到这个函数,也可以不连接这个库)。
如果程序里包含了头文件streams.h,则一般库文件还要连接strmbasd.lib、uuid.lib、winmm.lib。
DirectShow是由微软开发的处理多媒体文件的应用程序接口(API),基于COM(组件对象模型)框架。
如图所示,DirectShow主要由Filters和Filter Graph Manager组成。
其中Filters有好多种,Source Filters叫做源过滤器,主要作用是从多媒体文件(来自本地或者Internet等)引入源数据流。
Transform Filters 叫做传输过滤器,作用是对源数据流进行处理,如编解码(包括软解码和硬解码)、转换格式、解压缩等等。
Rendering Filters是渲染过滤器,它会在最后将处理完的数据流传送给相关硬件播放,如通过DirectDraw控制显卡显示图形,通过DirectSound控制声卡发出声音等等。
除此之外,DirectShow还包含其它很多过滤器,以后再详细了解。
图中Source Filters、Transform Filters、Rendering Filters组合在一起,称为过滤器图。
DirectShow就是由这些完成各自分工的Filters 前后串联在一起来完成工作。
Filter Graph Manager称为“过滤器图管理对象”,主要作用是协调不同的Filters,建立参考时钟供Filters使用,采用队列机制将DirectShow事件传递给应用程序等等。
图中每个过滤器,都包含有称为Pin(引脚)的私有对象,它们派生自IPin。
Pin分为两类:输入Pin和输出Pin。
基于DirectShow技术的媒体播放器作者:秦晓梅张艺博来源:《电脑知识与技术·学术交流》2008年第18期摘要:介绍了DirectShow技术的基本概念和Filter Graph及其组成,提出了一个基于DirectShow技术的媒体播放器的设计,并构建了过滤器图表,同时文中详细叙述了软件开发的实现框架。
本文以VC + + 6.0和DirectShow技术开发媒体播放器,并给出了关键代码的示例。
关键词:DirecShow;Filter;Filter Graph;媒体播放器中图分类号:TP37文献标识码:A文章编号:1009-3044(2008)18-2pppp-0cMedia Player Based on DirectShow TechnologyQIN Xiao-mei, ZHANG Yi-bo(Henan Economy and Trade Vocational College,Zhenzhou 450053,China)Abstract: This thesis mainly introduces the basic concept of DirectShow technology, and Filter Graph with its composition, the thesis suggests a media player based on DirectShow technology one, and designs filter graph. The realization frame of software development is discussed at the same time detailedly in the main body of this thesis. VC + + 6.0 and DirectShow technology is used in the course of programming. the key code of the program is also available.Key words:DirecShow;Filter;Filter Graph;Media Player1 引言DirectX软件开发包是微软公司提供的一套在Windows平台上开发高性能图形、声音、输入输出和网络游戏的编程接口,DirectShow是DirectX家族的成员之一,DirectShow可以实现高质量的音视频采集、编辑、编码、解码和播放。