DirectShow常见问题[精选5篇]

时间:2019-05-14 21:53:54下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《DirectShow常见问题》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《DirectShow常见问题》。

第一篇:DirectShow常见问题

一、配置方法

1、先编译SamplesC++DirectShowBaseClasses中的工程文件。注意工程的默认选项是D ebug_Unicode的,在非Unicode的工程中使用还需要编译Debug版本的。

“DXSDK90SAMPLESC++DIRECTSHOWBASECLASSESbaseclasses.dsw的release版本”,指的是运行DXSDK90SAMPLESC++DIRECTSHOWBASECLASSESbaseclasses.dsw前,先在VC中选择Build->Set Active Configuration,再在对话框中选择BaseClasses-Win32 Release??

2、需要设置好VC中目录的设置

include的目录中添加 C:DXSDKSamplesC++DirectShowBaseClasses

Lib的目录中添加 C:DXSDKSamplesC++DirectShowBaseClassesDebug3、使用DirectShow时应该先执行

CoInitialize(NULL);

初始化COM,结束前

CoUninitialize();

关闭COM4、使用DirectShow的工程需要添加下面两个头文件

#include //DS接口、基类的定义

#include //CComPtr模板的定义

同时需要调整编译的选项

#pragma comment(lib,“strmbasd.lib”)

#pragma comment(lib,“winmm.lib”)

#pragma comment(linker,“/NODEFAULTLIB:libcmtd.lib”)

注意,VC自带的库中也有strmbasd.lib文件。一定要保证连接到DS的库中,否则会出现 strmbasd.lib(dllsetup.obj): error LNK2001: unresolved external symbol “class CFactoryTemplate * g_Templates”(?g_Templates@@3PAVCFactoryTemplate@@A)

strmbasd.lib(dllentry.obj): error LNK2001: unresolved external symbol “class CFactoryTemplate * g_Templates”(?g_Templates@@3PAVCFactoryTemplate@@A)

strmbasd.lib(dllsetup.obj): error LNK2001: unresolved external symbol “int g_cTemplates”(?g_cTemplates@@3HA)

strmbasd.lib(dllentry.obj): error LNK2001: unresolved external symbol “int g_cTemplates”(?g_cTemplates@@3HA)

之类的错误。

二.编译后出现的错误:

1、syntax error : identifier 'DWORD_PTR'

如果你安装了Miscrosof Platform SDK, 你也许会看到:

Compiling...e:directx9samplesc++directshowbaseclasseswxutil.h(53): error C2061: syntax error : identifier 'DWORD_PTR'

e:directx9samplesc++directshowbaseclassesctlutil.h(43): error C2504: 'IBasicVideo2' : base class undefined

e:directx9samplesc++directshowbaseclassesctlutil.h(904): error C2146: syntax error : missing ';' before identifier 'm_dwAdvise' e:directx9samplesc++directshowbaseclassesctlutil.h(90): error C2501: 'DWORD_PTR' : missing storage-class or type specifierse如果发生这种情况,你应该从“Tools”目录中选择“Option”,然后在include directory中将Platform SDK加到

VC inlcude之前:

2、LINK : fatal error LNK1104: cannot open file “mfc42ud.lib” mfc42ud.lib是专门给unicode用的build-->set active Configuration--> XXX win32 debug 这样就可以了

3、“CComPtr< ”怎么用?

CComPtr m_spApi;在控制台程序中可以编译成功,但mfc中报错,怎么回事?在线等待一下是错误信息:

error C2143: syntax error : missing ';' before '<'

error C2501: 'CComPtr' : missing storage-class or type specifiers error C2059: syntax error : '<'

error C2238: unexpected token(s)preceding ';'

原因:缺少文件,在vc6中是atlbase.h,可能在.net中是atlcomcli.h 解决方法:在stdafx.h中加入#include

4、'ISampleGrabber' : undeclared identifier

加入代码#include

“C:DXSDKSamplesC++DirectShowCommondshowutil.cpp并且需要在project->settings-> link 中object/libary modules 中填加

