因为项目需要,从某宝采购了一个pipivision HDMI采集卡,该采集卡为USB3.0接口,支持HDMI输入和环出,还有混音功能,以下是示例源码下载链接。
查看QT示例源码,在文件DevManager.h中包装了设备的很多操作,使用起来非常方便,我们只需要把源文件DevManager.cpp添加到工程并包含该头文件即可,内部的层次结构如下图所示
要操作对应的设备,我们先在自定义的类里面声明一个对象:
CDevSDK dev;
然后在自定义类的构造函数初始化列表中初始化对象时打开第0个采集卡:
dev(0)
如果设备打开成功我们就启动该设备
if (dev) dev.DeviceStart();
开启视频预览,在窗口showEvent事件处理函数中添加代码,把显示视频控件的句柄传进去即可
dev.PreviewStart(reinterpret_cast< HWND >(ui->video->winId()));
编译运行,哈哈,视频是不是就出来了?
短短几句代码就实现了采集视频预览,而且支持在Windows/Linux上跨平台使用,可以说确实是惨无人道,不过我喜欢,嘿嘿
部分代码如下
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::Dialog)
, dev(0) // open device 0
{
ui->setupUi(this);
if (dev)
{
dev.DeviceStart();
}
}
void Dialog::showEvent(QShowEvent *event)
{
if (dev)
{
dev.PreviewStart(reinterpret_cast< HWND >(ui->video->winId()));
}
}
Dialog::~Dialog()
{
dev.DeviceClose();
delete ui;
}