日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ffmpeg 获取帧率_项目实战:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ffmpeg 获取帧率_项目实战:Qt+FFmpeg录屏应用(支持帧率、清晰度设置) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

若該文為原創文章,轉載請注明原文出處
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109827936
各位讀者,知識無窮而人力有窮,要么改需求,要么找專業人士,要么自己研究

紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點擊傳送門)

Qt開發專欄:項目實戰(點擊傳送門)

需求

實現錄屏功能。

原理

使用抓屏模塊按照指定范圍和幀率抓屏,同時使用錄像模塊按照指定圖像大小和幀率錄制。

Demo

體驗下載地址

CSDN:https://download.csdn.net/download/qq21497936/13126842
QQ群:1047134658(點擊“文件”搜索“ffmpegRecord”,群內與博文同步更新)

v1.0.0

#ifndef RECORDWIDGET_H #define RECORDWIDGET_H #include <QWidget> #include <QThread> #include <QFileDialog> #include <QDateTime> #include "GrabWindowManager.h" #include "FFmpegRecordManager.h" namespace Ui { class RecordWidget; } class RecordWidget : public QWidget { Q_OBJECT public: explicit RecordWidget(QWidget *parent = 0); ~RecordWidget(); protected slots: void slot_timeChange(int time); private slots: void on_pushButton_startRecord_clicked(); void on_pushButton_stopRecord_clicked(); void on_pushButton_browser_clicked(); private: Ui::RecordWidget *ui; GrabWindowManager *_pGrabWindowManager; // 抓屏管理類 QThread *_pGrabWindowManagerThread; // 抓屏線程 FFmpegRecordManager *_pFFmpegRecordManager; // 錄制管理類 QThread *_pFFmpegRecordManagerThread; // 錄制線程 }; #endif // RECORDWIDGET_H

#include "RecordWidget.h" #include "ui_RecordWidget.h" #include <QDateTime> RecordWidget::RecordWidget(QWidget *parent) : QWidget(parent), ui(new Ui::RecordWidget), _pGrabWindowManager(0), _pGrabWindowManagerThread(0) { ui->setupUi(this); QString version = "v1.0.0"; setWindowTitle(QString("錄屏Demo %1(作者:紅胖子(AAA紅模仿) QQ:21497936 微信:yangsir198808 博客地址:blog.csdn.net/qq21497936)").arg(version)); // 初始化抓屏線程 _pGrabWindowManagerThread = new QThread(); _pGrabWindowManager = new GrabWindowManager(); _pGrabWindowManager->moveToThread(_pGrabWindowManagerThread); connect(_pGrabWindowManager, SIGNAL(signal_timeChange(int)), this, SLOT(slot_timeChange(int))); _pGrabWindowManagerThread->start(); // 初始化錄制線程 _pFFmpegRecordManagerThread = new QThread(); _pFFmpegRecordManager = new FFmpegRecordManager(); _pFFmpegRecordManager->moveToThread(_pFFmpegRecordManagerThread); connect(_pFFmpegRecordManagerThread, SIGNAL(started()), _pFFmpegRecordManager, SLOT(slot_start())); _pFFmpegRecordManagerThread->start(); // 關聯信號 connect(_pGrabWindowManager, SIGNAL(signal_grapWindow(QImage)), _pFFmpegRecordManager, SLOT(slot_encoderOneFrame(QImage))); // 按鍵狀態初始化 ui->pushButton_startRecord->setEnabled(true); ui->pushButton_stopRecord->setEnabled(false); ui->lineEdit_dirPath->setReadOnly(true); ui->lineEdit_dirPath->setText(QCoreApplication::applicationDirPath()); ui->lineEdit_value->setValidator(new QIntValidator(1, 100)); ui->lineEdit_fps->setValidator(new QIntValidator(5, 50)); } RecordWidget::~RecordWidget() { delete ui; } void RecordWidget::slot_timeChange(int time) { ui->label_time->setText(QString("%1%2:%3%4").arg(time/60/10) .arg(time/60%10) .arg(time%60/10) .arg(time%10)); } void RecordWidget::on_pushButton_startRecord_clicked() { slot_timeChange(0); QScreen *pScreen = QGuiApplication::primaryScreen(); QRect rect = pScreen->availableGeometry(); _pFFmpegRecordManager->setFps(ui->lineEdit_fps->text().toInt()); _pFFmpegRecordManager->setWidthIn(rect.width()); _pFFmpegRecordManager->setHeightIn(rect.height()); _pFFmpegRecordManager->setWidthOut(rect.width()); _pFFmpegRecordManager->setHeightOut(rect.height()); _pFFmpegRecordManager->setValue(ui->lineEdit_value->text().toInt()); _pFFmpegRecordManager->slot_startEncoder(QString("%1/%2.mp4") .arg(ui->lineEdit_dirPath->text()) .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh_mm_ss")), AV_PIX_FMT_BGRA); _pGrabWindowManager->slot_startGrabWindow(rect.x(), rect.y(), rect.width(), rect.height(), ui->lineEdit_fps->text().toInt()); ui->pushButton_startRecord->setEnabled(false); ui->pushButton_stopRecord->setEnabled(true); ui->pushButton_browser->setEnabled(false); ui->lineEdit_fps->setEnabled(false); ui->lineEdit_value->setEnabled(false); } void RecordWidget::on_pushButton_stopRecord_clicked() { _pGrabWindowManager->slot_stopGrabWindow(); _pFFmpegRecordManager->slot_stopEncoder(); ui->pushButton_startRecord->setEnabled(true); ui->pushButton_stopRecord->setEnabled(false); ui->pushButton_browser->setEnabled(true); ui->lineEdit_fps->setEnabled(true); ui->lineEdit_value->setEnabled(true); } void RecordWidget::on_pushButton_browser_clicked() { QString dir = QFileDialog::getExistingDirectory(0, "保存到文件夾", "."); if(dir.isEmpty()) { return; } ui->lineEdit_dirPath->setText(dir); }

