DirectShow
文章平均质量分 60
markman101
这个作者很懒,什么都没留下…
展开
-
注册和反注册 filter
1 注册filter 示例:regsvr32 D:/保存源码/Test_filter/Debug/Test_filter.ax 反注册 filter 示例:regsvr32 /u D:/保存源码/Test_filter/Debug/Test_filter.ax /u:反注册命令2 调试filter 方法 VC 6.0++:DirectShow 开发指南 的4.6节 Filte原创 2010-04-27 20:53:00 · 917 阅读 · 0 评论 -
Direcshow中视频捕捉和参数设置报告
1. 关于视频捕捉(About Video Capture in Dshow)<br />1视频捕捉Graph的构建<br />一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture Graph Builder提供了一个ICaptureGraphBuilder2接口,这个接口提供了一些方法用来构建和控制捕捉gr转载 2010-06-12 13:23:00 · 143 阅读 · 0 评论 -
Direcshow中视频捕捉和参数设置报告
1. 关于视频捕捉(About Video Capture in Dshow)<br />1视频捕捉Graph的构建<br />一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture Graph Builder提供了一个ICaptureGraphBuilder2接口,这个接口提供了一些方法用来构建和控制捕捉gr转载 2010-06-12 13:25:00 · 773 阅读 · 0 评论 -
Direcshow中视频捕捉和参数设置报告
1. 关于视频捕捉(About Video Capture in Dshow)<br />1视频捕捉Graph的构建<br />一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture Graph Builder提供了一个ICaptureGraphBuilder2接口,这个接口提供了一些方法用来构建和控制捕捉gr转载 2010-06-12 13:25:00 · 684 阅读 · 0 评论 -
Direcshow中视频捕捉和参数设置报告
1. 关于视频捕捉(About Video Capture in Dshow)<br />1视频捕捉Graph的构建<br />一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture Graph Builder提供了一个ICaptureGraphBuilder2接口,这个接口提供了一些方法用来构建和控制捕捉gr转载 2010-06-12 13:27:00 · 800 阅读 · 1 评论 -
Direcshow中视频捕捉和参数设置报告
1. 关于视频捕捉(About Video Capture in Dshow)<br />1视频捕捉Graph的构建<br />一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture Graph Builder提供了一个ICaptureGraphBuilder2接口,这个接口提供了一些方法用来构建和控制捕捉gr转载 2010-06-12 13:24:00 · 393 阅读 · 0 评论 -
Direcshow中视频捕捉和参数设置报告
1. 关于视频捕捉(About Video Capture in Dshow)<br />1视频捕捉Graph的构建<br />一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture Graph Builder提供了一个ICaptureGraphBuilder2接口,这个接口提供了一些方法用来构建和控制捕捉gr转载 2010-06-12 13:24:00 · 3490 阅读 · 0 评论 -
Direcshow中视频捕捉和参数设置报告
1. 关于视频捕捉(About Video Capture in Dshow)<br />1视频捕捉Graph的构建<br />一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture Graph Builder提供了一个ICaptureGraphBuilder2接口,这个接口提供了一些方法用来构建和控制捕捉gr转载 2010-06-12 13:26:00 · 817 阅读 · 0 评论 -
调试DirectShow程序的时候,利GraphEdit查看自已程序中的Graph
<br />摘自DirectX帮助文档中的两个函数:<br />1.下面的这个函数是将我们的IGraphBuilder接口添加到GraphEdit中去.HRESULT AddToRot(IUnknown *pUnkGraph, DWORD *pdwRegister) <br />{<br /> IMoniker * pMoniker;<br /> IRunningObjectTable *pROT;<br /> if (FAILED(GetRunningObjectTable(0, &转载 2010-06-21 10:05:00 · 2015 阅读 · 0 评论 -
网络接收多媒体流开发心得
<br />1 网络接收多媒体流开发心得:<br /> (1)设计一个好的数据缓存机制<br /> 不是收到一个包就立即送解码播放<br /> (2) <br /> 画面质量不好一般就是数据往解码器送的时候不够连续,就是一帧播完了,<br /> 去取下一帧时发现数据还没有到来,或者有时缓冲有很多帧,一下就播完了。控制播放速率很重要原创 2010-08-24 16:54:00 · 1009 阅读 · 0 评论 -
海康H.264板卡SDK使用的一点心得
<br />关于海康H.264板卡SDK使用的一点心得<br />1 <br />// 获取编码通道个数<br />//比如PC上安装4路板卡那么这个 iChannels 的值就是4 如果装有8路板卡 iChannels 的值就是8<br /> int iChannels = GetTotalChannels();<br /> for (int i = 0; i < iChannels; i++)<br /> {<br /> HANDLE Handle = ChannelOpen(i);<br />//在原创 2010-08-29 13:40:00 · 2373 阅读 · 0 评论 -
*DEFINE_GUID宏与#include 的使用
使用DEFINE_GUID宏可以让你通过包含同一个头文件来定义GUID值而不必使用extern关键词。比如,你的工程中有三个源文件:src1.cpp,src2.cpp,src3.cpp,它们都使用一个相同的GUID值,而为了保证一致性,这个GUID只能在你的工程中定义一次,这时,其它的源文件必须定义外部引用来使用它。用了DEFINE_GUID,你可以使用在所有源文件中包含同一个头文件,在头文件中这样定义GUID: DEFINE_GUID(CLSID_MyObject, 0转载 2010-09-04 17:55:00 · 2059 阅读 · 0 评论 -
如何使用DirectDraw直接显示YUV视频数据
<br /> <br /> <br />最近在编写一个进行视频播放的ActiveX控件,工作已经接近尾声,现将其中显示YUV数据的使用DirectDraw的一些经验总结如下:(解码部分不是我编写的,我负责从网络接收数据,将数据传给解码器,并将解码得到的YUV数据进行显示,最初在显示部分我是先将YUV数据转换为RGB数据,再以位图的形式显示到屏幕上,但发现CPU占用率比较高,后来改用DirectDraw直接显示YUV数据)<br转载 2010-09-19 16:43:00 · 2187 阅读 · 3 评论 -
如何使用DirectDraw直接显示YUV视频数据
<br /> <br /> <br />最近在编写一个进行视频播放的ActiveX控件,工作已经接近尾声,现将其中显示YUV数据的使用DirectDraw的一些经验总结如下:(解码部分不是我编写的,我负责从网络接收数据,将数据传给解码器,并将解码得到的YUV数据进行显示,最初在显示部分我是先将YUV数据转换为RGB数据,再以位图的形式显示到屏幕上,但发现CPU占用率比较高,后来改用DirectDraw直接显示YUV数据)<br转载 2010-09-19 16:39:00 · 2472 阅读 · 0 评论 -
Filter编写之 自定义接口实例
自己解决了,函数方式写的不对,改成// {EF31F705-32A7-477a-90C9-2C7E81EB025D}#ifndef __H_MyFilter__#define __H_MyFilter__#ifdef __cplusplusextern "C" {#endifDEFINE_GUID(IID_IMyFilter, 0xef31f705, 0x32a7, 0x477a, 0x90, 0xc9, 0x2c, 0x7e, 0x81, 0xeb, 0x2, 0x5d);DECLARE_INTERFA转载 2010-09-03 17:02:00 · 2949 阅读 · 1 评论 -
掌握 dump filter 的用法:采集MPG,AVI和ASF的程序代码
下面的程序代码示范了如何用VW卡采集MPG,AVI或ASF文件。 本程序是基于DirectShow通过VW卡的DirectShow Source Filter及相关Filter实现文件采集。 由于在这里AVI,ASF格式文件均为MPEG-4视频,所以,为简单起见,MPG文件也为MPEG-4视频,即前面文章所提高的MPEG-4 Embedded MPEG-2。在程序运行后,首先创建一个Filter Graph,其中仅含有VW Source Filter并进行相应的设置,在本实例中设置的参数为: PAL复合视频转载 2010-07-19 14:30:00 · 2894 阅读 · 0 评论 -
DirectShow--filter 开发 之 程序调试
1 MPEG4的网络接收filter 是完成了 但是在VMR9播放时不显示 画面 大伙如果想看VMR9是否接收到数据可以在这里看 看以播放帧数 等参量(在这里感谢教我这一招的前辈) 这是怎么回事呢在查看了 state=((recv->pfilter)->m_output)->Deliver(pmediasample);返回0后 我认定是解码的问题而后我原创 2010-05-20 11:43:00 · 1294 阅读 · 4 评论 -
高清YUV测试序列下载
1 http://media.xiph.org/video/derf/原创 2010-05-18 11:35:00 · 4778 阅读 · 0 评论 -
使用GraphEdit使用
1 注册组件。其实一个filter就是一个COM组件,所以使用之前需要注册,可以有两种方法对组件进行注册。 1. 直接使用命令。命令行下输入:regsvr32 Hqtlystd.ax(编译之后你会在工程目录下的Debug中找到Hqtlystd.ax,这个就是要用的Filter)即可注册成功。 2. VC6.0 中一般有注册组件的快捷菜单,也就是To原创 2010-04-26 17:42:00 · 2680 阅读 · 0 评论 -
DirectShow--filter 开发 之 编译调试
1用VC写DLL中"error LNK2005: _DllMain@12 already defined"的应对用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误: error LNK2005: _DllMain@12 already d原创 2010-04-26 14:55:00 · 1453 阅读 · 0 评论 -
DS---errorcode对照表
private static string getErrorMsg(uint errorCode) { string errorMsg = null; switch (errorCode) { case 0x80040200: //VFW_E_INVALIDMEDIATYPE原创 2010-04-29 14:01:00 · 3679 阅读 · 0 评论 -
如何设计自定义的transform filter
2008/12/31 19:30对于DIrectShow的初学者而言,最大的困难莫过于尝试设计自定义的filter。设计自定义的transform filter是困难的 因为 首先filter是一种dll (后缀名为.ax)而编写dll工程需要一定的VC基础 所以建议先补充一点dll的知识其次 dll的注册,GUID的生成和工程的配置都很麻烦。再次 网上缺乏现成的trans转载 2010-04-29 16:30:00 · 1449 阅读 · 2 评论 -
#define VFW_E_NOT_COMMITTED ((HRESULT)0x80040211L) 引起的连锁反应
#define E_POINTER _HRESULT_TYPEDEF_(0x80004003L)#define E_INVALIDARG _HRESULT_TYPEDEF_(0x80000003L)#define E_NOTIMPL _HRESULT_TYPE原创 2010-04-30 17:27:00 · 1811 阅读 · 0 评论 -
报警显示
<br />void CAlarmLog::AddAlarmLogList(int nIndex, int iAIType, BOOL bAudio, LPCSTR path) { m_csDisplay.Lock(); ////////////////////////////////////////////////////////////////////////// CTime ttime = CTime::GetCurrentTime(); int nCount =原创 2010-07-01 14:34:00 · 670 阅读 · 0 评论 -
DirectShow应用——音频捕捉
现在的所谓多媒体电脑一般都会有声卡(软声卡或硬声卡),有声卡就能进行音频的捕捉。大家一定熟悉Windows自带的附件“录音机”程序,可以通过麦克风进行录音,最终生成一个Wave文件。读完本文之后,你就会发现,自己使用DirectShow写一个音频捕捉的应用程序,原来也是这么的容易! 大家知道,DirectShow对硬件的支持是通过特定的包装Filter来实现的。声卡使用的是Audio Capture Filter,Filter内部使用以waveIn开头的一套API实现(如waveInOpen等)。运行Gr转载 2010-06-30 10:55:00 · 3500 阅读 · 1 评论 -
Visual Studio 2005 XviD编译过程
这几天做一个BMP2AVI的转换器,要用到XviD Codec的编码器,使用过程中,发现有一个Status窗口弹出来,压缩过程奇慢GraphEdit里的结构如下:PushSourceBitmapSetFilter -> XviD MPEG-4 Codec -> AVI Mux -> FileWriter并且关闭GraphEdit的时候,关闭不了程序,程序失去响应,怀疑是因为Status窗口造成的,转载 2010-05-06 11:25:00 · 1295 阅读 · 0 评论 -
'nasm' 不是内部或外部命令,也不是可运行的程序
//////////////////////////////////////////////////////////Performing Custom Build Step on ./common/i386/colorspace_yuyv_mmx.asm //nasm 不是内部或外部命令,也不是可运行的程序 //或批处理文件。 //解决上面的问题。///////////////////////转载 2010-05-06 13:22:00 · 2962 阅读 · 0 评论 -
视频采集---MPEG4压缩实现
1 先分析 AvCap的例子 (1)构建压缩filter 代码如下:IBaseFilter* pFlt = UDsUtils::CreateCompressor(TRUE, "DivX 5.0.2 Codec"); if (pFlt) { mVideoEncoder = new CDXFilter(mGraph->GetGraph()); mVideoEncoder->Attach(pFlt, "DivX Encoder");原创 2010-07-01 14:33:00 · 844 阅读 · 0 评论 -
Xvid 进行视频编码
1 Vs2005下编译XDiv库1.从网上下载www.xvid.org上下载1.1.2,并解压 http://downloads.xvid.org/downloads/xvidcore-1.2.2.zip2.编译过程中需要用到nasm这个编译汇编的工具http://sourceforge.net/projects/nasm/下 载一个win32版本将你安装的nasm的工具的目录加入VS中如果你你解压的方式,也一样,工具->选项->项目和解决方案->VC++目录 可执行文件下面就是要添加你的的nasm工具的目转载 2010-07-05 10:39:00 · 8803 阅读 · 3 评论 -
基于AVI的网络视频监控存储系统的实现方法
摘 要:提出并实现了使用AVI文件存储XVID压缩视频流的方案,网络视频监控服务器将采集的视频图像利用XVID进行视频编码,存储系统将压缩视频流以通用AVI文件格式存储,以便检索和查询。关键词:AVI;XVID视频编解码器;视频存储;视频播放How to Design Recording System in Network Camera Video Server Based on AVILi Qunlin(College of Electrical and Information Engineering o转载 2010-07-02 16:53:00 · 3015 阅读 · 1 评论 -
通过xvid 源码 在graphedit 中获得注册好的xvid mpeg4 codec filter
<br />1 下载最新版的 XVID 源码 1.2.2 (2010年7月8日) <br />2 按照如下方法编译<br /> Open the workspace xvidcore.dsw located in <br /> ${xvidcore}/build/win32. <br /> - Then choose the libxvidcore project as the Active project原创 2010-07-08 11:05:00 · 1857 阅读 · 0 评论 -
预览(Preview)模式和叠加(Overlay)模式
(A)预览(Preview)模式:该模式使用CPU资源,视频帧先从捕获硬件传到系统内存,接着采用GDI函数在捕获窗中显示。在物理上,这种模式需要通过VGA卡在监视器上显示。 (B)叠加(Overlay)模式:该模式使用硬件叠加进行视频显示,叠加视频的显示不经过VGA卡,叠加视频的硬件将VGA的输出信号与其自身的输出信号合并,形成组合信号显示在计算机的监视器上。只有部分视频捕获卡才具有视频原创 2010-05-12 15:45:00 · 4698 阅读 · 0 评论 -
ds 视频参数 设置
<br />//视频参数设置 { HRESULT hr=0; IAMStreamConfig*pConfig=NULL; int typecount=0; int typesize=0; m_pCapture->FindInterface(&PIN_CATEGORY_CAPTURE,0,m_pBF,IID_IAMStreamConfig,(void**)&pConfig); if (pConfig!=NULL) { pConfig->Ge原创 2010-09-26 10:40:00 · 1729 阅读 · 0 评论