分享一個批量MP4轉JPG圖片的工具
阿新 • • 發佈:2020-12-30
@分享一個批量MP4轉JPG圖片的工具
1. 使用背景
在進行深度學習訓練的時候,經常需要採集自己的資料,如果一張一張採集,會很麻煩,如果直接用攝像頭拍攝,是一個非常好的辦法。但是找了網上,都沒有好用的視屏轉圖片的工具,要麼太大,要麼線上的慢的要死,於是自己寫了一個。基於:
- Qt
- ffmpeg
軟體截圖如下:
2. 實現程式碼
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QFileDialog>
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_btnLoadVideo_clicked();
void on_btnSetPath_clicked();
void on_btnStartConvert_clicked();
private:
Ui:: MainWindow *ui;
QString save_path;
QStringList video_file_list;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include <QDebug>
#include <QProcess>
#include <QFileInfo>
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget * parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle(tr("視屏轉圖片工具"));
}
MainWindow::~MainWindow()
{
delete ui;
}
//匯入視屏
void MainWindow::on_btnLoadVideo_clicked()
{
video_file_list.clear();
video_file_list = QFileDialog::getOpenFileNames(this, tr("選擇視屏"), ".", "MP4(*.mp4)");
qDebug()<<video_file_list;
}
//設定匯出路徑
void MainWindow::on_btnSetPath_clicked()
{
save_path = QFileDialog::getExistingDirectory(this, tr("設定路徑"), ".");
}
//開始轉換
void MainWindow::on_btnStartConvert_clicked()
{
QString path = QCoreApplication::applicationDirPath();
qDebug()<<path;
QProcess *proce = new QProcess();
for(int i=0; i<video_file_list.length(); i++)
{
QStringList arg_list;
arg_list<<"-i";
arg_list<<video_file_list.at(i);
arg_list<<"-r";
arg_list<<ui->lineEdit->text();
arg_list<<"-f";
arg_list<<"image2";
QString img_name = QFileInfo(video_file_list.at(i)).baseName();
img_name = save_path + "/" + img_name + "-%05d.jpg";
arg_list<<img_name;
qDebug()<<img_name;
proce->start(path+"/ffmpeg.exe", arg_list);
proce->waitForFinished();
}
delete proce;
}
FFmpeg下載:http://ffmpeg.org/
選擇ffmpeg.exe下載