QML中的一个源,两个视频输出

One source, two video output in QML

我需要在 VideoOutput 组件中分别显示原始视频和预处理视频(来自单一来源)。但是,只有一个 VideoOutputs 显示来源!似乎一次只有一个输出可以有源。这是我的代码:

import QtMultimedia 5.9

Item {
    
    // ...
    
    Camera {
        id: camera
    }
    
    VideoOutput {
        id: videooutput1
        source: camera
        // ...
    }
    
    VideoOutput {
        id: videooutput2
        source: camera
        // ...
    }

}

有没有办法在多个视频输出之间共享一个源?还是我遗漏了什么?

您可以使用 ShaderEffectSource 复制 QML 项目:

Item {

// ...

Camera {
    id: camera
}

VideoOutput {
    id: videooutput1
    source: camera
    // ...
}

ShaderEffectSource {
    id: videooutput2
    sourceItem: videooutput1
}

}

另一种方案如下(我个人更喜欢这种方案):

Item {
    MediaPlayer {
        id: mediaplayer
        autoPlay: true
        source: "url to your source"
        videoOutput: [videooutput1, videooutput2]
    }

    VideoOutput {
        id: videooutput1
        anchors.fill: parent
    }

    Window {
        visible: true
        width: 480; height: 320
        VideoOutput {
            id: videooutput2
            anchors.fill: parent
        }
    }
}

这里是link:https://codereview.qt-project.org/c/qt/qtmultimedia/+/279603/12/src/multimedia/doc/snippets/multimedia-snippets/multiple-videooutputs.qml]