Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. gstramer error when second video recording attemp at qml camera
Forum Updated to NodeBB v4.3 + New Features

gstramer error when second video recording attemp at qml camera

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
6 Posts 2 Posters 349 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    Laikas
    wrote on last edited by Laikas
    #1

    Hello, I thought the camera, video recording and photo taking application that I made was working without any problems, but when I try to record video through the application for the second time, I get an error like the following. Can someone help me out with this error?

    I can view the videos and photos I took on the application without any problem.

    Hardware features

    • Rasberry Pi 3 B+
    • Buildroot 2020.02.9 version
    • Qt 5.15.2
    • Qt Creator 4.14.0

    hata2.PNG

    **The code below is my test code **

    import QtQuick 2.12
    import QtQuick.Window 2.12
    import QtMultimedia 5.12
    import QtQuick.Controls 2.12
    import QtQuick.Controls.Styles 1.4
    import Qt.labs.folderlistmodel 2.12
    
    //import "qrc:/TestGrid.qml"
    
    Window {
        id: root
        width: 800
        height: 480
        visible: true
        title: qsTr("v1.0")
    
        property int i: 0
    
        //MainPage
        Item{
    
            id:pageMain
            width: root.width
            height: root.height
            visible: true
    
            x:0
            y:0
            z:0
    
            Camera{
                id: camera
                captureMode: Camera.CaptureVideo
                flash.mode: Camera.FlashOff
    
                videoRecorder{
    
                    outputLocation: "/root"
                    mediaContainer: "video/mpeg, mpegversion=(int)4"
                    videoCodec: "video/mpeg, mpegversion=(int)4"
                    //outputLocation: "file:///root/rec"+i+".mp4"
                    resolution: "640x480"
                    frameRate: 30
    
    
                    muted: true
    
                    onErrorStringChanged: {
                        console.log(("Error: "+camera.videoRecorder.errorString))
                    }
    
                    onRecorderStatusChanged: {
    
                        console.log("Status: "+camera.videoRecorder.recorderStatus)
                    }
    
                    onRecorderStateChanged: {
    
                        console.log("State: "+camera.videoRecorder.recorderState)
                    }
    
                    onMediaContainerChanged: {
                        console.log(camera.videoRecorder.mediaContainer)
                                        }
    
                    onActualLocationChanged:{
                        console.log(camera.videoRecorder.actualLocation)
                                        }
                }
            }
    
            VideoOutput{
                id: videoOutput
                source: camera
                anchors.fill: parent
                focus: visible
                fillMode: VideoOutput.Stretch
            }
    
            //CaptureButton
            Button{
                x:50
                y:390
    
                palette {
                    button: "#00000000"
                }
    
                icon: {
                   icon.source="qrc:/images/camera_icon.png"
                   icon.width=100
                   icon.height=100
                }
    
                onPressed: {
                    camera.captureMode= Camera.CaptureStillImage
                    icon.source = "qrc:/images/pause_icon.png"
                    console.log("btnCaptureOn Click");
                }
    
                onReleased: {
                    if( camera.cameraState !== Camera.ActiveState){
                        camera.start()
                    }
    
                    camera.imageCapture.capture()
    
                    icon.source = "qrc:/images/camera_icon.png"
                    console.log("btnCaptureOff Click");
                }
            }
    
            //RecordButton
            Button{
    
                property bool stateToggle: false
                x:670
                y:390
    
                palette {
                    button: "#00000000"
                }
    
                icon: {
                   icon.source="qrc:/images/record_icon.png"
                   icon.width=100
                   icon.height=100
                }
    
                onClicked: {
                    if(!stateToggle){
    
                        /*if( camera.captureMode != Camera.CaptureVideo ){
                            camera.captureMode= Camera.CaptureVideo
                        }
    
                        if( camera.cameraState != Camera.ActiveState){
                            camera.start()
                            console.log("girdi toogle Start")
                        }*/
    
    
                        camera.start()
                        camera.captureMode= Camera.CaptureVideo
    
                        camera.videoRecorder.setMetadata("Date", new Date())
                        camera.videoRecorder.setMetadata("Title", "hb"+i++)
    
                        mTimer.start()
    
                        icon.source = "qrc:/images/pause_icon.png"
                        ceylanFile.ceylanLog("Record Start");
    
                        stateToggle = true;
                    }else{
    
                        camera.videoRecorder.setRecorderState(CameraRecorder.StoppedState)
                        camera.stop()
                        //i++;
                        //camera.videoRecorder.outputLocation= "file:///root/rec"+i+".mpeg"
    
                        icon.source = "qrc:/images/record_icon.png"
                        ceylanFile.ceylanLog("Record Stop");
    
                        stateToggle = false;
                    }
                }
            }
    
            Button{
                x:10
                y:10
    
                palette {
                    button: "#00000000"
                }
    
                icon: {
                   icon.source="qrc:/images/file_icon.png"
                   icon.width=68
                   icon.height=53
                }
    
                onClicked: {
                    pageSettings.visible=true
                    pageMain.visible=false
                    console.log("btnPageOpen Click");
                }
            }
    
            Timer{
                id:mTimer
                running: false
                interval: 1000
    
                onTriggered: {
    
                    camera.videoRecorder.record()
    
                    console.log("geldi")
                    mTimer.stop()
                }
            }
        }
    

    Below are the debug outputs of the program while it is running.

    hata1.PNG

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi and welcome to devnet,

      I haven't used that component yet but why don't you use the its stop method ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • L Offline
        L Offline
        Laikas
        wrote on last edited by
        #3

        "camera.videoRecorder.stop()" I tried this too but again the result is the same
        I've been trying different methods to fix the problem so I removed "videoRecord.stop".

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          Did you try the Declarative Camera example to see if it shows the same behaviour ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • L Offline
            L Offline
            Laikas
            wrote on last edited by Laikas
            #5

            Camera Example
            This application fails while taking video.
            How can I do a more detailed error analysis?
            I will be glad if you tell me where to look.

            In addition I got an error like this.

            hata3.PNG

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #6

              That looks like a kernel issue.

              Do you have a different camera to test ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0

              • Login

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Users
              • Groups
              • Search
              • Get Qt Extensions
              • Unsolved