1. 程式人生 > 其它 >分享一個批量MP4轉JPG圖片的工具

分享一個批量MP4轉JPG圖片的工具

技術標籤:深度學習C/C++QT開發工具

@分享一個批量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下載