常见多媒体开发框架对比分析(一)DirectShow

  DirectShow是资格最老的多媒体开发框架之一,20多年前就有了,非常经典,即便到了现在,在Windows多媒体领域仍然是不可替代的。虽然不开源,但有详细的说明文档和开发指南,微软的DirectShow SDK中附有大量的示例代码和基础类库,是很好的学习资源。如果你是多媒体开发领域的新手,不管你基于哪个平台开发,我都建议你学一学DirectShow,它可以告诉你多媒体框架究竟是个什么样子。

  DirectShow实践了经典的“管道和过滤器(Pipes and Filters)”设计模式,这是多媒体领域最重要的设计模式,有了它,就能把复杂的多媒体处理任务分解成一个个独立的小模块,解决起来就不那么复杂了。DirectShow中的很多概念、设计、处理方法都很有创新精神和参考价值,值得学习。后来的很多多媒体框架都从DirectShow中或多或少的吸取了营养。

  说了DirectShow的优点,但其实存在的问题同样很多。

  一是不开源,只能运行在Windows系统,微软的东西,这个就不多说了。

  二是组件化的开发和部署模式,这个是优点也是缺点。优点是支持跨多个应用的功能集成与复用,当然这主要是通过更底层的COM架构实现的;缺点是应用的发布和配置比较复杂,对运行环境依赖程度大。

  三是开发负担太重。其实COM这样的架构最适合的场景是操作系统DIY,如果应用程序不想扩展操作系统功能,也不想被其他应用程序调用,那COM对它来说完全就是负担。应用中的每个模块都要实现COM规定的接口(如组件注册、引用计数、接口查询等)和DirectShow规定的必须实现的功能(如格式注册、Pin的枚举和连接、内存管理等)。虽然DirectShow SDK已经提供了很多基础类库来实现这些例行功能,但仍然让人不胜其烦,难以把精力集中到应用程序自身的逻辑。

时间: 2024-08-24 01:09:53

常见多媒体开发框架对比分析(一)DirectShow的相关文章

近3年微软与谷歌的发展对比分析

     近3年微软与谷歌的发展对比分析   随着科技的快速发展,时代的不断进步,微软和谷歌凭借这不断的创新已然成为当今全球科技公司的领头羊.位列世界500强的微软是一个相当具有经济与科技实力的的公司,然而同样位列世界500强的谷歌凭借着家喻户晓的Google搜索成为了微软一个相当具有竞争力的科技大亨. 同为IT公司,微软和谷歌的比较如下: 一.发展历史 微软作为一个1975年成立的老牌公司,从一开始的为IBM提供文件系统和操作系统等软件,到现在业务中有各种操作系统编译器和解释器.网页浏览器等基

Android和Linux应用综合对比分析

公开发布的序言: 这篇文章是作于2012年7月12日,也就是自己刚从大学校园迈向工作岗位的时候遇到的第一个题目"请你针对我们公司目前的应用行业场景做一下调研:在终端做应用程序开发的平台是选择Linux好还是Android好"而写的. 在踏出校园之前,自己从来没有接触过安卓的开发领域(除了在2010年下半年买了一部分安卓的智能手机外).接到这个题目后,自己也没有退缩,硬着头皮接下来了,然后凭借自己在学校时候学的一点检索信息写学术论文的小功底,三天之内写下了这篇长达1万4千多字的调研报告,

前端开发框架对比

前端开发框架对比 本文选取了 Bootstrap.jQuery UI.jQuery Mobile.Sencha ExtJS.Sencha Touch.Sencha GXT.Dojo.Dojo Mobile.Mootools.Foundation.YUI.Kissy.QWrap 等 16 个国内外前端开发框架进行初步的横向比较,可以作为大家挑选前端开发框架的初步参考. 近几年随着 jQuery.Ext 以及 CSS3 的发展,以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野,可谓应

目前云存储平台的视频安全与视频加密技术对比分析

目前云存储平台的视频安全与视频加密技术对比分析 现在,说起视频加密技术,最常见的应用就是在在线教育这个领域,在线教育顾名思义,是以网络为介质的教学方式,通过网络,学员与教师即使相隔万里也可以开展教学活动:此外,借助网络课件,学员还可以随时随地进行学习,真正打破了时间和空间的限制,对于工作繁忙,学习时间不固定的职场人而言网络远程教育是最方便不过的学习方式. 下面有一个图表,对目前常见的云平台的视频安全及加密技术有个很好的分析,可以参考. 注: DRM是国际通用的版权保护加密方法,CCDRM3.0是

wait、notify、sleep、interrupt对比分析

对比分析Java中的各个线程相关的wait().notify().sleep().interrupt()方法 方法简述 Thread类 sleep:暂停当前正在执行的线程:(类方法) yield:暂停当前正在执行的线程,并执行其他线程:(类方法) join:等待该线程终止: interrupt:中断该线程,当线程调用wait(),sleep(),join()或I/O操作时,将收到InterruptedException或 ClosedByInterruptException: Object类 w

[]H5、React Native、Native应用对比分析

目录(?)[-] 一React Native的出现 二3款应用效果 三工程方案 四对比分析 开发方式 性能 体验 更新 维护 开发方式 性能 体验 更新 维护 五综合 开发方式 性能 体验 更新 维护 @王利华,vczero “存 在即合理”.凡是存在的,都是合乎规律的.任何新事物的产生总要的它的道理:任何新事物的发展总是有着取代旧事物的能力.React Native来的正是时候,一则是因为H5发展到一定程度的受限:二则是移动市场的迅速崛起强调团队快速响应和迭代:三则是用户的体验被放大,用户要求

javascript中call,apply,bind的用法对比分析

这篇文章主要给大家对比分析了javascript中call,apply,bind三个函数的用法,非常的详细,这里推荐给小伙伴们. 关于call,apply,bind这三个函数的用法,是学习javascript这门语言无法越过的知识点.下边我就来好好总结一下它们三者各自的用法,及常见的应用场景. 首先看call这个函数,可以理解成"借用“,"请求".想像一下如下的情景:你孤单一人漂泊在外,有急事想往家里打电话,可是很不巧,手机欠费了,或者没电了,或者掉坑里了,总之你的手机就是用

全能多媒体开发框架Vitamio

简介: Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播. 下面介绍一下简单的使用 1.拖入工程 2.引用:#import "Vitamio.h" 3.添加依赖的系统框架和系统库如下: - AVFoundation.framwork     音视频播放基本工具 - Aud

微软与谷歌盈利模式对比分析

微软与谷歌盈利模式对比分析 众所周知,微软是当今世界上最大的PC端软件供应商,现在随处可见的个人PC或者企业PC上普遍安装的Windows个人操作系统或者Windows server服务器操作系统就是微软的杰作.微软在2014年世界500强企业中排名第104位,是一个相当具有科技和经济实力的大公司.而谷歌也是微软一个相当具有竞争力的科技大亨,世界500强排名第162名,家喻户晓的Google搜索是它的杰作,被公认为世界最大的搜索引擎.他们俩都是IT行业的大公司,盈利模式有相同点也有不同点. 我们