C:DXSDKSamplesC++DirectShowBaseClassesdebugstrmbasd.lib winmm.lib ,同时要保证stdafx.h中 有#include #include #include

5、调用CoInitializeEx(),编译后显示未定义

CoInitializeEx()是利用COM组件时每个线程都要调用的函数,使用这个函数需要有如下设置:在Project-> setting-> C/C++标签下的Preprocessor definitions中加入”_WIN32_WINNT=0x400"语句

第二篇:directshow采集多媒体音视频同步

随着计算机网络和多媒体技术的发展,多媒体应用如视频会议、远程监控、远程教育、可视电话、医疗视频会诊等迅速兴起,视频和音频捕获成为多媒体应用中的关键环节和重要前提。目前采用较多的基于设备软件开发工具箱(SDK)的捕获方式存在成本较高、灵活性和扩展性较差等问题,难以满足用户需求和网络环境的变化。微软公司推出的多媒体开发软件包———DirectShow成为解决这些问题的一个有力工具。

DirectShow提供高质量的多媒体数据流的捕获和回放功能,广泛支持多种媒体格式,包括ASF、MPEG、AVI、DV、MP3和WAV等。同时DirectShow对VFW具有良好的兼容性,并具有其无法比拟的优势,包括支持大量多媒体数据捕获的同时可通过网络传播和播放,支持视频与音频在捕获和播放中的完全同步,支持来自不同媒体源数据捕获的合成等。本文着重介绍如何利用Visual C++实现基于DirectShow的视频和音频捕获以及其中涉及到的关键问题,以供工程人员和开发人员参考使用。

DirectShow的原理

1、DirectShow的体系结构。

应用程序与DirectShow组件以及DirectShow所支持的软硬件之间的关系如图1所示。DirectShow使用模块化的架构,系统中的基础模块称为过滤器(Filter)。过滤器作为软件的组件,可完成单一的数据流处理功能。按照功能,过滤器大致分为3类:源过滤器(Source Filter)、转换过滤器(Transform Filter)和表现过滤器(Rendering Filter)。源过滤器负责从媒体源获取数据;转换过滤器负责数据的格式转换、传输,如数据流分离/合成、编码/解码等;表现过滤器负责数据的最终去向,将数据送往显卡和声卡进行播放,或输出到文件进行存储。

过滤器之间通过引脚(Pin)进行有序连接,组合而成过滤器图(Filter Graph),用以实现组合的一系列功能。应用程序创建过滤器图管理器(Filter Graph Manager),负责过滤器图的组织和连接功能并控制数据在其中的流动。

为了提高系统的稳定性,Windows操作系统对硬件操作进行了隔离;应用程序一般不能直接访问硬件。过滤器工作在用户模式(User mode,操作系统特权级别为Ring 3),而硬件工作在内核模式(Kernel mode,操作系统特权级别为Ring 0)。

2、DirectShow的开发方法。

开发DirectShow应用程序,主要有以下三个基本步骤:

(1)调用CoCreateInstance函数,创建一个过滤器图管理器组件;

(2)根据项目实际需求,构建一条完整的过滤器链路(也可应用其它的DirectShow帮助组件来完成过滤器图的构建);

(3)调用过滤器图管理器上的接口方法来控制过滤器图,并完成过滤器图管理器与应用程序的事件交互。

DirectShow技术建立在COM(Component Object Model)技术基础上,所有部件和功能都可由COM接口来构建和实现。过滤器图管理器的重要COM接口包括:

IGraphBuilder:用于创建过滤器图。

IMediaControl:用于控制媒体流在过滤器图中的传输。

IMediaEventEx:用于控制过滤器图的事件。

IVideoWindow:用于设置多媒体播放窗口的属性。

IBasicAudio:用于控制音频特性。

IBasicVideo:用于控制视频特性。

IMediaPosition:用于查找和定位数据流。

IPin:用于管理两个过滤器之间的引脚,从而连接过滤器。

