我有一个startech composite to usb video grabber连接到一个小型安全摄像头,我想用它来捕获自定义Windows应用程序的视频。我使用MFCaptureToFile作为一个例子来学习如何在Visual Studio中使用C ++实现这一目的。
示例代码在我的Windows 7设置上构建并运行正常,并且使用cheapo logitech usb webcam正常运行,但不能使用我的小安全凸轮+视频采集装置。但是,相机在Windows中可以正常工作。我可以使用其他应用程序(使用EmbarcaderoXE / borland / vcl基于视频抓取堆栈编写的其他自定义应用程序)可以正常工作。
当我打破回调函数时:
HRESULT CCapture::OnReadSample(
HRESULT hrStatus,
DWORD /*dwStreamIndex*/,
DWORD /*dwStreamFlags*/,
LONGLONG llTimeStamp,
IMFSample *pSample // Can be NULL
)
使用罗技凸轮,hrStatus
为S_OK
(应该如此)。当我使用startech设备时,它是-1072875772
,它是十六进制的FFFFFFFFC00D3704
和一个人类可读的unicode格式的汉字字符串。所以这没什么帮助。
由Mike Vine首次评论编辑: 实际上,代码代表MF_E_HW_MFT_FAILED_START_STREAMING。为什么会失败?
基于EmbarcaderXE的视频抓取应用程序,我使用VCL作为后端,我读过这与视觉工作室不兼容?由于各种原因,我需要在VS中执行此操作。