私は 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
.