另外,由于直接使用IGraphBuilder接口构建视频和音频捕获过滤器图比较复杂,DirectShow提供了辅助组件———捕获图构建器(Capture Graph Builder),通过调用其IcaptureGraphBuilder2的接口方法,可以简便地完成过滤器图的构建和控制。

基于DirectShow视频和音频捕获的实现

1、编译环境的设置。

安装Microsoft DirectX SDK后,需要设置VC编译环境。包括:

(1)在VC系统目录中添加DirectX SDK的Include和Lib目录;

(2)创建工程,选择Win32动态库;

(3)选择_stdcall函数调用协议;

(4)添加已编译基类源代码生成的库Strmbase.lib(发布版)或Strmbasd.lib(调试版)。

2、过滤器图的构建设计。

捕获系统需要实现的功能:从视频采集设备和音频采集设备实时获取数据流,预览视频和监听音频,并将视频流与音频流合成后存储。设计如图2所示的过滤器图,各个过滤器组件功能:Video Capture和Audio Capture分别负责实时捕获视频和音频;Video Renderer将视频流送往显卡进行视频预览;Smart Tee负责音频流的分流;AVI Muxer将视频流与音频流合成AVI流,File Writer将合成后数据存储在硬盘;Audio Renderer将数据送往声卡进行音频播放。

需要说明的是,一般视频捕获器提供有预览和捕获两个输出引脚,而音频捕获器只有捕获输出引脚。对于只有捕获输出引脚的视频捕获器也可使用插入Smart Tee的方法实现数据分流。

3、程序实现。

在这一部分,分析和说明捕获功能的实现步骤,并给出核心代码:

(1)创建过滤器图管理器组件。

CoInitialize(NULL);//初始化COM库

//创建过滤器图管理器

IGraphBuilder *pGraphBuilder;

CoCreateInstance(CLSID_FilterGraph, NULL,CLSCTX_INPROC_SERVER, IID_IGraphBuilder,(void **)&pGraphBuilder);

//创建捕获图构建器

ICaptureGraphBuilder2 *pCapGraphBuilder;

CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL,CLSCTX_INPROC_SERVER,IID_ICaptureGraphBuilder2,(void**)&pCapGraphBuilder);pCapGraphBuilder->SetFiltergraph(pGraphBuilder);//添加捕获图构建器到管理器中//获得有用接口

IMediaControl *pControl;

IMediaEventEx *pEventEx;

pGraphBuilder->QueryInterface(IID_IMediaControl,(void **)&pControl);

pGraphBuilder->QueryInterface(IID_ImediaEventEx,(void **)&pEventEx);

(2)创建捕获过滤器。

//枚举采集设备

ICreateDevEnum *pCreateDevEnum = NULL;

CoCreateInstance(CLSID_ SystemDeviceEnum, NULL,CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,(void **)&pCreateDevEnum);//创建设备枚举器

IEnumMoniker *pVideoEnumMoniker = NULL;

pCreateDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory,&pVideoEnumMoniker, 0);//指定类型目录

/ * 以枚举视频设备为例。枚举音频设备与此类似,代表音频采集的过滤器注册为CLSID_AudioInputDeviceCategory 类型 */

IMoniker *pVideoMoniker = NULL;

IPropertyBag *pVideoPropBag;

pVideoMoniker->BindToStorage(0, 0, IID_IPropertyBag,(void**)(&pVideoPropBag));//枚举设备标识

VARIANT varVideoName;

VariantInit(&varVideoName);

pVideoPropBag->Read(L“VideoFriendName”, &varVideoName, 0);//取得设备的友好名称

//创建Video Capture过滤器

IBaseFilter *pVideoCap;

pVideoMoniker->BindToObject(0,0,IID_IbaseFilter,(void **)&pVideoCap);

//添加Video Capture过滤器到过滤器图

pGraphBuilder->AddFilter(pVideoCap,L“Video Capture Filter”);

(3)构建其它过滤器,并加入过滤器图。

