DirectXVisual C++ 7.1Visual Studio 6Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XPMFC中级开发Visual StudioWindowsC++
从各种视频设备捕获实时视频。






4.72/5 (58投票s)
LiveVideo 是一个从各种视频捕获设备捕获实时视频的应用程序。
引言
这是一个尝试创建一个应用程序,该应用程序可以同时从视频捕获设备和 USB 连接的网络摄像头捕获实时视频。在开发我的项目时,我需要从包括电视在内的各种视频设备捕获视频。虽然我找到了一些捕获视频的源代码,但效率不高。因此,这促使我开发了自己的独立应用程序。最初,“LiveVideo”会检测视频捕获卡是否可用以及是否连接了网络摄像头。否则,它会显示消息。大多数 API 函数都来自 DirectX SDK。
使用步骤
- 创建一个基于对话框的应用程序。
- 插入一个 320x240 像素大小的图片控件。
- 在图片控件的属性中,将
TYPE
设置为“Rectangle”,将COLOR
设置为“Black”。 - 将“CaptureVideo.cpp”和“CaptureDevice.h”文件添加到您的项目。
- 将“CaptureVide.h”添加到您的实现头文件中。
- 使用类向导创建“
CCaptureVideo
”类的对象。 - 在您的项目设置中链接库 strmbasd.lib、wmvcore.lib、wmstub.lib。
现在,使用该对象,调用InitializeVideo(HWND hWnd)
函数来初始化视频。
HRESULT hr = capVideo.InitializeVideo(hWnd);
其中hWnd
是图片控件的窗口句柄。
StartSVideo()
- 从 SVideo 开始捕获。StartCompositeVideo()
- 从复合视频开始捕获。StartTVTuner()
- 从 TVTuner 开始捕获。StartWebcam()
- 从网络摄像头开始捕获。
重要
在销毁您的应用程序之前,不要忘记使用UnInitializeVideo()
取消初始化视频。
要求
- 视频捕获卡。我已经使用“WinFast TV2000 XP WDM Video Capture”卡进行了测试。希望它适用于所有视频捕获卡。
- USB 摄像头。
- 您需要安装 DirectX,可以从 Microsoft 免费获得。您可以从 Microsoft 下载DirectX 9.0。
- 对于开发,请安装 DirectX 9.0 SDK。您可以从 Microsoft 下载 DirectX 9.0 SDK。
结论
我希望这篇文章对您有所帮助。我将在下一个版本中添加视频功能的配置设置和视频质量。请随意使用这些类。欢迎任何评论或改进意见。