【QGroundControl二次开发】十. QT添加GStreamer视频播放同时保存
上一章介绍使用QT播放GStreamer视频流 【QGroundControl二次开发】八. QT实现播放gstreamer视频。
这章介绍如何在原有基础上保存为视频,同时保存为一个个规定大小的小视频。
先展示代码:
#include <QApplication>
#include <QWidget>
#include <QtConcurrent/QtConcurrent>
#include <gst/gst.h>
#include <glib.h>
#include <QTime>
#include <QDir>
#include <gst/video/videooverlay.h>
#include "ui_mainwindow.h"//检查文件
void CheckDirectory(const QString &dirPath, int maxFiles = 20) {QDir dir;// 创建文件夹bool success = dir.mkpath(dirPath);// 检查是否成功创建if (success) {qDebug() << "Folder created successfully at" << dirPath;} else {qDebug() << "Failed to create folder at" << dirPath;}QDir directory(dirPath);// 确保目录存在if (!directory.exists()) {qDebug() << "The specified directory does not exist:" << dirPath;return;}// 获取目录中所有文件的列表并根据创建时间排序QList<QFileInfo> fileList = directory.entryInfoList(QDir::Files, QDir::Time);// 计算需要删除的文件数量int filesToRemove = fileList.size() - maxFiles;// 如果文件数量超过最大限制,则删除最旧的文件if (filesToRemove > 0) {// 从最旧的文件开始删除for (int i = 0; i < filesToRemove; ++i) {QFileInfo &fileInfo = fileList[i];// 删除文件if (fileInfo.isFile() && fileInfo.exists()) {qDebug