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

5
我已经尝试了两天,但还是无法实现。基本上,我想使用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();

我原以为这基本上就是简单的记录到文件,我在析构函数中停止了录制。所以,问题是,为什么它不起作用呢?
提前感谢 :)

你有检查过 errorString() 吗?另外,为什么不使用 fromLocalFile() 呢? - László Papp
它说:服务未启动,我看到有人在教程中检查它是否已启动,但如果没有启动,我不知道该如何修复它 :/ 在实际代码中,我使用QFileDialog,这只是为了测试。 - blackwolf123333
它返回StoppedState。我在当前代码中设置了编解码器,但它并没有改变任何东西。 - blackwolf123333
你是否在录制后使用了media record的errorString()方法?你是否在开始录制后检查了camera类的errorString()方法?官方示例是否能正常工作? - László Papp
你能提供一个 GStreamer 的例子吗?看起来你的问题是与后端有关的。 - László Papp
显示剩余6条评论
1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接