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. QCamera video
Qt 6.11 is out! See what's new in the release blog

QCamera video

Scheduled Pinned Locked Moved General and Desktop
1 Posts 1 Posters 543 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.
  • Y Offline
    Y Offline
    Yacinoben
    wrote on last edited by
    #1

    Hello

    I am creating a program that allows you to take screenshots / videos using a webcam. I use it for the QCamera class.

    I managed to do the screenshot , but for that of the video I do not know how.

    camera.h

    namespace Ui {
    class Camera;
    }

    class Camera : public QWidget
    {
    Q_OBJECT
    public:
    explicit Camera(QWidget *parent = 0);
    ~Camera();
    private slots:
    void on_buttonVideoStop_clicked();
    void captureCameraImage();
    void captureCameraVideo();

    private:
    Ui::Camera *ui;

    QCamera *camera;
    QCameraViewfinder*cameraFinder;
    

    QCameraImageCapture *cameraImageCapture;
    QMediaRecorder *cameraVideoCapture;

    QMenu *menuOption;
    QAction *actionCameraStart;
    QAction *actionCameraStop;
    QAction *actionCaptureEcran;
    QAction *actionCaptureVideo;
    };

    • camera.cpp

    Camera::Camera(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Camera)
    {
    QVBoxLayout *layout =new QVBoxLayout;
    ui->setupUi(this);

    camera=new QCamera(this);
    cameraFinder=new QCameraViewfinder(this);
    cameraImageCapture=new QCameraImageCapture(camera,this);
    cameraVideoCapture=new QMediaRecorder(camera);
    
    camera->setViewfinder(cameraFinder);
    
    menuOption=new QMenu("Option",this);
    actionCameraStart=new QAction("Start",this);
     actionCameraStop=new QAction("Stop",this);
     actionCaptureEcran=new QAction("Capture D'ecran",this);
     actionCaptureVideo=new QAction("Capture Video",this);
    
     menuOption->addActions({actionCameraStart,actionCameraStop,actionCaptureEcran,actionCaptureVideo});
     ui->buttonOption->setMenu(menuOption);
    
     layout->addWidget(cameraFinder);
     ui->scollAffichageCamera->setLayout(layout);
    
     connect(actionCameraStart,&QAction::triggered,[&](){camera->start();});
     connect(actionCameraStop,&QAction::triggered,[&](){camera->stop();});
     connect(actionCaptureEcran,SIGNAL(triggered()),this,SLOT(captureCameraImage()));
      connect(actionCaptureVideo,SIGNAL(triggered()),this,SLOT(captureCameraVideo()));
    

    }

    Camera::~Camera()
    {
    delete ui;
    }

    void Camera::captureCameraImage()
    {
    QString filename=QFileDialog::getSaveFileName(this,"Capture","Capture","(*jpeg)");
    if(filename.isEmpty())return;
    cameraImageCapture->setCaptureDestination(QCameraImageCapture::CaptureToFile);
    QImageEncoderSettings imageEncoderSettings;
    imageEncoderSettings.setCodec("image/jpeg");
    imageEncoderSettings.setResolution(1600,1200);
    cameraImageCapture->setEncodingSettings(imageEncoderSettings);
    camera->setCaptureMode(QCamera::CaptureStillImage);
    camera->start();
    camera->searchAndLock();
    cameraImageCapture->capture(filename);
    camera->unlock();

    }
    void Camera::captureCameraVideo()
    {
    QString fileName=QFileDialog::getSaveFileName(this,"Capture","Capture","(*mpeg2)");
    if(fileName.isEmpty())return;
    QVideoEncoderSettings videoEncoderSettings;
    videoEncoderSettings.setCodec("video/mpeg2");
    videoEncoderSettings.setQuality(QMultimedia::LowQuality);
    videoEncoderSettings.setResolution(640,480);
    cameraVideoCapture->setVideoSettings(videoEncoderSettings);
    camera->setCaptureMode(QCamera::CaptureVideo);
    cameraVideoCapture->setOutputLocation(QUrl::fromLocalFile(fileName));
    cameraVideoCapture->record();
    }
    void Camera::on_buttonVideoStop_clicked()
    {
    cameraVideoCapture->stop();
    }
    Thank's

    1 Reply Last reply
    1

    • Login

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