/* ICaptureGraphBuilder2提供了RenderStream函数,可以自动构建Smart Tee和Renderer过滤器,并将它们连接成一个完整的过滤器图。如果Capture过滤器既有预览引脚又有捕获引脚,那么RenderStream将两个引脚和Render过滤器连接;如果Caprture过滤器只有捕获引脚,那么捕获图构建器自动插入Smart Tee过滤器将视频流或音频流分流,并完成过滤器之间的连接。*/

//构建视频预览的过滤器链路

IBaseFilter *pVideoCap;//

pCapGraphBuilder->RenderStream

(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video,pVideoCap, NULL, NULL);//构建音频监听的过滤器链路

IBaseFilter *pAudioCap;

pCapGraphBuilder->RenderStream

(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Audio,pAudioCap, NULL, NULL);//构建视音频合成并保存文件过滤器链路

/* SetOutputFileName函数会自动创建AVI Muxer过滤器和File Writer过滤器,并且将这两个过滤器添加到过滤器图中。*/

IBaseFilter *pMux;

pCapGraphBuilder->SetOutputFileName

(&MEDIASUBTYPE_Avi,L“C:Capture.avi”,&pMux, NULL);

//连接捕获器和AVI Muxer过滤器

pCapGraphBuilder->RenderStream

(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, pVideoCap, NULL, pMux);pCapGraphBuilder->RenderStream

(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Audio, pAudioCap, NULL, pMux);//设置音频流为主流

IConfigAviMux *pConfigAviMux;

pMux->QueryInterface(IID_IConfigAviMux,(void**)&pConfigAviMux);

pConfigAviMux->SetMasterStream(1);

(4)控制过滤器图

pControl->Run();//开始捕获

pControl->Pause();//暂停

pControl->Stop();//停止捕获

结束语

DirectShow提供了开放式的开发环境,模块化的管理结构,及对媒体格式和硬件的广泛支持,使得在Windows平台上捕获和处理多媒体数据流变得简单而高效。本文探讨了利用VC++基于DirectShow捕获多媒体数据流的实现方法,为此方法基础上实现的流媒体捕获系统成本较低,捕获质量良好,解决了基于设备SDK和VFW的捕获方式中存在的硬件通用性差、不易实现功能修改和扩展等问题,此方法也为后续的流媒体处理研究和实现提供了

有益的参考,在多媒体应用开发方面具有广阔的前景。

第三篇:VS2008环境配置directshow终极攻略

帮您安装调试成功VS2008平台下的Directshow 及基于directshow的相关项目基础配置错误解决

知识普及:

DirectX9.0b(包含b)以下版本才有directshow,自从DirectX9.0c以后就从DirctX中分离了directshow了,所以要用directshow的人要注意,当然你也可以下载安装extras扩展包来弥补这一缺省。

缺少streams.h的解决方法

从网上下了DirectX 9.0 SDK,运行里面的的BaseClasses的时候出现了N多错误,在网上找到了相应的方法。http://blog.csdn.net/cocolovelove/article/details/353258

31.编译基类源代码

BaseClasses编译生成路径:/Samples/C++/DirectShow/BaseClasses

环境:VS2005/VS2008

为了正确编译,需修改以下文件:

(a)ctlutil.h

D:/DXSDK/Samples/C++/DirectShow/BaseClasses/ctlutil.h

编译时提示错误:

BaseClasses/ctlutil.h(278): error C4430: 缺少类型说明符假定为 int。注意: C++ 不支持默认 int

改:

//static g_dwLastRefresh = 0;

static DWORD g_dwLastRefresh = 0;//lspmodify

(c)winutil.cpp

d:/DXSDK/Samples/C++/DirectShow/BaseClasses/winutil.cpp

错误:

1>./winutil.cpp(2104): error C2065: “Count”: 未声明的标识符改:

//for(UINTCount = 0;Count < Result;Count++)

UINT Count;//lspmodify

