我要播放流视频。
服务器是使用ffserver配置的。
ffplay运行正常
ffplay http://192.168.0.122:8090/camera2.mjpeg
OpenCV示例很好。
int main(int argc, char *argv[])
{
cv::Mat frame;
cv::VideoCapture cap = cv::VideoCapture("http://192.168.0.122:8090/camera2.mjpeg");
if (!cap.isOpened()) {
return -1;
}
while (1)
{
cap >> frame;
imshow("video", frame);
if (cv::waitKey(1) == 27) break;
}
return 0;
}
但是在Qt VideoPlayer中,示例不起作用。
它仅在Windows上不起作用。
在Ubuntu上运行良好。
在VideoWidget中,其修改如下。
void VideoPlayer::openFile()
{
#if 0
QFileDialog fileDialog(this);
fileDialog.setAcceptMode(QFileDialog::AcceptOpen);
fileDialog.setWindowTitle(tr("Open Movie"));
QStringList supportedMimeTypes = m_mediaPlayer->supportedMimeTypes();
if (!supportedMimeTypes.isEmpty())
fileDialog.setMimeTypeFilters(supportedMimeTypes);
fileDialog.setDirectory(QStandardPaths::standardLocations(QStandardPaths::MoviesLocation).value(0, QDir::homePath()));
if (fileDialog.exec() == QDialog::Accepted)
setUrl(fileDialog.selectedUrls().constFirst());
#endif
setUrl(QUrl("http://192.168.0.122:8090/camera2.mjpeg"));
}
qmediaplayer对象没有有效的服务。
在Windows中需要一个特殊的库吗? 让我知道我有什么问题。
PS。
文件正在工作
mediaPlayer =新的QMediaPlayer(this,QMediaPlayer :: StreamPlayback);是相同的结果