Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 摄像头使QQmlApplicationEngine负载非常慢_C++_Qt_Qml_Qtmultimedia - Fatal编程技术网

C++ 摄像头使QQmlApplicationEngine负载非常慢

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版本,

我有一个QML前端(Ubuntu18.04上的Qt5.12)和一个QML摄像头元素(QtMultimedia 5.12),用于显示来自USB摄像头/视频抓取器的实时视频流。没有摄像头元素,应用程序工作正常。但是,在添加摄像头时,加载QQmlApplicationEngine需要几分钟(在功能强大的工作站上大约需要5分钟)。一旦应用程序启动,一切正常

我实现了这个非常基本的示例,并搜索了类似的问题,但什么也找不到。我检查了GStreamer版本,它是1.0

无论我尝试QML或QtWidget版本,相机示例都存在同样的问题

这就是我在QML文件中所做的:

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
在你的项目中的某个地方,或者你是说QML
Camera
被错误地称为
QCamera
?我指的是Camera QML类型。修正了问题。我有相同的设置(Qt5.12 Linux版本和Ubuntu18.04),但我使用笔记本电脑集成摄像头,加载没有问题。我想这和USB有关。我建议使用一个只有摄像头和视频输出的最小应用程序来排除QML问题。Qt使用GStreamer在Linux上处理视频输入,因此,在该项目中查找与USB摄像头相关的问题可能是一个不错的选择。你说的
QCamera
是什么意思?真正的
QCamera
在你的项目中的某个地方,或者你是说QML
Camera
被错误地称为
QCamera
?我指的是Camera QML类型。修正了问题。我有相同的设置(Qt5.12 Linux版本和Ubuntu18.04),但我使用笔记本电脑集成摄像头,加载没有问题。我想这和USB有关。我建议使用一个只有摄像头和视频输出的最小应用程序,以排除QML问题。Qt使用GStreamer在Linux上处理视频输入,因此在该项目中查找与USB摄像头相关的问题可能是一个不错的选择。