for(Count = 0;Count < Result;Count++){ //lspmodify

(d)outputq.cpp

d:/DXSDK/Samples/C++/DirectShow/BaseClasses/outputq.cpp

错误:

1>./outputq.cpp(664): error C2065: “iDone”: 未声明的标识符改:

(这里可能地方与VS报错不一样,需要自己向上找一下)

//for(longiDone = 0;

long iDone;//lspmodify

for(iDone = 0;//lspmodify

在DirectShow 8.0的SDK里面就看到有下面的头文件,在我装的是9.0的,没有找到这些文件。所以编译的时候修改完上面的就可以通过了。但要是装8.0的话就要修改了。

(我是到这部截至了因为我下载的是DirectX9.0b extras,所以如果您与我相同请直接向下看蓝字部分)

2、头文件修改

(a)winnt.h

d:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include/winnt.h

在该文件头部添加:

#define POINTER_64 __ptr64 // add by peter lee

(b)vmr9.h

D:/DXSDK/Include/vmr9.h

MixerPref9_RenderTargetRGB= 0x1000,MixerPref9_RenderTargetYUV= 0x00002000, //lsp add3、VS2005/VS2008环境配置(一样的所以就以2008为例)

在vs2008下,选择菜单 Tools-> Options,左栏选择Projects and Solutions-> VC++ Directories

在弹出的对话框的“Show directories for”(显示以下内容的目录)中选择Include files(包含文件):文件路径看你自己安装的directshow位置

-include:

/Include

/Samples/C++/Common/Include

//我的工程中COMMON没有include ,我直接添加到C:DXSDKSAMPLESC++COMMON也成功了 /Samples/C++/DirectShow/BaseClasses

/WMFSDK9/include//这个我没加也可以

...再在“Show directories for”中选择 Libraries files(库文件):

-lib:

/lib

/Samples/C++/Common/Src

/Samples/C++/DirectShow/BaseClasses/Debug_Unicode

//如果没有编译BaseClasses不会出现这个文件选项

/Samples/C++/DirectShow/BaseClasses/Release_Unicode

/WMFSDK9/lib//这个我没加也可以

修改完成啦,哈哈~~~编译通过了~~ DirectX9.0 只需要做第一步修改就可以了,但8.0就要三步都做完~~~晕倒~~

如果以上修改已经解决你的问题那么恭喜你,如果编译出现下图情况,那么恭喜你也成功了,只不过因为你编译的是lib和.h项目,你应该设置类似capture项目为启动项目,继续您后续的编程。

如果后续编程出问题,请向下看

(Debug_Unicode版)

缺少streams.h的解决方法和DirectShow开发环境的搭建

这个问题困扰我两天了,这是在参考了很多Debug 和Realse 版本的缺少streams.h的方案后,经过参考尝试后,获得了成功,现在拿出来供有需要的像做视频开发方面的人提供参考,绝对可以帮你省很多时间来处理有关DirectShow开发环境的搭建.重新配置一下include和lib以确保正确

1)安装directX 9.0b sdk,我安装在C盘下的DXSDK

2)打开安装目录下的baseclasses.dsw,进行编译

其中第(2)是最重点的,下面我就主要详细说明这步的操作过程

1. 首先在baseclasses工程project-setting-library下设置output file name,设置为

Debug_Unicodestrmbasd_uni.lib,默认的为Debug_Unicodestrmbasd.lib。(这部我没做)

2. 编译工程,编译后会生成Debug_Unicode目录,里面就含有我们要的strmbasd_uni.lib

库。把它拷贝到你所要的项目工程目录下即可。(这部我也没做)

3. 在你所在的工程中,打开project-setting-link的Object/library modules下添加如下几

个库名,strmbasd_uni.libstrmiids.lib winmm.lib//这部我做了,这个VS与VC++不同VS2008是在右击启动项目——属性——链接(LINK)——输入中的依赖附加项中添加的3)在VC++的Tools/Option/Directory的Include和Library中分别加入

C:DXSDKInclude

C:DXSDKSAMPLESC++DIRECTSHOWBASECLASSES

C:DXSDKSAMPLESC++COMMONINCLUDE//我的工程中COMMON没有include ,我直接添加到C:DXSDKSAMPLESC++COMMON也成功了

C:DXSDKLib

