Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. A camera problem.
Forum Updated to NodeBB v4.3 + New Features

A camera problem.

Scheduled Pinned Locked Moved Unsolved General and Desktop
91 Posts 7 Posters 17.4k Views 2 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.
  • J Offline
    J Offline
    jenya7
    wrote on last edited by jenya7
    #1

    I want to work with a camera on my board.
    I include in a pro file

    QT += multimedia multimediawidgets
    

    But when I include

    #include <QMediaService>
    #include <QMediaRecorder>
    #include <QCameraViewfinder>
    #include <QCameraInfo>
    #include <QMediaMetaData>
    

    I get - file not found on all these files.
    It happens on Linux installation, on Windows it's OK.

    Should I install additional libraries on Linux?

    JonBJ 1 Reply Last reply
    0
    • J jenya7

      I want to work with a camera on my board.
      I include in a pro file

      QT += multimedia multimediawidgets
      

      But when I include

      #include <QMediaService>
      #include <QMediaRecorder>
      #include <QCameraViewfinder>
      #include <QCameraInfo>
      #include <QMediaMetaData>
      

      I get - file not found on all these files.
      It happens on Linux installation, on Windows it's OK.

      Should I install additional libraries on Linux?

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #2

      @jenya7 How did you do the Linux installation, did you include the multimedia libraries?

      J 1 Reply Last reply
      0
      • JonBJ JonB

        @jenya7 How did you do the Linux installation, did you include the multimedia libraries?

        J Offline
        J Offline
        jenya7
        wrote on last edited by
        #3

        @JonB said in A camera problem.:

        @jenya7 How did you do the Linux installation, did you include the multimedia libraries?

        this is a log
        sudo apt-get update
        sudo apt-get upgrade

        //Buster
        sudo apt-get install qt5-default
        //Bullseye
        //sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
        sudo apt-get install qtcreator
        sudo apt-get install qtdeclarative5-dev
        sudo apt-get install qtconnectivity5-dev //for bluetooth
        sudo apt-get install qtbase5-examples
        sudo apt-get install qtbase5-doc-html
        To upgrade
        sudo apt-get install qt5-qmake
        //for Debian ?
        qtbase5-dev
        qtchooser
        qt5-qmake
        qtbase5-dev-tools

        Can't see explicit multimedia installation? should I add? how it would be?

        JonBJ 1 Reply Last reply
        0
        • J jenya7

          @JonB said in A camera problem.:

          @jenya7 How did you do the Linux installation, did you include the multimedia libraries?

          this is a log
          sudo apt-get update
          sudo apt-get upgrade

          //Buster
          sudo apt-get install qt5-default
          //Bullseye
          //sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
          sudo apt-get install qtcreator
          sudo apt-get install qtdeclarative5-dev
          sudo apt-get install qtconnectivity5-dev //for bluetooth
          sudo apt-get install qtbase5-examples
          sudo apt-get install qtbase5-doc-html
          To upgrade
          sudo apt-get install qt5-qmake
          //for Debian ?
          qtbase5-dev
          qtchooser
          qt5-qmake
          qtbase5-dev-tools

          Can't see explicit multimedia installation? should I add? how it would be?

          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by
          #4

          @jenya7
          After typing apt-get install followed by qt or qt5 did you press the Tab key (twice)?

          J 1 Reply Last reply
          1
          • JonBJ JonB

            @jenya7
            After typing apt-get install followed by qt or qt5 did you press the Tab key (twice)?

            J Offline
            J Offline
            jenya7
            wrote on last edited by
            #5

            @JonB said in A camera problem.:

            @jenya7
            After typing apt-get install followed by qt or qt5 did you press the Tab key (twice)?

            thank you
            sudo apt-get install qtmultimedia5-dev
            it works. now all libraries are available.

            1 Reply Last reply
            2
            • J Offline
              J Offline
              jenya7
              wrote on last edited by jenya7
              #6

              This is my constructor

              Camera::Camera(QObject *parent) : QObject(parent)
              {
                  //Camera devices:
              
                  QActionGroup *videoDevicesGroup = new QActionGroup(this);
                  videoDevicesGroup->setExclusive(true);
                  const QList<QCameraInfo> availableCameras = QCameraInfo::availableCameras();
                  for (const QCameraInfo &cameraInfo : availableCameras)
               {
                      QAction *videoDeviceAction = new QAction(cameraInfo.description(), videoDevicesGroup);
                      videoDeviceAction->setCheckable(true);
                      videoDeviceAction->setData(QVariant::fromValue(cameraInfo));
                      if (cameraInfo == QCameraInfo::defaultCamera())
                          videoDeviceAction->setChecked(true);
                  }
              
                  connect(videoDevicesGroup, &QActionGroup::triggered, this, &Camera::updateCameraDevice);
              
                  setCamera(QCameraInfo::defaultCamera());
              }
              

              On availableCameras I get <0 items>.

              If I check the camera is alive
              raspistill -o Desktop/image.jpg
              it appears and I see a snapshot on the desktop.

              Does the library work with a Raspberry Pi camera at all? May be I'm beating a dead horse?

              jsulmJ 1 Reply Last reply
              0
              • J jenya7

                This is my constructor

                Camera::Camera(QObject *parent) : QObject(parent)
                {
                    //Camera devices:
                
                    QActionGroup *videoDevicesGroup = new QActionGroup(this);
                    videoDevicesGroup->setExclusive(true);
                    const QList<QCameraInfo> availableCameras = QCameraInfo::availableCameras();
                    for (const QCameraInfo &cameraInfo : availableCameras)
                 {
                        QAction *videoDeviceAction = new QAction(cameraInfo.description(), videoDevicesGroup);
                        videoDeviceAction->setCheckable(true);
                        videoDeviceAction->setData(QVariant::fromValue(cameraInfo));
                        if (cameraInfo == QCameraInfo::defaultCamera())
                            videoDeviceAction->setChecked(true);
                    }
                
                    connect(videoDevicesGroup, &QActionGroup::triggered, this, &Camera::updateCameraDevice);
                
                    setCamera(QCameraInfo::defaultCamera());
                }
                

                On availableCameras I get <0 items>.

                If I check the camera is alive
                raspistill -o Desktop/image.jpg
                it appears and I see a snapshot on the desktop.

                Does the library work with a Raspberry Pi camera at all? May be I'm beating a dead horse?

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #7

                @jenya7 I think you will also need to install GStreamer plug-ins. On Linux Qt uses GStreamer for multimedia.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                J 1 Reply Last reply
                0
                • jsulmJ jsulm

                  @jenya7 I think you will also need to install GStreamer plug-ins. On Linux Qt uses GStreamer for multimedia.

                  J Offline
                  J Offline
                  jenya7
                  wrote on last edited by
                  #8

                  @jsulm said in A camera problem.:

                  @jenya7 I think you will also need to install GStreamer plug-ins. On Linux Qt uses GStreamer for multimedia.

                  when I run
                  dpkg -l | grep gstreamer
                  I see gstreamer installed.

                  jsulmJ 1 Reply Last reply
                  0
                  • J jenya7

                    @jsulm said in A camera problem.:

                    @jenya7 I think you will also need to install GStreamer plug-ins. On Linux Qt uses GStreamer for multimedia.

                    when I run
                    dpkg -l | grep gstreamer
                    I see gstreamer installed.

                    jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    @jenya7 said in A camera problem.:

                    I see gstreamer installed

                    What exactly is installed? There are many GStreamer plug-ins which may be needed.

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    J 1 Reply Last reply
                    0
                    • jsulmJ jsulm

                      @jenya7 said in A camera problem.:

                      I see gstreamer installed

                      What exactly is installed? There are many GStreamer plug-ins which may be needed.

                      J Offline
                      J Offline
                      jenya7
                      wrote on last edited by
                      #10

                      @jsulm said in A camera problem.:

                      @jenya7 said in A camera problem.:

                      I see gstreamer installed

                      What exactly is installed? There are many GStreamer plug-ins which may be needed.

                      this is the list

                      ii  gstreamer1.0-alsa:armhf               1.14.4-2+deb10u1                        armhf        GStreamer plugin for ALSA
                      ii  gstreamer1.0-gtk3:armhf               1.14.4-1+rpt1+deb10u1                   armhf        GStreamer plugin for GTK+3
                      ii  gstreamer1.0-libav:armhf              1.15.0.1+git20180723+db823502-2+deb10u1 armhf        libav plugin for GStreamer
                      ii  gstreamer1.0-omx                      1.14.4-1+rpt1                           armhf        GStreamer OpenMAX plugins
                      ii  gstreamer1.0-omx-rpi                  1.14.4-1+rpt1                           armhf        OpenMax plugins for GStreamer
                      ii  gstreamer1.0-omx-rpi-config           1.14.4-1+rpt1                           armhf        OpenMax plugins for GStreamer
                      ii  gstreamer1.0-plugins-bad:armhf        1.14.4-1+rvt+deb10u2                    armhf        GStreamer plugins from the "bad" set
                      ii  gstreamer1.0-plugins-base:armhf       1.14.4-2+deb10u1                        armhf        GStreamer plugins from the "base" set
                      ii  gstreamer1.0-plugins-good:armhf       1.14.4-1+rpt1+deb10u1                   armhf        GStreamer plugins from the "good" set
                      ii  gstreamer1.0-x:armhf                  1.14.4-2+deb10u1                        armhf        GStreamer plugins for X11 and Pango
                      ii  libgstreamer-gl1.0-0:armhf            1.14.4-2+deb10u1                        armhf        GStreamer GL libraries
                      ii  libgstreamer-plugins-bad1.0-0:armhf   1.14.4-1+rvt+deb10u2                    armhf        GStreamer libraries from the "bad" set
                      ii  libgstreamer-plugins-base1.0-0:armhf  1.14.4-2+deb10u1                        armhf        GStreamer libraries from the "base" set
                      ii  libgstreamer1.0-0:armhf               1.14.4-1                                armhf        Core GStreamer libraries and elements
                      ii  libreoffice-avmedia-backend-gstreamer 1:6.1.5-3+rpi1+deb10u7+rpt1             armhf        GStreamer backend for LibreOffice
                      
                      

                      I really don't know if it's a complete list or a right version.

                      jsulmJ 1 Reply Last reply
                      0
                      • J jenya7

                        @jsulm said in A camera problem.:

                        @jenya7 said in A camera problem.:

                        I see gstreamer installed

                        What exactly is installed? There are many GStreamer plug-ins which may be needed.

                        this is the list

                        ii  gstreamer1.0-alsa:armhf               1.14.4-2+deb10u1                        armhf        GStreamer plugin for ALSA
                        ii  gstreamer1.0-gtk3:armhf               1.14.4-1+rpt1+deb10u1                   armhf        GStreamer plugin for GTK+3
                        ii  gstreamer1.0-libav:armhf              1.15.0.1+git20180723+db823502-2+deb10u1 armhf        libav plugin for GStreamer
                        ii  gstreamer1.0-omx                      1.14.4-1+rpt1                           armhf        GStreamer OpenMAX plugins
                        ii  gstreamer1.0-omx-rpi                  1.14.4-1+rpt1                           armhf        OpenMax plugins for GStreamer
                        ii  gstreamer1.0-omx-rpi-config           1.14.4-1+rpt1                           armhf        OpenMax plugins for GStreamer
                        ii  gstreamer1.0-plugins-bad:armhf        1.14.4-1+rvt+deb10u2                    armhf        GStreamer plugins from the "bad" set
                        ii  gstreamer1.0-plugins-base:armhf       1.14.4-2+deb10u1                        armhf        GStreamer plugins from the "base" set
                        ii  gstreamer1.0-plugins-good:armhf       1.14.4-1+rpt1+deb10u1                   armhf        GStreamer plugins from the "good" set
                        ii  gstreamer1.0-x:armhf                  1.14.4-2+deb10u1                        armhf        GStreamer plugins for X11 and Pango
                        ii  libgstreamer-gl1.0-0:armhf            1.14.4-2+deb10u1                        armhf        GStreamer GL libraries
                        ii  libgstreamer-plugins-bad1.0-0:armhf   1.14.4-1+rvt+deb10u2                    armhf        GStreamer libraries from the "bad" set
                        ii  libgstreamer-plugins-base1.0-0:armhf  1.14.4-2+deb10u1                        armhf        GStreamer libraries from the "base" set
                        ii  libgstreamer1.0-0:armhf               1.14.4-1                                armhf        Core GStreamer libraries and elements
                        ii  libreoffice-avmedia-backend-gstreamer 1:6.1.5-3+rpi1+deb10u7+rpt1             armhf        GStreamer backend for LibreOffice
                        
                        

                        I really don't know if it's a complete list or a right version.

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #11

                        @jenya7 said in A camera problem.:

                        or a right version

                        That depends on the Qt version you're using.
                        Try to also install gstreamer1.0-plugins-ugly, but I don't know whether this will help.

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        J 1 Reply Last reply
                        1
                        • jsulmJ jsulm

                          @jenya7 said in A camera problem.:

                          or a right version

                          That depends on the Qt version you're using.
                          Try to also install gstreamer1.0-plugins-ugly, but I don't know whether this will help.

                          J Offline
                          J Offline
                          jenya7
                          wrote on last edited by jenya7
                          #12

                          @jsulm said in A camera problem.:

                          @jenya7 said in A camera problem.:

                          or a right version

                          That depends on the Qt version you're using.
                          Try to also install gstreamer1.0-plugins-ugly, but I don't know whether this will help.

                          I found it out! It's not enough to install library
                          sudo apt-get install qtmultimedia5-dev
                          One should add plugins also
                          sudo apt-get install libqt5multimedia5-plugins

                          Now it founds the camera. But how do I refer to it later on? There are no fields like name or id or something
                          at least on debug level

                          availableCameras	<1 items>	QList<QCameraInfo>
                              [0]	@0x1027c8	QCameraInfo
                                  d	@0x1027c8	QSharedPointer<QCameraInfoPrivate>
                          			data	@0x10cd88	QCameraInfoPrivate
                          			weakref	2	int
                          			strongref	2	int
                          	availableCameras@1	<optimized out>	
                          	cameraInfo	@0x1027c8	QCameraInfo &
                          		d	@0x1027c8	QSharedPointer<QCameraInfoPrivate>
                          			data	@0x10cd88	QCameraInfoPrivate
                          			weakref	2	int
                          			strongref	2	int
                          	cameraInfo@1	@0x1027c8	QCameraInfo &
                          		d	@0x1027c8	QSharedPointer<QCameraInfoPrivate>
                          			data	@0x10cd88	QCameraInfoPrivate
                          			weakref	2	int
                          			strongref	2	int
                          
                          QCameraInfo::defaultCamera()		QCameraInfo
                          		d		QSharedPointer<QCameraInfoPrivate>
                          			data	@0x111438	QCameraInfoPrivate
                          			weakref	1	int
                          			strongref	1	int
                          
                          jsulmJ 1 Reply Last reply
                          0
                          • J jenya7

                            @jsulm said in A camera problem.:

                            @jenya7 said in A camera problem.:

                            or a right version

                            That depends on the Qt version you're using.
                            Try to also install gstreamer1.0-plugins-ugly, but I don't know whether this will help.

                            I found it out! It's not enough to install library
                            sudo apt-get install qtmultimedia5-dev
                            One should add plugins also
                            sudo apt-get install libqt5multimedia5-plugins

                            Now it founds the camera. But how do I refer to it later on? There are no fields like name or id or something
                            at least on debug level

                            availableCameras	<1 items>	QList<QCameraInfo>
                                [0]	@0x1027c8	QCameraInfo
                                    d	@0x1027c8	QSharedPointer<QCameraInfoPrivate>
                            			data	@0x10cd88	QCameraInfoPrivate
                            			weakref	2	int
                            			strongref	2	int
                            	availableCameras@1	<optimized out>	
                            	cameraInfo	@0x1027c8	QCameraInfo &
                            		d	@0x1027c8	QSharedPointer<QCameraInfoPrivate>
                            			data	@0x10cd88	QCameraInfoPrivate
                            			weakref	2	int
                            			strongref	2	int
                            	cameraInfo@1	@0x1027c8	QCameraInfo &
                            		d	@0x1027c8	QSharedPointer<QCameraInfoPrivate>
                            			data	@0x10cd88	QCameraInfoPrivate
                            			weakref	2	int
                            			strongref	2	int
                            
                            QCameraInfo::defaultCamera()		QCameraInfo
                            		d		QSharedPointer<QCameraInfoPrivate>
                            			data	@0x111438	QCameraInfoPrivate
                            			weakref	1	int
                            			strongref	1	int
                            
                            jsulmJ Offline
                            jsulmJ Offline
                            jsulm
                            Lifetime Qt Champion
                            wrote on last edited by
                            #13

                            @jenya7 said in A camera problem.:

                            There are no fields like name or id or something

                            There is: https://doc.qt.io/qt-5/qcamerainfo.html#deviceName

                            https://forum.qt.io/topic/113070/qt-code-of-conduct

                            J 1 Reply Last reply
                            0
                            • jsulmJ jsulm

                              @jenya7 said in A camera problem.:

                              There are no fields like name or id or something

                              There is: https://doc.qt.io/qt-5/qcamerainfo.html#deviceName

                              J Offline
                              J Offline
                              jenya7
                              wrote on last edited by
                              #14

                              @jsulm said in A camera problem.:

                              @jenya7 said in A camera problem.:

                              There are no fields like name or id or something

                              There is: https://doc.qt.io/qt-5/qcamerainfo.html#deviceName

                              I see. Thank you. I'll try to get it going.

                              1 Reply Last reply
                              0
                              • J Offline
                                J Offline
                                jenya7
                                wrote on last edited by
                                #15

                                something eluding me
                                To take a shot

                                void Camera::takeImage()
                                

                                Then on

                                connect(m_imageCapture.data(), &QCameraImageCapture::imageCaptured, this, &Camera::processCapturedImage);
                                
                                void Camera::processCapturedImage(int requestId, const QImage& img)
                                {
                                    Q_UNUSED(requestId);
                                    QImage scaledImage = 100, 100,
                                                                    Qt::KeepAspectRatio,
                                                                    Qt::SmoothTransformation);
                                
                                    ui->lastImagePreviewLabel->setPixmap(QPixmap::fromImage(scaledImage));
                                
                                    // Display captured image for 4 seconds.
                                    displayCapturedImage();
                                    QTimer::singleShot(4000, this, &Camera::displayViewfinder);
                                }
                                

                                But where the image actually stored?

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

                                  Hi,

                                  Unless you configure the capture to capture to file, its just going to be in the buffer. You can still save it yourself though.

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

                                  J 1 Reply Last reply
                                  0
                                  • SGaistS SGaist

                                    Hi,

                                    Unless you configure the capture to capture to file, its just going to be in the buffer. You can still save it yourself though.

                                    J Offline
                                    J Offline
                                    jenya7
                                    wrote on last edited by jenya7
                                    #17

                                    @SGaist said in A camera problem.:

                                    Hi,

                                    Unless you configure the capture to capture to file, its just going to be in the buffer. You can still save it yourself though.

                                    How do I do that? I see m_imageCapture but no property or method to set a path to a file.
                                    And where the buffer located?

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

                                      The buffer just means it's in memory. You'll get a frame to process and then it's up to you to save it.

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

                                      J 1 Reply Last reply
                                      0
                                      • SGaistS SGaist

                                        The buffer just means it's in memory. You'll get a frame to process and then it's up to you to save it.

                                        J Offline
                                        J Offline
                                        jenya7
                                        wrote on last edited by
                                        #19

                                        @SGaist said in A camera problem.:

                                        The buffer just means it's in memory. You'll get a frame to process and then it's up to you to save it.

                                        After

                                        g_camera.SetCaptureMode(QCamera::CaptureMode::CaptureStillImage);
                                        g_camera.takeImage();
                                        

                                        Nothing happens. I didn't get to

                                        void Camera::processCapturedImage(int requestId, const QImage& img)
                                        

                                        or

                                        void Camera::imageSaved(int id, const QString &fileName)
                                        

                                        How do I know where is the image (if it was taken at all)?

                                        jsulmJ 1 Reply Last reply
                                        0
                                        • J jenya7

                                          @SGaist said in A camera problem.:

                                          The buffer just means it's in memory. You'll get a frame to process and then it's up to you to save it.

                                          After

                                          g_camera.SetCaptureMode(QCamera::CaptureMode::CaptureStillImage);
                                          g_camera.takeImage();
                                          

                                          Nothing happens. I didn't get to

                                          void Camera::processCapturedImage(int requestId, const QImage& img)
                                          

                                          or

                                          void Camera::imageSaved(int id, const QString &fileName)
                                          

                                          How do I know where is the image (if it was taken at all)?

                                          jsulmJ Offline
                                          jsulmJ Offline
                                          jsulm
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #20

                                          @jenya7 Did you connect a slot to https://doc.qt.io/qt-5/qcamera.html#errorOccurred to see whether you get any errors? Same for https://doc.qt.io/qt-5/qcameraimagecapture.html#error-1
                                          You can get the cptured image using this signal: https://doc.qt.io/qt-5/qcameraimagecapture.html#imageAvailable

                                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          J 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