Directshow
文章平均质量分 86
I_Have_123456
这个作者很懒,什么都没留下…
展开
-
创建一个filter实例(transform filter)
1、选择所要创建的filter的用途,据此来选择基类。基类可以从CTransformFilter、CTransInPlaceFilter、CVideoTransformFilter和CBaseFilter中来选取。(1) CTransInPlaceFilter提供了本地处理Sample的机制(Sample可以认为是存储一个视频帧的结构),当一个trans-in-place filter收到一个转载 2011-12-21 14:44:38 · 666 阅读 · 0 评论 -
深入浅出DirectShow Filter(一)
深入浅出DirectShow Filter (2005-11-08 17:46:22)转载▼ 分类: 多媒体/流媒体By 陆其明From http://hqtech.nease.net 1. Filter概述Filter是一个COM组件,由一个或多个Pin组成。Pin也是一个COM组件。Filter文件的扩展名为.转载 2011-12-12 14:56:09 · 3458 阅读 · 0 评论 -
DirectShow的窗口
DirectShow提供两种窗口模式:Windowed Mode 和 Windowless Mode。Windowed Mode:DS创建一个属于自己的窗口,在自己创建的窗口上显示视频。通过IVideoWindow接口来管理这个窗口,适用于Video Renderer filter。Windowless Mode:DS不提供自己创建的窗口,而是要应用程序提供窗口,用户可以将视频显示在自己指转载 2011-12-28 15:30:46 · 704 阅读 · 0 评论 -
DirectShow基础编程 源Filter CSource CSourceStream
DirectShow是微软定义的一套接口集合,由不同的接口组成,例 如:IBaseFilter,IPin。这些接口之间的关系形成了DirectShow的架构。DirectX SDK提供了一个C++的BaseClasses,是这些接口的实现。这些实现已经很成熟完善,因此我们不需要重新开发一套类库去实现DirctShow 的接口,直接使用就可以。DirectShow编程就是Filter转载 2011-12-28 15:36:10 · 1018 阅读 · 0 评论 -
DirectShow抓拍图片
“源于DirectShow自带的例子StillCap”DirectShow抓拍图片需要用到两个接口:ISampleGrabberCB和ISampleGrabber。"CB"的意思就是 Callback,顾名思义,ISampleGrabberCB接口为ISampleGrabber接口提供回调,其中ISampleGrabberCB 接口的两个方法就是两中回调函数。实现抓拍,根据以下步骤:转载 2011-12-28 15:33:42 · 2253 阅读 · 0 评论 -
Filter概述
1. Filter概述Filter是一 个COM组件,由一个或多个Pin组成。Pin也是一个COM组件。Filter文件的扩展名为.ax,但也可以是.dll。Filter根据其包含 Input pin或Output pin的情况(或在Filter Graph的位置),大致可分为三类:Source Filter(仅有Output pin)、Transform Filter(同时具有Inpu转载 2011-12-28 15:24:40 · 562 阅读 · 0 评论 -
DirectShow 简单了解通知事件
DirectShow中,Filter会向Filter Graph Manager发送通知事件,Filter Graph Manager会处理一些事件,也会将一些事件发送给应用程序来处理。最常见的三个事件:EC_COMPLETE:当播放正常结束时的通知事件EC_USERABORT:用户中断播放,例如用户关闭窗口导致播放中断EC_ERRORABORT:播放发生的错误而停止下来Filte转载 2011-12-28 15:32:43 · 1171 阅读 · 0 评论 -
一个最简单的源Filter的编写步骤
1.创建一个空的Dll工程,添加5个空文件分别名为:MyOutputPin.h、 MySourceFilter.h、MyOutputPin.cpp、MySourceFilter.cpp和MySourceFilter.def。2.声明两个类,一个是Filter的实现类,一个是输出Pin的实现类,由于是最简单的源Filter,因此Filter只有一个输出Pin。实 现的功能是从本地磁盘读取三个图片转载 2011-12-28 15:37:58 · 1776 阅读 · 0 评论 -
创建ffdshow Audio Decoder失败的原因
无法成功创建的ffdshow.ax,文件版本1.0.3.1371,大小是2,273,280字节,无壳。 如果使用Graphedt可以成功创建ffdshow Audio Decoder,对Pin进行Render也会自动添加此Filter。但是如果是在自己程序里面,无论是什么方法都不能创建出ffdshow Audio Decoder。 搜遍网络,只在某英文网站发现一帖说ffdshow Audi转载 2012-01-06 13:37:26 · 1873 阅读 · 1 评论 -
Directshow中实现快进快退
用Media Player就能看到效果,不过我发现使用SetTimeFormat(),GetCurrentPosition(),SetPositions()方式好象全部成功,不解转载 2012-01-10 10:47:15 · 1559 阅读 · 1 评论 -
'nasmw'不是内部或外部命令,也不是可运行程序
'nasmw' 不是内部或外部命令,也不是可运行的程序在编译大多数编解码程序源代码的时候,都需要用到汇编器,这里我编译ffdshow程序:1:虽然在ffdshow的trunk目录下提供了VC6,VC7,VC8的工程打开文件,但是用VC6打开编译会提示缺少一些文件,所以还是用VC8(VC2005)打开;2:编译是提示:'nasmw' 不是内部或外部命令,也不是可运行的程序。这是因转载 2013-04-28 10:48:13 · 1553 阅读 · 0 评论 -
最近写DirectShow filter的一点经验【by : mem (Memory for ever)】
最近写DirectShow filter的一点经验【by : mem (Memory for ever)】发信人: mem (Memory for ever), 信区: VideoCoding标 题: 最近写DirectShow filter的一点经验 发信站: BBS 水木清华站 (Thu Dec 23 00:50:02 2004), 站内 最近需要做个DirectSho转载 2013-04-27 16:42:22 · 1082 阅读 · 0 评论 -
DirectShow一些流程
DirectShow一些流程以dsnetwork为例,Directshow协商过程:1.BuildGraph维护着链表,有各个filter的链接信息.首先对输入filter和输入filter1. ConnectFilter中协商类型: 我们实现的ConnectFilter方法: 1). 枚举输入pin的每个媒体类型: EnumPins由basefilte转载 2013-04-27 16:12:58 · 1279 阅读 · 0 评论 -
streams.h和streams.lib 问题+DirectShow SDK问题
streams.h和streams.lib 问题+DirectShow SDK问题最近 要搞什么视频聊天,需要DirectShow SDK..AVchat 有个这样的实例,跑起来说需要streams.h和streams.lib。 DirectShow SDK 可以到这里下载http://www.microsoft.com/downloads/details转载 2011-12-31 11:28:16 · 4893 阅读 · 0 评论 -
DirectShow 文件格式与压缩格式
[DirectShow] 文件格式与压缩格式 DirectShow是一个开放架构,只要Filter能够分析和解码的格式都能支持,MSDN中给出了 一个小结。支持的文件格式:Windows Media Audio (WMA)*Windows Media Video (WMV)*Advanced Systems Format (ASF)*Motion P转载 2011-12-31 11:25:44 · 880 阅读 · 0 评论 -
关于directshow的开发常见问题
关于directshow的开发常见问题一、配置方法1、先编译Samples/C++/DirectShow/BaseClasses中的工程文件。注意工程的默认选项是Debug_Unicode的,在非Unicode的工程中使用还需要编译Debug版本的。“DXSDK90/SAMPLES/C++/DIRECTSHOW/BASECLASSES/baseclass转载 2012-01-16 09:35:48 · 1850 阅读 · 0 评论 -
编译FilterTitleOverlay和SimplePlayer时碰到的问题
编译FilterTitleOverlay和SimplePlayer时碰到的问题用VS.NET 2003编译《DirectShow实务精选》中的FilterTitleOverlay例子,碰到以下问题:1.C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/atlmfc/include/atlcomcli转载 2012-01-16 09:37:08 · 953 阅读 · 0 评论 -
如何给filter添加接口
如何给filter添加接口 给一个filter添加接口,步骤如下:1、建立一个声明接口的头文件“Interface.h” ,内容包括指定接口的GUID(使用GuidGen.exe)以及接口函数的声明。 记得加 initguid.h 的include,不然使用时会出现"无法解析的外部符号_IID_"错误2、在Cfilter类的头文件filter.h开头添转载 2012-01-16 09:31:31 · 1047 阅读 · 0 评论 -
使用CBaseFilter, CBaseInputPin和CBaseOutputPin写一个简单的Filter
使用CBaseFilter, CBaseInputPin和CBaseOutputPin写一个简单的Filter 收藏类定义: view plain copy to clipboard print ?//=========================================================================转载 2011-12-28 15:12:47 · 1214 阅读 · 0 评论 -
DirectShow中FilterGraph及其组成
DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。那么,DirectShow能够做些什么呢?且看,DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,包括Asf、Mpeg、A转载 2011-12-27 22:18:21 · 4722 阅读 · 1 评论 -
DirectShow介绍
DirectShow介绍1. DirectShow介绍DirectShow是一个windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括ASF、MPEG、AVI、MP3和WAV文件,同时支持使用WDM驱动或早期的VFW驱动来进行多媒体流的采集。DirectShow整合了其它的DirectX技术,能自动地侦测并使用可利用的音视频硬件加速,也能转载 2011-12-10 17:23:06 · 540 阅读 · 0 评论 -
DirectShow中写push模式的source filter流程
DirectShow中写push模式的source filter流程虽然网上已有很多关于DirectShow写source filter的资料,不过很多刚开始学的朋友总说讲的不是很清楚(可能其中作者省略了许多他认为简单的过程),读者总希望看到象第一步怎么做,第二步怎么做....这样的demo。其实写你的第一个filter是有一定难度的,只要过了这关以后就转载 2011-12-10 18:28:24 · 686 阅读 · 0 评论 -
VS 2005下DirectShow开发环境的配置
VS 2005下DirectShow开发环境的配置[1] 请确保您的机子上已经安装了VS 2005和DirectX 9.0b SDK。DX9.0 SDK的下载地址就不写了,自己在网上找吧!(我的DX9.0安装在D盘根目录下)[2] 首先编译SamplesC++DirectShowBaseClasses目录下的baseclasses.sln以得到两个库文件(s转载 2011-12-12 11:26:37 · 1142 阅读 · 0 评论 -
Directshow完整介绍
最近一段时间,在编写DirectShow应用程序时常常遇到一些问题,原因是对DirectShow技术没有较全面地掌握,对各个接口间的关系以及filter与filter之间连接的内部过程等都只是一知半解,除了再仔细地看看DirectShow的基类库源文件之外,觉得也很有必要从头到尾看一遍DirectShow的MSDN文档。在看时顺便有选择地翻译出来,一来以便以后再看时可以轻松点,二来也敦促自己不能不转载 2011-12-12 15:08:48 · 13988 阅读 · 2 评论 -
GraphEdit最大化后不能还原的解决办法
启动任务管理器,然后让GraphEdit最大化,拖动GraphEdit然后调整窗口的大小即可。原创 2011-12-16 09:36:44 · 758 阅读 · 0 评论 -
对"对DllRegisterServer的调用失败,错误代码为0x8007005"的解决办法
对"对DllRegisterServer的调用失败,错误代码为0x8007005"的解决办法主要是没有管理员权限。以管理员身份登录以后就可以注册了。计算机->管理->本地用户和组->用户,Administrator属性中“账户禁用”去掉,这时候可能会遇到密码不符合安全策略。打开控制面板,将查看方式改为“大图标”,打开“管理工具”,双击“本地安全策略”,双击“账户策略”,双击原创 2011-12-13 14:48:01 · 9976 阅读 · 0 评论 -
Filter
什么是滤镜?什么是HDTV中已经描述了HDTV的几个要素,相应地,要播放HDTV,就首先要正确地解开封装,然后进行视频音频解码。所以我们需要分离器,视频解码器和音频解码器,俗称hdtv的“三件套”,又统称滤镜。一、分离器:要正确地播放多媒体文件,首先是正确地调用分离器,把视频轨和音频轨分离出来。分离器相应分为三大类。1、MPEG2 TS分离器:月光(全称Moonlight-转载 2011-12-13 17:01:22 · 833 阅读 · 0 评论 -
无法定位输入点libvlc_exception_init到动态链接库libvlc.dll
如果是开源库,说明是dll版本不对造成的。如果不是开源的,就要自己好好查查了。原创 2011-12-14 16:42:06 · 3502 阅读 · 4 评论 -
浅析DirectShow音视频同步解决方案
首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区更多登录 | 注册浅析DirectShow音视频同步解决方案 多媒体处理,不可避免地要解决音视频的同步问题。DirectShow是怎么来实现的呢?我们一起来学习一下。 大家知道,D转载 2011-12-10 16:41:21 · 795 阅读 · 0 评论 -
GraphEdit 构建播放链路的注意事项
1、在win7系统下,安装完美解码,完美解码要在Administrator用户下安装,否则很多控件注册会失败,导致GraphEdit无法调用。原创 2011-12-21 10:11:25 · 491 阅读 · 0 评论 -
DSHOW 中关于FILTER的连接内部实现过程
应用程序通过调用filter 图表管理器的方法来连接filter,并不是来调用filter或者pin本身的函数。应用程序可以调用IFilterGraph::ConnectDirect or IGraphBuilder::Connect来指定不同的filter直接连接,也可以通过IGraphBuilder::RenderFile间接连接。只有两个filter都在graph里,连接才能成功转载 2011-12-27 17:26:57 · 2249 阅读 · 0 评论 -
FreeMediaType与DeleteMediaType
FreeMediaType与DeleteMediaTypeFreeMediaType和DeleteMediaType很容易被混淆使用,它们的区别主要体现在操作的对象不同。要弄清这个问题,首先要熟悉AM_MEDIA_TYPE这个结构体。下面就是这个机构体的定义:typedef struct _MediaType { GUID majortype; GUID转载 2011-12-23 16:15:23 · 1730 阅读 · 0 评论 -
DeleteMediaType()导致链接失败
这两天碰到了奇怪的问题,加入DeleteMediaType()释放内存后,编绎成功,但链接失败,找到N个重名符号.查找帮助文档,依葫芦画瓢,替换成以下代码就正常了,看来DirectShow也知道会有这个问题吧:Use this function to release any media type structure that was allocated using either CoTas转载 2011-12-23 16:07:33 · 1328 阅读 · 0 评论 -
DirectShow PIN 連接教學
毛毛 DirectShow PIN 連接教學 一個寫作機會,順便看了一下 DirectShow 發現它.. 太強大了...但覺得還是自己用 PIN 連接較好用,雖有點不方便,但 DEBUG 容易。CODE 很簡單。我用最簡單的幾個 Filter 寫了一個 AVI PLAYER..利用 DirectX 所提供的 GraphEdit转载 2011-12-22 14:35:50 · 957 阅读 · 0 评论 -
什么是Platform SDK
什么是Platform SDK2009-04-03 18:18 6422人阅读 评论(6) 收藏 举报vc6推出时,是98年,windows2000,windowsXP都还没有推出。所以VC6的头文件中仅仅包含win98/NT的API、常量声明。在新的系统推出后,windows2000/xp都增添了一些新的API函数、常量定义。于是,你就需要安装platform转载 2011-12-22 13:50:21 · 752 阅读 · 0 评论 -
DirectX SDK版本与Visual Studio版本
DirectX SDK版本与Visual Studio版本 2010-05-17 18:14:31| 分类:软件编程| 标签:|字号大中小 订阅对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译。 一开始我也为此费了很大的功夫,比如说修改代码、修改编译选项使其编译通转载 2011-12-22 13:39:12 · 1141 阅读 · 0 评论 -
DirectShow媒体文件回放总结
作者:Inkick1.概述DirectShow中媒体文件回放的过程也就是一个为媒体文件选择相应所需的Filter、构建Filter Graph、并对Filter Graph的状态进行维持、控制的过程。这里所说的媒体文件,不仅仅是指音频、视频文件,同时也包括bmp、jpeg、gif等图形图像格式以及midi等数字化音乐序列。因此,使用DirectShow进行媒转载 2011-12-12 10:49:47 · 997 阅读 · 0 评论 -
构建Filter Graph
构建Filter Graph3.3.1. 用于构建Graph的组件 DirectShow提供了一系列用于构建filter graph的组件,包括: *Filter Graph Manager。这个对象用于控制filter graph,支持IGraphBuilder、IMediaControl和IMediaEventEx等许多接口。所有的directshow应转载 2011-12-12 15:00:36 · 1311 阅读 · 0 评论 -
Directshow注册
regsvr32 D:\Filters\FilterTitleOverlay.dll原创 2013-05-06 14:43:58 · 803 阅读 · 0 评论