C:DXSDKSAMPLESC++DIRECTSHOWBASECLASSES Debug_Unicode(*)

4)在编译你工程前,在ProjectSettingLink 中加入 strmbasd_uni.lib uuid.lib winmm.lib

如果出现:dsound.h“: No such file or directory

则在vs目录下搜索添加到baseclasses工程include目录下

(着重强调你的VS2008中的windsk必须安装的比较完整,否则会缺少很多东西,如果没有在你的VS2008中的安装包搜索,找到补丁安装即可)

(以下参考

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2617687&SiteID=1)

如果出现:dxtrans.h”: No such file or directory

则在整个工程中查找#include 的引用处做修改:

在#include 前加四项:

#define __IDxtCompositor_INTERFACE_DEFINED__

#define __IDxtAlphaSetter_INTERFACE_DEFINED__

#define __IDxtJpeg_INTERFACE_DEFINED__

#define __IDxtKey_INTERFACE_DEFINED__

#include

再修改qedit.h 中引用 dxtrans.h 的部分,要求注释掉

#include “oaidl.h”

#include “ocidl.h”

//#include “dxtrans.h”

#include “amstream.h”

注意:这样就可以正常编译连接了,如果以前的的程序还是不行,则 rebuild all 一下即可

如果出现1>LINK : fatal error LNK1181: 无法打开输入文件“strmbasd_uni.lib”

只能说明你的摄像机的驱动没装好。

希望我的整理对您有帮助,我调了两天,把directX的发展和VS2008的基本配置都弄的比较清楚了感觉收获很大。如果还有问题也欢迎邮箱mysteryrat@126.com探讨

O(∩_∩)O哈哈~

第四篇:使用DirectShow采集图像实现双目双窗口

使用DirectShow采集图像实现双目双窗口

本文档介绍的CCameraDS类调用采集函数可直接返回IplImage,使用更方便,且集成了DirectShow,勿需安装庞大的DirectX/Platform SDK。本类只在Visual C++ 6.0下进行了测试.CCameraDS中有如下函数:

CCameraDS()

构造函数

CCameraDS()

析构函数

bool OpenCamera(int nCamID, bool bDisplayProperties=true)

打开摄像头,nCamID指定打开哪个摄像头,取值可以为0,1,2,...。bDisplayProperties指示是否自动弹出摄像头属性页。

bool CCameraDS

:OpenCamera(int nCamID, bool bDisplayProperties=true, int nWidth=320, int nHeight=240):打开摄像头,nCamID指定打开哪个摄像头,取值可以为0,1,2,...。bDisplayProperties指示是否自动弹出摄像头属性页。nWidth和nHeight设置的摄像头的宽和高,如果摄像头不支持所设定的宽度和高度,则返回falsevoid CloseCamera()

关闭摄像头,析构函数会自动调用这个函数

static int CameraCount()

返回摄像头的数目。可以不用创建CCameraDS实例,采用int c=CCameraDS::CameraCount();得到结果。

static int CameraName(int nCamID, char* sName, int nBufferSize);

根据摄像头的编号返回摄像头的名字

nCamID: 摄像头编号

sName: 用于存放摄像头名字的数组

nBufferSize: sName的大小

可以不用创建CCameraDS实例,采用CCameraDS::CameraName();得到结果。int GetWidth()

返回图像宽度。

int GetHeight()

返回图像高度

IplImage * QueryFrame()

抓取一帧,返回的IplImage不可手动释放!返回图像数据的为BGR模式的Top-down(第一个字节为左上角像素),即IplImage::origin=0(IPL_ORIGIN_TL)

//////////////////////////////////////////////////////////////////////本范例根据于仕琪改编

// 使用说明:

//1.将CameraDS.h CameraDS.cpp以及目录DirectShow复制到你的项目中 //前面两者project-add to project-files

//2.菜单 Project->Settings->Settings for:(All configurations)->

//C/C++->Category(Preprocessor)->Additional include directories

//设置为 DirectShow/Include

//3.菜单 Project->Settings->Settings for:(All configurations)->Link

