Qt запись видео с использованием QMediaRecorder не работает

У меня проблема с записью видео в QT. Я буду очень рад, если кто-то знает ответ или дает подсказку. 🙂

Я использую:

  1. Windows 7 64bit
  2. QT 5.1.1
  3. MSVC 2010 32bit с OpenGL

Эта проблема:

Я следовал примеру, описанному в документации (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"));

но это также не помогает:

Может кто-нибудь помочь мне с этой проблемой? Заранее большое спасибо!

2

Решение

Кажется, проблема в том, что запись все еще не работает для окон из-за смены плагина, которая еще не полностью реализована, как объяснено Вот

Я проверил его на Mac, и он работал нормально. Чтобы исправить это на окнах, я использовал Библиотека QtMEL.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]