Roman Narizhnyy
Roman Narizhnyy

Reputation: 31

Qt 6 record video from QMediaPlayer

I'm trying to record a video played by QMediaPlayer. Later I will need to put a simple widget (overlay) on top of it. What would be the best way to implement it? Here is my variant, but it does not produce any file:

Class members:

QWidget* parentWidget;
QMediaPlayer* mediaPlayer;
QVideoWidget* videoWidget;
QMediaRecorder *mediaRecorder;

Record function:

mediaPlayer = new QMediaPlayer(parentWidget);
mediaRecorder = new QMediaRecorder(mediaPlayer);

videoWidget = new QVideoWidget;
mediaPlayer->setVideoOutput(videoWidget);

mediaPlayer->setSource(QUrl::fromLocalFile("C:/DJI_0051.MP4"));
mediaRecorder->setVideoResolution(1920, 1080);
mediaRecorder->setQuality(QMediaRecorder::HighQuality);
mediaRecorder->setOutputLocation(QUrl::fromLocalFile("C:/DJI_0051_EDITED.MP4"));
mediaRecorder->setVideoFrameRate(60);

QMediaFormat mediaFormat;
mediaFormat.setAudioCodec(QMediaFormat::AudioCodec::AAC);
mediaFormat.setVideoCodec(QMediaFormat::VideoCodec::H264);
mediaFormat.setFileFormat(QMediaFormat::MPEG4);
mediaRecorder->setMediaFormat(mediaFormat);

mediaPlayer->play();
mediaRecorder->record();

Upvotes: 1

Views: 622

Answers (0)

Related Questions