DirectShow
文章平均质量分 90
benny5609
普通得不能再普通的80年代后
展开
-
深入浅出DirectShow Filter
1. Filter概述Filter是一个COM组件,由一个或多个Pin组成。Pin也是一个COM组件。Filter文件的扩展名为.ax,但也可以是.dll。Filter根据其包含Input pin或Output pin的情况(或在Filter Graph的位置),大致可分为三类:Source Filter(仅有Output pin)、Transform Filter(同时具有Input原创 2008-02-25 20:43:00 · 979 阅读 · 0 评论 -
使用DirectShow驱动摄像头
对于小摄像头的驱动有几种方法,通过使用DirectShow来驱动摄像头灵活性比较好,有简单的方法也有比较复杂但更有效的方法,本文只介绍简单方法,希望与大家交流! 用DirectShow来使用摄像头,一般要求摄像头的驱动是WDM格式的,当然,一些比较老的驱动格式DirectShow也可支持。DirectShow通过图形过滤管理器(Filter Graph Manager)来与上层应用程序和下原创 2008-04-27 03:50:00 · 1162 阅读 · 0 评论 -
如何查看自己程序中正在运行的Graph?
在帮助文档中可以找到两个有关这个问题的函数AddToRot和RemoveFromRot。具体函数抄录如下:HRESULT AddToRot(IUnknown *pUnkGraph, DWORD *pdwRegister) { IMoniker * pMoniker; IRunningObjectTable *pROT; if (FAILED(GetRunnin原创 2008-04-27 10:55:00 · 1810 阅读 · 0 评论 -
DirectShow开发快速入门之慨述
摘要:本篇文档概括性的介绍了DirectShow的主要组成部分,以及一些Directshow的基本概念。熟悉这些基本的知识对于Directshow的应用开发或者过滤器的开发者都会有所帮助。 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。那么,DirectShow能够做些什么呢?且看,DirectShow为多媒体流的捕捉和回原创 2008-04-27 11:12:00 · 1228 阅读 · 0 评论 -
重新压缩一个AVI文件
这里我们讲解怎样用DirectShow来压缩一个AVI文件。我们重点放到视频压缩,同样的方法可以应用到音频压缩。我们分以下几步来讲解:1、 选择一个压缩过滤器有许多种方法可以压缩视频或者音频,比如:a、 本地DirectShow过滤器b、 视频压缩管理编码器(VCM)c、 音频压缩管理编码器(ACM)d、 DirectX媒体对象(DMOs)在DirectShow中,VCM被AVI Compress原创 2008-04-27 12:14:00 · 1200 阅读 · 0 评论 -
directx的媒体对象
微软的directx媒体对象简称DMOs,是一种写流数据的新方法。由于某些原因,DMOs非常象微软的directshow过滤器。DMO处理数据是利用输入数据来产生输出数据的。DMO比部件API函数更加类似directshow。因此,DMO非常容易创建、测试和使用。DMO完全兼容directshow,但应用程序可以在没有directshow的情况下使用DMO。在directshow的应用程序里,原创 2008-04-27 09:49:00 · 1369 阅读 · 0 评论 -
一般筛选器表的生成
要创建一个筛选器表,您要从创建一个筛选器表管理器的实例开始,如下所示:IGraphBuilder* pIGB;HRESULT hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pIGB); 筛选器表管理器支持下列表生成方法:原创 2008-04-27 11:18:00 · 1293 阅读 · 0 评论 -
利用DirectShow实现对视频文件H264编码与解码基类
// Encode.h: interface for the CEncode class. ////////////////////////////////////////////////////////////////////// #if !defined(AFX_ENCODE_H__F6B1A672_0A17_4011_87DA_F97CA0B0E52E__INCLUDED_) #defi原创 2008-04-27 11:47:00 · 1915 阅读 · 0 评论 -
利用DirectShow实现对视频文件H264编码与解码基类 2
/**************编码Graph的创建*************/ HRESULT hr = E_FAIL; hr = _CreateFilterGraph(&m_nDecode.pGraph, &m_nDecode.pBuilder); if(FAILED(hr)) { AfxMessageBox("Uninitialize COM Library!");原创 2008-04-27 11:48:00 · 2215 阅读 · 0 评论 -
利用DirectShow实现对视频文件H264编码与解码基类 3
bool CEncode::_HasDecodeFilter(CString strFileName) { IGraphBuilder * pGraph = NULL; IBaseFilter * pSrc = NULL; HRESULT hr = E_FAIL; bool bHas = false; hr = CoCreateInstance(CLSID_FilterGraph, NULL, C原创 2008-04-27 11:49:00 · 1776 阅读 · 1 评论 -
DirectShow 媒体文件回放总结
作者:Inkick1.概述DirectShow中媒体文件回放的过程也就是一个为媒体文件选择相应所需的Filter、构建Filter Graph、并对Filter Graph的状态进行维持、控制的过程。这里所说的媒体文件,不仅仅是指音频、视频文件,同时也包括bmp、jpeg、gif等图形图像格式以及midi等数字化音乐序列。因此,使用DirectShow进行媒体文件的回放需要经过以下的步原创 2008-04-27 10:33:00 · 5528 阅读 · 2 评论 -
IImage和链接错误
//========================================================================//TITLE:// IImage和链接错误//AUTHOR:// norains//DATE:// Tuesday 14-August-2007//Environment:// EVC4.0 + Windows CE原创 2008-05-13 17:09:00 · 1085 阅读 · 0 评论 -
IImage的图片显示
//========================================================================//TITLE:// 详聊IImage的图片显示//AUTHOR:// norains//DATE:// Sunday 26-August-2007//Environment:// EVC4.0 + Windows CE原创 2008-05-15 13:29:00 · 1066 阅读 · 0 评论 -
【PNG overview】PNG专题!
这段时间因为工作原因开始接触PNG,遇到问题的时候,在网上搜索资料总是零零碎碎,而且有很多的说法根没就是人云亦云,信手拈来,根本没有经过详细的认证是否正确,这样的例子很多。我这里搜集了一些资料,希望不要犯下相同的错误,程序部除了说明出处的以外都是自己写的,希望对大家有点帮助。(索取代码信箱icebug@126.com ,代码公布网址 http://www.dingge.com/forum/ )原创 2008-05-15 14:04:00 · 3902 阅读 · 0 评论 -
CMedia更新至v1.4.3
//========================================================================//TITLE:// CMedia更新至v1.4.3//AUTHOR:// norains//DATE:// Friday 27-July-2007//Environment:// EVC4.0 + Windows C原创 2008-05-14 17:21:00 · 1336 阅读 · 0 评论 -
用GAPI开发Windows Mobile手机游戏
目前mobile phone 游戏API简称GAPI为手机上的游戏开发者提供了强有力的高效率的编程接口,当然GAPI不仅仅使用在游戏方面,需要高效率图形显示处理的地方都可以使用GAPI。 GAPI是基于动态连接库方式,应用程序直接调用动态库里的函数,一般GAPI库的文件名为GX.dll,目前mobile phone里都提供了gx.dll文件。 一个典型的游戏或者应用程序使用下列GAPI函数:O原创 2008-05-22 09:48:00 · 1171 阅读 · 0 评论 -
GAPI 时代
John KennedyMicrosoft Corporation 2001年11月14日 查看本文的源代码(英文)我是一个超级游戏编程迷。我想,这是因为我花了那么多时间来为我拥有过的几乎所有计算机平台编写游戏。别误会,我可不是专业的游戏程序员,我只是发现,这种消遣是彻底了解硬件的绝佳方式。处理桌面 Microsoft Windows® 系统游戏时,程序员们通常会使用 Direct原创 2008-05-22 10:36:00 · 3245 阅读 · 0 评论 -
DirectShow非线性编辑DES剖析
DES (DirectShow Editing Services),是一套基于DirectShow核心框架的编程接口。DES的出现,简化了视频编辑任务,弥补了DirectShow对于媒体文件非线性编辑支持的先天性不足。但是,就技术本身而言,DES并没有超越DirectShow Filter架构,而只是DirectShow Filter的一种增强应用。我们可以从下图中了解到DES在我们整个多媒体处理原创 2008-04-27 03:46:00 · 1370 阅读 · 0 评论 -
视频压缩技术的系统考虑
摘要:编解码技术在过去十年中不断改进。最新的编解码技术(H.264/AVC与VC-1)代表着第三代视频压缩技术。为具体应用选择正确的编解码 器并优化其实时实施仍然是一项巨大的挑战,最佳的设计必须权衡压缩效率及可用的计算能力。本文探讨了压缩能力与复杂性之间的权衡,并讨论市场中可能会影响 主流视频编解码器未来的实时实施与主要趋势。1.前言 数字视频产品需求近些年出现猛增。主流应用包括视频原创 2008-03-03 18:26:00 · 1186 阅读 · 0 评论 -
DirectShow系统初级指南
流媒体的处理,以其复杂性和技术性,一向广受工业界的关注。特别伴随着因特网的普及,流媒体在网络上的广泛应用,怎样使流媒体的处理变得简单而富有成效逐渐成为了焦点问题。选择一种合适的应用方案,事半功倍。此时,微软的DirectShow,给了我们一个不错的选择。 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。目前,DirectX最新原创 2008-02-25 20:36:00 · 729 阅读 · 0 评论 -
DirectShow对硬件的支持原理
大家知道,为了提高系统的稳定性,Windows操作系统对硬件操作进行了隔离;应用程序一般不能直接访问硬件。DirectShow Filter工作在用户模式(User mode,操作系统特权级别为Ring 3),而硬件工作在内核模式(Kernel mode,操作系统特权级别为Ring 0),那么它们之间怎么协同工作呢?DirectShow解决的方法是,为这些硬件设计包装Filter;这种Filte原创 2008-02-25 20:45:00 · 1099 阅读 · 0 评论 -
用DirectShow实现视频采集
DirectShow作为DirectX的一个子集,它为用户提供了强大、方便的多媒体开接口,并且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序。这里结合实践中运用DirectShow实现视频采集(WIN32) 来加深对DirectShow的理解和操作能力。1.系统环境及开发环境a.系统支持DirectX(Win 2K以上系统)b.VC++ 6.0安装有DirectX原创 2008-02-25 20:45:00 · 1505 阅读 · 0 评论 -
DirectShow入门之模拟构建Graph
摘要:本篇文档主要讲述如何使用GraphEdit来模拟构建graph图,测试你的filter。 GraphEdit概述 GraphEdit是一个很有用的工具,可以用来构建graph图。通过GraphEdit,你可以在开发代码之前进行一下体验,你也可以装载一个你的应用程序创建的Graph文件。如果你想开发一个自己的filter,GraphEdit 给你提供了一个快速测试的方法:将你的filte原创 2008-02-25 20:48:00 · 1387 阅读 · 0 评论 -
GraphEdit使用
GraphEdit 是一个用于建立和测试Filter graph 的可视化工具。在DirectX SDK.中附带一个可执行程序版本(在SDK目录中的Bin/DXUtils/graphedt.exe)。你可以快速测试你建立的Filter graph是否达到预期的效果,你也可以查看由另一个程序建立的Filter graph。GraphEdit有标准的Windows用户界面,如图: 查看到系统中安装的F原创 2008-02-25 20:50:00 · 2056 阅读 · 0 评论 -
利用DirectShow开发自己的Filter
学习directshow已经有几天了,下面将自己的学习心得写下来,希望对其他的人有帮助。 Filter实质是个COM组件,所以学习开发Filter之前你应该对com的知识有点了解。Com组件的实质是一个实现了纯虚指针接口的C++对象。关于com的东西,这里不多讲。 一 给vc配置DirectShow的开发环境 无论开发Filter还是开发Dshow的应用程序都要配置一下开发环境的,其实就是包原创 2008-02-26 09:48:00 · 1335 阅读 · 1 评论 -
CBasePin类、CBaseOutputPin类和CBaseInputPin类源代码解析(1)(转贴)
DirectShow 学习(二):CBasePin类、CBaseOutputPin类和CBaseInputPin类源代码解析1. IPin接口IPin : public IUnknown{ public: // 连接两个Pin,主动连接InputPin virtual HRESULT STDMETHODCALLTYPE Connect(原创 2008-03-03 11:08:00 · 1187 阅读 · 0 评论 -
CBasePin类、CBaseOutputPin类和CBaseInputPin类源代码解析(2)(转贴)
4. CBaseOutputPin 类[amfilter.h/amfilter.cpp] o CBaseOutputPin具体实现伪代码派生自 CBasePin变量部分(均初始化为NULL):IMemAllocator *m_pAllocator; // Memory allocatorIMemInputPin *m_pInputPin; // interface o原创 2008-03-03 11:08:00 · 1418 阅读 · 0 评论 -
音视频编码技术与格式大全
一、常见视频格式中采用的技术 当PC开始拥有FPU(浮点处理器)后,PC如何处理多媒体信息的问题也被摆上台面。无数专家开始为音频视频编码技术运用在PC上开始忙碌了,视频技术也因此得到了飞快的进步。 1、无声时代的FLC FLC、FLI是Autodesk开发的一种视频格式,仅仅支持256色,但支持色彩抖动技术,因此在很多情况下很真彩视频区别不是很大,不支持音频信号,现在看来这种格式已经毫原创 2008-03-03 14:21:00 · 1178 阅读 · 0 评论 -
avi的压缩
这里我们讲解怎样用DirectShow来压缩一个AVI文件。我们重点放到视频压缩,同样的方法可以应用到音频压缩。 我们分以下几步来讲解: 1、 选择一个压缩过滤器 有许多种方法可以压缩视频或者音频,比如: a、 本地DirectShow过滤器 b、 视频压缩管理编码器(VCM) c、 音频压缩管理编码器(ACM) d、 DirectX媒体对象(DMOs) 在DirectShow中,VCM被AVI原创 2008-03-03 19:03:00 · 3901 阅读 · 0 评论 -
浅析DirectShow音视频同步解决方案
多媒体处理,不可避免地要解决音视频的同步问题。DirectShow是怎么来实现的呢?我们一起来学习一下。 大家知道,DirectShow结构最核心的部分是Filter Graph Manager:向下控制Graph中的所有Filter,向上对应用程序提供编程接口。其中,Filter Graph Manager实现的很重要一个功能,就是同步音视频的处理。简单地说,就是选一个公共的参考时钟,并且要原创 2008-03-03 11:10:00 · 1315 阅读 · 1 评论 -
Multimedia Streaming Synchronization Mechanisms Under DirectShow
http://www.codeproject.com/KB/directx/rendering.aspx IntroductionThis article discusses synchronization mechanisms under DirectShow (part of the DirectX Media SDK) in order to play a video stre原创 2008-03-03 11:19:00 · 2150 阅读 · 0 评论 -
directsound
目录: 关于DirectSound DirectSound设备 枚举可以使用的声音设备 创造DirectSound对象 设置合作级 检索硬件信息 扬声器的设置 压缩 DirectSound缓冲 静态缓冲和流缓冲 创建辅助缓冲 缓冲控制选项 主缓冲的存取 播放声音 重放(PLAYBACK)的控制 播放进度和可以被写的原创 2008-03-03 11:50:00 · 885 阅读 · 0 评论 -
理解音视频同步-时间戳
媒体内容在播放时,最令人头痛的就是音视频不同步。从技术上来说,解决音视频同步问题的最佳方案就是时间戳:首先选择一个参考时钟(要求参考时钟上的时间是线性递增的);生成数据流时依据参考时钟上的时间给每个数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据块上的时间戳,同时参考当前参考时钟上的时间来安排播放(如果数据块的开始时间大于当前参考时钟上的时间,则不急于播放该数据块,直到参考时钟原创 2008-03-03 13:29:00 · 1825 阅读 · 1 评论 -
利用Directshow开发传输filter
摘要:本篇文档主要讲述了利用Directshow开发传输filter 时应该注意的一些事情。 在开发自己的filter之前,看看DMO(DirectX Media Object)是否满足你的要求,因为DMO可以做许多和filter相同的工作,但是开发DMO比开发filter要简单多了。开发transform filter主要有下面的几个步骤,努力的遵循吧第一步选择一个基类下面的基类适合开发tr原创 2008-03-03 17:41:00 · 1040 阅读 · 0 评论 -
如何配置DirectShow Filter组件开发环境
1、编译基类源代码,生成静态库,如果使用UNICODE编码开发,分布使用Debug_Unicode和Release_Unicode生成strmbasd.lib和STRMBASE.lib。2、在Studio中配置头文件和LIB库路径:头文件路径:xxx/Microsoft DirectX 9.0 SDK (October 2004)/Includexxx//Microsoft Platform SD原创 2008-03-03 17:47:00 · 1545 阅读 · 1 评论 -
Game API入门
虽然Pocket PC平台上的游戏开发者不能使用DirectDraw,实在的好消息是微软创建了一个新的游戏API来支持Pocket PC,名叫“GAPI”——游戏应用程序编程接口。它不但允许直接访问显示内存,还能访问Pocket PC硬件键。你需要什么· GAPI SDK,运行时DLL和一个EVT的查找CD秒数的例子,目录在PocketPCSDK/P原创 2008-05-22 10:57:00 · 1760 阅读 · 0 评论