Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用Qt5从网络摄像头录制视频_C++_Qt_Video_Video Capture - Fatal编程技术网

C++ 使用Qt5从网络摄像头录制视频

C++ 使用Qt5从网络摄像头录制视频,c++,qt,video,video-capture,C++,Qt,Video,Video Capture,我已经试着让它工作了两天了,现在我绝望了。基本上我想用我的网络摄像头用Qt5录制视频。到目前为止,我可以得到一个小部件来显示网络摄像头看到的内容,但由于某种原因,每当我尝试使用QMediaRecorder类记录它时,它不会将任何内容保存到outputLocation 输出文件已创建,但包含0字节。我尝试过使用视频编解码器的设置,但仍然没有成功。我认为像这样的简单代码可以工作: QCamera *camera = new QCamera(QCameraInfo::availableCame

我已经试着让它工作了两天了,现在我绝望了。基本上我想用我的网络摄像头用Qt5录制视频。到目前为止,我可以得到一个小部件来显示网络摄像头看到的内容,但由于某种原因,每当我尝试使用QMediaRecorder类记录它时,它不会将任何内容保存到outputLocation

输出文件已创建,但包含0字节。我尝试过使用视频编解码器的设置,但仍然没有成功。我认为像这样的简单代码可以工作:

    QCamera *camera = new QCamera(QCameraInfo::availableCameras().at(0));
    QCameraViewfinder *viewFinder = new QCameraViewfinder(this);
    camera->setViewfinder(viewFinder);
    ui->verticalLayout->addWidget(viewFinder);

    recorder = new QMediaRecorder(camera);
    recorder->setOutputLocation(QUrl(QString("/home/user/test.mp4"))); // removed my name

    camera->setCaptureMode(QCamera::CaptureVideo);
    camera->start();
    recorder->record();
我希望这基本上是它的简单记录到一个文件。我在析构函数里停止了录音。所以,问题是,为什么这不起作用


提前感谢:)

如果您使用的是Windows平台,那么这个问题仅仅是因为Qt不支持Windows的视频录制。看看这个

解决方法是使用此第三方库
我希望Qt能尽快对此采取行动。祝你好运

您检查过errorString()了吗?还有,为什么不使用fromLocalFile?上面写着:服务还没有启动,我看到有人在教程中检查它是否启动过,但如果没有,我不知道如何修复它:/在实际代码中,我使用QFileDialog,这只是为了测试。你能检查state()方法吗?那么它是否返回停止状态?顺便说一句,为什么不设置编解码器?它返回StoppedState。我在当前代码中设置了编解码器,但它不会改变任何东西。以防万一,您会在录制后为媒体录制放置errorString()?启动后,您是否也检查了camera类上的errorString()方法?官方的例子对你有用吗?