import QtQuick 2.0 import QtMultimedia 5.0 Rectangle { width: 640 height: 480 VideoOutput { id: viewFinder anchors.fill: parent source: cam } Camera { id: cam captureMode: Camera.CaptureVideo videoRecorder { videoCodec: "video/x-theora" audioCodec: "audio/x-vorbis" //audioEncodingMode: CameraRecorder.ConstantBitRateEncoding //audioSampleRate: 44100 //audioBitRate: 80000 //audioChannels: 2 mediaContainer: "application/ogg" //videoEncodingMode: CameraRecorder.AverageBitRateEncoding //videoEncodingMode: CameraRecorder.ConstantBitRateEncoding //videoBitRate: 25 //frameRate: 25 resolution: "1280x1024" onRecorderStatusChanged: { switch (videoRecorder.recorderStatus) { case CameraRecorder.UnavailableStatus: console.log("ST: UnavailableStatus"); break; case CameraRecorder.UnloadedStatus: console.log("ST: UnloadedStatus"); break; case CameraRecorder.LoadingStatus: console.log("ST: LoadingStatus"); break; case CameraRecorder.LoadedStatus: console.log("ST: LoadedStatus"); break; case CameraRecorder.StartingStatus: console.log("ST: StartingStatus"); break; case CameraRecorder.RecordingStatus: console.log("ST: RecordingStatus"); console.log("videoBitRate:" + videoRecorder.videoBitRate + " videoEncodingMode=" + videoRecorder.videoEncodingMode + " resolution=" + videoRecorder.resolution + " audioBitRate=" + videoRecorder.audioBitRate + " audioEncodingMode=" + videoRecorder.audioEncodingMode + " audioSampleRate=" + videoRecorder.audioSampleRate); break; case CameraRecorder.PausedStatus: console.log("ST: PausedStatus"); break; case CameraRecorder.FinalizingStatus: console.log("ST: FinalizingStatus"); console.log("videoBitRate:" + videoRecorder.videoBitRate + " videoEncodingMode=" + videoRecorder.videoEncodingMode + " resolution=" + videoRecorder.resolution + " audioBitRate=" + videoRecorder.audioBitRate + " audioEncodingMode=" + videoRecorder.audioEncodingMode + " audioSampleRate=" + videoRecorder.audioSampleRate); console.log("FrameRate:" + frameRate); break; default: console.log("ST: Unknown: ", videoRecorder.recorderStatus); break; } } } } Component.onCompleted: { cam.start() // test.listCodecs(cam); } MouseArea { anchors.fill: parent onClicked: { if (cam.videoRecorder.recorderStatus == CameraRecorder.LoadedStatus) { cam.videoRecorder.record(); //test.listCodecs(cam) } else { cam.videoRecorder.stop(); //test.listCodecs(cam) } } } }