我在qt录制视频时遇到问题。如果有人知道答案或提示,我将非常高兴。 :)
我正在使用:
问题:
我按照文档(http://qt-project.org/doc/qt-5.0/qtmultimedia/cameraoverview.html)和(http://www.meetingcpp.com/index.php/br/items/recording-videos-with-qt5.html)中解释的示例进行操作,并按照以下方式执行:
m_camera = new QCamera;
m_mediaRecorder = new QMediaRecorder(m_camera);
...
...
QVideoEncoderSettings settings = m_mediaRecorder->videoSettings();
settings.setResolution(800, 600);
settings.setQuality(QMultimedia::LowQuality);
settings.setFrameRate(30.0);
m_mediaRecorder->setVideoSettings(settings);
...
m_camera->setCaptureMode(QCamera::CaptureVideo);
...
m_camera->focus();
按钮记录上的单击:
m_camera->focus();
bool ret = m_mediaRecorder->setOutputLocation(QUrl::fromLocalFile("testvideo.mp4"));
qDebug()<<"ret: "<<ret;
m_mediaRecorder->record();
按钮停止:
m_mediaRecorder->stop();
这个想法是不存在输出视频。我打印了函数m_mediaRecorder.setOutputLocation()的返回值,该函数总是返回false。该文档给出了一个示例,说明setOutputLocation如何失败(使用QUrl网络,这不是我的情况),但没有指定如何使用本地QUrl失败。我认为给出错误的路径会让mediaRecorder抱怨所以我也尝试了以下内容:
bool ret = m_mediaRecorder->setOutputLocation(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "/" + "testvideo.mp4"));
bool ret = m_mediaRecorder->setOutputLocation(QUrl("file:///path/to/my/working/directory/testvideo.mp4"));
但它也失败了:|。
有人可以帮我解决这个问题吗?非常感谢你提前!
答案 0 :(得分:2)
似乎问题是由于插件更改尚未完全实现,录制仍然无法用于Windows,如here所述
我在Mac上测试过,它工作正常。要在Windows上修复此问题,我使用了QtMEL library。