若該文為原創文章,轉載請注明原文出處
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/109827936

總結

以上是生活随笔為你收集整理的ffmpeg 获取帧率_项目实战:Qt+FFmpeg录屏应用(支持帧率、清晰度设置)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品天堂在线 | 夫妻黄色片 | 一本一道久久a久久精品蜜桃 | 极品美女高潮出白浆 | 久久av影院 | 亚洲色成人www永久在线观看 | 制服丝袜中文字幕在线 | 中出精品| 男女搞鸡网站 | 天天天天天干 | 亚洲精品乱码久久久久久蜜桃麻豆 | 特级做a爰片毛片免费69 | 久久久久久久久久久久久av | 人人射| 免费看又黄又无码的网站 | 欧美激情久久久久久久 | 国产精品探花视频 | 欧美xxxxx高潮喷水麻豆 | 丨国产丨调教丨91丨 | 日韩一区不卡视频 | 黑料视频在线 | 这里只有精品视频在线观看 | 自拍偷拍亚洲欧洲 | 最新精品国产 | 丁香花国语版普通话 | 亚洲丝袜一区 | 99re免费视频精品全部 | 秋霞福利 | 久久精品国产亚洲av嫖农村妇女 | 被黑人啪到哭的番号922在线 | 国产性猛交╳xxx乱大交一区 | 国产三级一区二区 | 激情小说亚洲图片 | 国产视频一区二 | 黄色一级片av | 毛片大全免费看 | 久操欧美 | 粉嫩在线| 成人午夜电影网站 | 亚洲免费成人在线 | 最好看的电影2019中文字幕 | 欧美成人午夜 | 爱情岛黄色 | 久久人人爽人人爽人人av | 很黄很污的视频 | 激情久久网 | 永久免费精品 | 欧美精品99 | 五月婷婷婷婷 | www一区二区 | 欧美日韩另类在线 | japanese24hdxxxx日韩| 国产精品高潮呻吟久久 | 五个女闺蜜把我玩到尿失禁 | 欧美在线a | 亚洲欧洲日本一区二区三区 | 九九热8 | 99re热在线视频 | 国产精品偷乱一区二区三区 | 国产精品-色哟哟 | 日韩精品中文字幕一区二区三区 | 国产精品资源站 | 日本一区二区免费高清视频 | 男女免费毛片 | 国产av成人一区二区三区 | 成年人精品视频 | 日韩资源 | 在线 日本 制服 中文 欧美 | 中文字幕一区二区三区在线视频 | 国产成人自拍网 | 91资源站| 强行挺进白丝老师里呻吟 | 天天爽夜夜爽视频 | 福利片一区二区 | 久久大伊人 | 一二三不卡视频 | 蜜桃av久久久亚洲精品 | 蜜臀国产AV天堂久久无码蜜臀 | 午夜精品视频 | 国产一二三区免费视频 | 亚洲不卡视频 | 天堂av网手机版 | 强行挺进白丝老师里呻吟 | 免费成人黄色 | 男女ss视频| 亚洲色图首页 | 国产亚洲美女精品久久久2020 | 色香影院 | 四虎黄色 | 欧美成年人 | 日韩国产一区二区三区 | 午夜精品极品粉嫩国产尤物 | 黄色一区二区视频 | 亚洲天堂va | 精东av在线 | 国产在线观看精品 | 国产老熟女一区二区三区 | 亚洲AV无码成人精品区东京热 | 日本一区二区精品视频 |