QMediaRecorder不记录任何内容
QMediaRecorder does not record anything
我有一个程序可以录制来自网络摄像头的视频。它在窗体中显示相机视图。单击开始按钮时,它应该开始录制视频,并且应该在按下停止按钮后停止。程序编译正常,但没有录制视频。谁能说它有什么问题?这是我的代码。
{
camera = new QCamera(this);
viewFinder = new QCameraViewfinder(this);
camera->setViewfinder(viewFinder);
recorder = new QMediaRecorder(camera,this);
QBoxLayout *layout = new QVBoxLayout;
layout->addWidget(viewFinder);
ui->widget->setLayout(layout);
QVideoEncoderSettings settings = recorder->videoSettings();
settings.setResolution(640,480);
settings.setQuality(QMultimedia::VeryHighQuality);
settings.setFrameRate(30.0);
//settings.setCodec("video/mp4");
recorder->setVideoSettings(settings);
recorder->setContainerFormat("mp4");
camera->setCaptureMode(QCamera::CaptureVideo);
camera->start();
}
void usbrecorder::on_btn_Record_clicked()
{
usbrecorder::startRecording();
}
void usbrecorder::on_btn_Stop_clicked()
{
usbrecorder::stopRecording();
}
void usbrecorder::startRecording()
{
recorder->setOutputLocation(QUrl::fromLocalFile("C:\Users\Stranger\Downloads\Video\vidoe_001.mp4"));
recorder->record();
}
void usbrecorder::stopRecording()
{
recorder->stop();
}
这是
由于Windows的限制。
如Qt文档中所述:https://doc.qt.io/qt-5/qtmultimedia-windows.html#limitations
目前不支持视频录制。此外,DirectShow 插件不支持任何低级视频功能,例如监控使用 QVideoProbe 或相关类播放或录制的视频帧。
您需要指定输出位置:
QMediaRecorder::setOutputLocation(const QUrl& location)
例如
setOutputLocation(QUrl("file:///home/user/vid.mp4"));
尝试打印状态、状态和错误消息:
qDebug()<<record.state();
qDebug()<<record.status();
qDebug()<<record.error();
看看它打印了什么。通过这些消息,您可以清楚地了解您的问题。也许QMediaRecorder无法访问您的相机。
相关文章:
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- std::任何只用于移动的模板,其中副本ctor内的static_assert等于编译错误,但为什么
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- "... already defined in *.obj"但我没有在同一范围内两次定义任何变量
- C++ 中是否有任何内置阶乘函数?
- 如何在C++中接收任何类型的函数参数并获取函数内传递变量的类型?
- 是否有任何内置函数可以告诉编译器分支是否可预测
- 套接字记录未读取任何消息
- 调用向量内的函数指针不执行任何操作
- 我需要在C /C#中使用图形.我可以使用任何内置的C /C#库
- 是否有任何内置类可以处理C 中的大整数值
- 如何使用BOOST_LOG_TRIVIAL宏将任何内容记录到标准输出/标准和文件
- c ++中是否有任何内置功能可以在计划的时间运行任务
- 是否有任何内置的 UTF 在 c++ 在窗口中
- 在VC++2010中执行任何内置的ARRAY函数
- C++:如何在不使用任何内置函数的情况下将字符串转换为整数
- 是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
- 我如何在常数时间(O(1))内获得字母表(1-26)中字符的数值/位置,而不使用任何内置方法或函数
- C++中的任何内置哈希方法
- c++库中的任何内置夹子方法