4

私は Qt マルチメディア フレームワークを使用しており、次のように QML と Camera モジュールを使用してウィンドウにビデオを表示できます。

ControlView {
    id: recorderWindow
    color: "#000000"
    border.width: 5

    Camera {
        id: camera
        captureMode: Camera.CaptureVideo
        videoRecorder.mediaContainer: "mp4"
    }
    VideoOutput {
        source: camera
        focus: visible
        anchors.fill: parent
        MouseArea {
            anchors.fill: parent;
            onClicked: {
                camera.videoRecorder.record();
            }
        }
    }
}

Ubuntu 14.04 (nvidia Jetson) を実行している ARM ベースのプロセッサでこれを実行しています。

さて、私の問題は、ビデオを録画すると、UI のプレビューが完全に停止することです。さらに、録画されたビデオは多くのフレームをドロップします。私が気づいたことの 1 つは、指定されoggたコンテナーではなく、常にコンテナーを使用することです。mp4

gstreamer を使用すると、表示と記録を同時に問題なく実行できます。

gst-launch-1.0 -v autovideosrc ! tee name = t ! queue ! omxh264enc ! 
'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux 
! filesink location=test.mp4 t. ! queue ! videoscale ! video/x-raw, 
width=480,height=270 ! xvimagesink -e sync=false

Camera モジュールと QML を使用して同様のパイプラインを作成することは可能でしょうか (これらは gstreamer に基づいていると思います)。

編集:

設定してみvideoRecorder.videoCodec: "video/x-h264"ましたが、効果がないようです。エンコーディングは引き続きTheora.

4

0 に答える 0