C++ 摄像头使QQmlApplicationEngine负载非常慢
我有一个QML前端(Ubuntu18.04上的Qt5.12)和一个QML摄像头元素(QtMultimedia 5.12),用于显示来自USB摄像头/视频抓取器的实时视频流。没有摄像头元素,应用程序工作正常。但是,在添加摄像头时,加载QQmlApplicationEngine需要几分钟(在功能强大的工作站上大约需要5分钟)。一旦应用程序启动,一切正常 我实现了这个非常基本的示例,并搜索了类似的问题,但什么也找不到。我检查了GStreamer版本,它是1.0 无论我尝试QML或QtWidget版本,相机示例都存在同样的问题 这就是我在QML文件中所做的:C++ 摄像头使QQmlApplicationEngine负载非常慢,c++,qt,qml,qtmultimedia,C++,Qt,Qml,Qtmultimedia,我有一个QML前端(Ubuntu18.04上的Qt5.12)和一个QML摄像头元素(QtMultimedia 5.12),用于显示来自USB摄像头/视频抓取器的实时视频流。没有摄像头元素,应用程序工作正常。但是,在添加摄像头时,加载QQmlApplicationEngine需要几分钟(在功能强大的工作站上大约需要5分钟)。一旦应用程序启动,一切正常 我实现了这个非常基本的示例,并搜索了类似的问题,但什么也找不到。我检查了GStreamer版本,它是1.0 无论我尝试QML或QtWidget版本,
VideoOutput {
source: camera
anchors.fill: parent
Camera {
id: camera
}
}
为了暂时解决这个问题,我尝试添加一个加载器(ApplicationWindow->StackLayout->…->加载器)。我希望除了视频流之外的所有元素都可以立即使用。然而,这只是显示应用程序窗口,没有任何内容,我仍然需要等待,直到相机加载
Loader {
id: loader
asynchronous: true
anchors.fill: parent
sourceComponent: Item {
anchors.fill: parent
Camera {
id: camera
}
VideoOutput {
source: camera
anchors.fill: parent
}
}
}
我真的很想知道为什么这里的一切都没有达到预期效果。你说的
QCamera
是什么意思?真正的QCamera
在你的项目中的某个地方,或者你是说QMLCamera
被错误地称为QCamera
?我指的是Camera QML类型。修正了问题。我有相同的设置(Qt5.12 Linux版本和Ubuntu18.04),但我使用笔记本电脑集成摄像头,加载没有问题。我想这和USB有关。我建议使用一个只有摄像头和视频输出的最小应用程序来排除QML问题。Qt使用GStreamer在Linux上处理视频输入,因此,在该项目中查找与USB摄像头相关的问题可能是一个不错的选择。你说的QCamera
是什么意思?真正的QCamera
在你的项目中的某个地方,或者你是说QMLCamera
被错误地称为QCamera
?我指的是Camera QML类型。修正了问题。我有相同的设置(Qt5.12 Linux版本和Ubuntu18.04),但我使用笔记本电脑集成摄像头,加载没有问题。我想这和USB有关。我建议使用一个只有摄像头和视频输出的最小应用程序,以排除QML问题。Qt使用GStreamer在Linux上处理视频输入,因此在该项目中查找与USB摄像头相关的问题可能是一个不错的选择。