//->Category(Input)->Additional library directories

//设置为 DirectShow/Lib

//////////////////////////////////////////////////////////////////////

#include “camerads.h”

#include

#include

int main()

{

int cam_count;

cam_count = CCameraDS::CameraCount();//获取摄像头数目

printf(“There are %d cameras.n”, cam_count);//输出摄像头数目

for(int i=0;i < cam_count;i++)//获取所有摄像头名称并显示出来{

char camera_name[1024];//声明1024个字符空间,1024字节int retval= CCameraDS::CameraName(i,camera_name,sizeof(camera_name));//根据摄像头编号返回摄像头名字if(retval >0)

printf(“Camera #%d's Name is '%s'.n”, i, camera_name);

else

printf(“Can not get Camera #%d's name.n”, i);

}

if(cam_count==0)//如果没有摄像头,返回-1return-1;

CCameraDS camera0;//产生对象,打开第一个摄像头CCameraDS camera1;//产生对象,打开第二个摄像头//if(!camera.OpenCamera(0, true))

//打开摄像头,指定摄像头0开始,参数2指示是否自动弹出摄像头属性页。if(!camera0.OpenCamera(0,false,320,240))//false不弹出属性窗,用代码制定宽和高{

fprintf(stderr, “Can not open camera 0.n”);//不成功,if(!0),执行代码return-1;

}

}if(!camera1.OpenCamera(1,false,320,240)){fprintf(stderr, “Can not open camera 1.n”);//不成功,if(!0),执行代码return-1;} cvNamedWindow(“camera1”);//创建窗口1 cvNamedWindow(“camera2”);//创建窗口2 while(1){//获取一帧IplImage *pFrame0 = camera0.QueryFrame();IplImage *pFrame1 = camera1.QueryFrame();//显示cvShowImage(“camera1”, pFrame0);cvShowImage(“camera2”, pFrame1);if(cvWaitKey(20)== 'q')//输入按键为q,breakbreak;} camera0.CloseCamera();//可不调用此函数,CCameraDS析构时会自动关闭摄像头 camera1.CloseCamera();//可不调用此函数,CCameraDS析构时会自动关闭摄像头 cvDestroyWindow(“camera1”);cvDestroyWindow(“camera2”);return 0;

调试成功,出现两个窗口和DOS命令窗。

第五篇:常见问题汇总

1.员工上个月的工资涨了,本月是否可以调整社保或公积金基数?不可以,社保基数要等

到每年4月份核定基数的时候才可以进行调整,4月份核定基数的标准是上一1月-12月的平均工资【基本工资+加班费+补发+所有的收入(除了发的实物形式的福利)—缺勤扣款】。公积金基数要每年的7月进行核定、变更。

2.如果企业员工工资是5000,企业要求按照3000上保险是否可行?可行,咱们需要告诉

客户正确的政策是按照5000元(以邮件的形式),但是如果企业不按照正确规定,要给咱们书面的通知(邮件也可以)。原则是企业告知咱们怎么操作就怎么操作。

3.外地的职工是够可以上生育保险?可以,只要提供工作居住证原件、复印件即可增加生

育保险。

4.定点医院变更:一年可以变更一次,如需要再次变更需要等到第二年。

5.户口本首页上面如果写的家庭户是否可以判定为城镇户口?不可以,家庭户要到当地的派出所开具证明户口性质的证明。因为家庭户有城镇也有农业。

6.到什么地方就医,可以报销?蓝本选定的医院、19家开放医院、专科医院

7.工伤保险的比例,是不是企业可以自行选择?不是,要根据企业的性质,在社保开户时,社保会根据企业的营业执照确定企业的缴费比例。

8.婚假能否分开休?晚婚假包含公休日和法定节假日吗?不可以分次休,包括法定节假日

和公休日。

9.员工8月入职公司,公司想补缴3-7月保险是否可以?不可以,因为补缴是针对本单位

应该为员工缴纳社保但是没有按时缴。补缴时要提供工资单的原件、复印件,由于员工3-7月不在公司发薪,无法提供社保要求的材料,而且补缴要公司承担滞纳金。

10.生完小孩后,生育保险是不是可以不再缴纳?不可以,生育保险是社保规定本市城镇的员工必须缴纳的,而且男女都要缴纳。

11.外国人可以缴纳保险吗?以前是韩国、德国可以上。韩国可以上养老、德国可以上养老、失业。其他国家只允许上工伤保险。需要提供护照的原件、复印件。但是现在有新的政策,详见《在中国境内就业的外国人参加社会保险暂行办法》。

12.如果户口性质发生变化,社保如何变更?需要提交户口本首页、本人页,身份证复印件。

13.员工社保卡丢失,怎么办理?要员工本人打96102,进行社保卡的补办业务,此项业务不

可以代办,只可以本人办理。办理完毕后,员工要上交给公司社保卡,公司会将社保卡交到社保进行关联。

14.员工的社保卡至今还未办理成功,如何查询?员工可以96102进行查询。

15.有社保卡的员工到医院就医,是否可以用蓝本,不用社保卡,或者有时候用社保卡、有

时候用蓝本?不可以,如果员工有社保卡就要一直使用社保卡,不能再使用蓝本。如果有时使用社保卡、有时候使用蓝本,社保规定使用蓝本的部分不予报销。

16.外地城镇员工在北京缴纳保险,是否可以以后在北京办理退休手续,并享受退休待遇?

可以,但是必须满足:在北京连续缴纳社保满10年。

17.办理正常退休的法定年龄:男满60周岁,社保缴费累计15年,医疗累计缴费25年。

女干部年满55周岁,社保缴费累计15年,医疗累计缴费20年。女工人年满50周岁,社保缴费累计15年,医疗累计缴费20年。

下载DirectShow常见问题[精选5篇]word格式文档
下载DirectShow常见问题[精选5篇].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    常见问题

    三、常见问题回答要点 1.顾客认为中石化加油站油价高 答:一是要强调油品质量好是中石化加油站公认的品牌优势;二是要强调中石化是世界500强,炼油设备国内一流,工艺先进,检测手段完......

    常见问题

    现将各县区在中小学教师试点工作过程中集中反映的问题及答复,整理如下,以便执行一致。有什么意见和建议,请及时反馈沟通。谢谢!1、 一级教师评审条件中要求的整本教案,订在卷里吗......

    常见问题(精选合集)

    就业工作迎查常见问题为迎接省基层公共服务平台验收小组,特拟出以下可能被问到的问题,请各乡镇(街道)人力资源和社会保障服务中心工作人员根据镇域实际,给出合情合理、切合实际的......

    常见问题

    常见问题:如果你工作和学习发生冲突会怎样做 答:绝对的冲突是不存在的,工作毕竟有工作的时间,大学里没有说一个人一天二十四小时都在工作,也不可能天天都有工作,毕竟是在学校而不......

    年休假常见问题汇总范文合集

    1、是不是只有在本单位连续工作12个月以上,才能享受年休假? 答:人力资源和社会保障部办公厅《关于〈企业职工带薪年休假实施办法〉有关问题的复函》规定:“职工连续工作满12个......

    增值税常见问题

    增值税常见问题(2013年5月) 1.一般纳税人企业取得的红字增值税专用发票是否需要认证? 答:根据《国家税务总局关于修订增值税专用发票使用规定的补充通知》(国税发〔2007〕18号)文......

    小孩常见问题

    夏以来,各大医院的儿科门诊室里排起了长队,看着被疾病折磨得筋疲力尽的宝宝,年轻的爸爸妈妈们真是又心疼又着急。夏季有一些易发于儿童的疾病,而这些病中有些因为易被忽视,所以在......

    学车常见问题[定稿]

    Q:平台报名学车有协议吗? A:有,学员一律先签订学车协议保障学员朋友的合法权益。 Q:平台缴费后可以退费吗? A:可以,但是根据学车进展程度,在您退费时会做相应的扣费未入法培的扣250元......