我有一个QML前端(在Ubuntu 18.04上为Qt 5.12)和一个QML Camera元素(QtMultimedia 5.12),用于显示来自USB摄像机/视频采集卡的视频实时流。没有Camera元素,该应用程序可以正常运行。但是,添加相机时,加载QQmlApplicationEngine需要几分钟(在功能强大的工作站上大约需要5分钟)。应用程序启动后,一切正常。
我实现了非常基本的示例,并搜索了类似的问题,但找不到任何东西。我检查了GStreamer版本1.0。
无论我尝试使用QML还是QtWidget版本,Camera示例都存在相同的问题。
这就是我在QML文件中所做的事情
VideoOutput {
source: camera
anchors.fill: parent
Camera {
id: camera
}
}
为了暂时解决该问题,我尝试添加一个加载器(ApplicationWindow-> StackLayout-> ...-> Loader)。我希望除视频流外的所有其他元素都可以立即使用。但是,这只显示了ApplicationWindow,没有任何内容,我仍然需要等待,直到加载Camera。
Loader {
id: loader
asynchronous: true
anchors.fill: parent
sourceComponent: Item {
anchors.fill: parent
Camera {
id: camera
}
VideoOutput {
source: camera
anchors.fill: parent
}
}
}
我真的很想知道为什么这里没有按预期工作。