65.9K
CodeProject 正在变化。 阅读更多。
Home

从各种视频设备捕获实时视频。

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.72/5 (58投票s)

2004 年 5 月 21 日

CPOL

2分钟阅读

viewsIcon

794870

downloadIcon

45182

LiveVideo 是一个从各种视频捕获设备捕获实时视频的应用程序。

Sample Image - LiveVideo.jpg

引言

这是一个尝试创建一个应用程序,该应用程序可以同时从视频捕获设备和 USB 连接的网络摄像头捕获实时视频。在开发我的项目时,我需要从包括电视在内的各种视频设备捕获视频。虽然我找到了一些捕获视频的源代码,但效率不高。因此,这促使我开发了自己的独立应用程序。最初,“LiveVideo”会检测视频捕获卡是否可用以及是否连接了网络摄像头。否则,它会显示消息。大多数 API 函数都来自 DirectX SDK。

使用步骤

  • 创建一个基于对话框的应用程序。
  • 插入一个 320x240 像素大小的图片控件。
  • 在图片控件的属性中,将TYPE设置为“Rectangle”,将COLOR设置为“Black”。
  • 将“CaptureVideo.cpp”和“CaptureDevice.h”文件添加到您的项目。
  • 将“CaptureVide.h”添加到您的实现头文件中。
  • 使用类向导创建“CCaptureVideo”类的对象。
  • 在您的项目设置中链接库 strmbasd.libwmvcore.libwmstub.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

结论

我希望这篇文章对您有所帮助。我将在下一个版本中添加视频功能的配置设置和视频质量。请随意使用这些类。欢迎任何评论或改进意见。

© . All rights reserved.