当前位置: 首页 > news >正文

地方门户系统源码宁波seo网络推广推荐

地方门户系统源码,宁波seo网络推广推荐,枣庄网站开发公司,青海专业的网站建设公司Qt ffmpeg音视频转换工具,QProcess方式调用ffmpeg,对音视频文件进行格式转换,支持常见的音视频格式,主要在于QProcess的输出处理以及转换的文件名和后缀的处理,可以进一步加上音视频剪切合并和音视频文件属性查询修改的…

Qt ffmpeg音视频转换工具,QProcess方式调用ffmpeg,对音视频文件进行格式转换,支持常见的音视频格式,主要在于QProcess的输出处理以及转换的文件名和后缀的处理,可以进一步加上音视频剪切合并和音视频文件属性查询修改的功能。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QTextCodec>
#include <QFileDialog>
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);QFont font;font.setPixelSize(16);setFont(font);setWindowTitle(QStringLiteral("ffmpeg工具"));ui->listWidget->setMaximumWidth(200);connect(ui->listWidget, SIGNAL(clicked(QModelIndex)), this, SLOT(convert()));ui->checkBox->setChecked(true);mProcess = new QProcess;connect(mProcess, SIGNAL(readyReadStandardError()), this, SLOT(readError()));connect(mProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readOutput()));connect(mProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(finished(int,QProcess::ExitStatus)));mTimer = new QTimer(this);connect(mTimer, SIGNAL(timeout()), this, SLOT(updateTimer()));mTimer->start(1000);initListWidget();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::readError()
{QString str = mProcess->readAllStandardError().data();if (str == "\r"){ui->textBrowser->append(mTmpStr);mTmpStr.clear();}else{mTmpStr += str;if (str.contains("\r\n")){ui->textBrowser->append(mTmpStr);mTmpStr.clear();}}
}void MainWindow::readOutput()
{QByteArray qba = mProcess->readAllStandardOutput();QTextCodec* tc = QTextCodec::codecForName("System");QString str = tc->toUnicode(qba);if (str == "\r"){ui->textBrowser->append(mTmpStr);mTmpStr.clear();}else{mTmpStr += str;if (str.contains("\r\n")){ui->textBrowser->append(mTmpStr);mTmpStr.clear();}}
}void MainWindow::finished(int exitCode, QProcess::ExitStatus exitStatus)
{ui->textBrowser->append(QStringLiteral("finished : %1 %2").arg(exitCode).arg(exitStatus));mProcess->close();if (exitCode == 0 && exitStatus == 0){informationMessageBox(QStringLiteral("提示"), QStringLiteral("%1\n转换\n%2\n完成").arg(mSourceFile).arg(mTargetFile));}else{informationMessageBox(QStringLiteral("提示"), QStringLiteral("%1\n转换\n%2\n失败").arg(mSourceFile).arg(mTargetFile));}
}void MainWindow::updateTimer()
{if (!mTmpStr.isEmpty()){ui->textBrowser->append(mTmpStr);mTmpStr.clear();}
}void MainWindow::initListWidget()
{QStringList nameLst;nameLst.append(QStringLiteral("FLAC转MP3")); // ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3nameLst.append(QStringLiteral("M4A转MP3")); // ffmpeg -i 1.m4a -acodec libmp3lame -aq 0 123.mp3nameLst.append(QStringLiteral("WAV转MP3")); // ffmpeg -i input.wav -f mp3 -acodec libmp3lame -aq 0 output.mp3nameLst.append(QStringLiteral("APE转MP3")); // ffmpeg -i 1.ape -acodec libmp3lame -aq 0 123.mp3nameLst.append("");nameLst.append(QStringLiteral("MP4转M4A")); // ffmpeg -i test.mp4 -acodec copy -vn 123.m4anameLst.append(QStringLiteral("MP4转AAC")); // ffmpeg -i test.mp4 -acodec copy -vn 123.aacnameLst.append(QStringLiteral("MP4转MP3")); // ffmpeg -i test.mp4 -acodec libmp3lame -aq 0 123.mp3nameLst.append("");nameLst.append(QStringLiteral("MP3转OGG")); // ffmpeg -i bb.mp3 -acodec libvorbis -ab 128k bb.oggnameLst.append(QStringLiteral("MP3转WAV")); // ffmpeg -i input.mp3 -f wav output.wavQMap<QString, QString> cmdMap;cmdMap.insert(QStringLiteral("FLAC转MP3"), QStringLiteral("ffmpeg -i \"%1\" -ab 320k -map_metadata 0 -id3v2_version 3 -aq 0 \"%2\""));cmdMap.insert(QStringLiteral("M4A转MP3"), QStringLiteral("ffmpeg -i \"%1\" -acodec libmp3lame -aq 0 \"%2\""));cmdMap.insert(QStringLiteral("WAV转MP3"), QStringLiteral("ffmpeg -i \"%1\" -f mp3 -acodec libmp3lame -aq 0 \"%2\""));cmdMap.insert(QStringLiteral("APE转MP3"), QStringLiteral("ffmpeg -i \"%1\" -acodec libmp3lame -aq 0 \"%2\""));cmdMap.insert(QStringLiteral("MP4转M4A"), QStringLiteral("ffmpeg -i \"%1\" -acodec copy -vn \"%2\""));cmdMap.insert(QStringLiteral("MP4转AAC"), QStringLiteral("ffmpeg -i \"%1\" -acodec copy -vn \"%2\""));cmdMap.insert(QStringLiteral("MP4转MP3"), QStringLiteral("ffmpeg -i \"%1\" -acodec libmp3lame -aq 0 \"%2\""));cmdMap.insert(QStringLiteral("MP3转OGG"), QStringLiteral("ffmpeg -i \"%1\" -acodec libvorbis -ab 128k \"%2\""));cmdMap.insert(QStringLiteral("MP3转WAV"), QStringLiteral("ffmpeg -i \"%1\" -f wav \"%2\""));foreach (QString name, nameLst){QListWidgetItem *item = new QListWidgetItem;if (!name.isEmpty()){item->setText(name);item->setData(Qt::UserRole, cmdMap.value(name));}else{item->setText("");item->setData(Qt::UserRole, "");}ui->listWidget->addItem(item);}
}QString MainWindow::getFileSuffix(QString file)
{QString ret;if (file == "FLAC"){ret = QStringLiteral("flac");}else if (file == "MP3"){ret = QStringLiteral("mp3");}else if (file == "M4A"){ret = QStringLiteral("m4a");}else if (file == "WAV"){ret = QStringLiteral("wav");}else if (file == "APE"){ret = QStringLiteral("ape");}else if (file == "AAC"){ret = QStringLiteral("aac");}else if (file == "MP4"){ret = QStringLiteral("mp4");}else if (file == "OGG"){ret = QStringLiteral("ogg");}return ret;
}void MainWindow::convert()
{QListWidgetItem *item = ui->listWidget->currentItem();QString tmp = item->data(Qt::UserRole).toString();if (mProcess->isOpen()){mProcess->close();}mSourceFile.clear();mTargetFile.clear();mSource.clear();mTarget.clear();mSourceSuffix.clear();mTargetSuffix.clear();if (!tmp.isEmpty()){mTitle = item->text();mCmd = tmp;setWindowTitle(QStringLiteral("ffmpeg工具 - %1").arg(mTitle));}else{mTitle.clear();mCmd.clear();setWindowTitle(QStringLiteral("ffmpeg工具"));}
}bool MainWindow::informationMessageBox(const QString &title, const QString &text, bool isOnlyOk)
{QMessageBox msgBox(this);msgBox.setFont(this->font());msgBox.setIcon(QMessageBox::Information);msgBox.setWindowTitle(title);msgBox.setText(text);if (isOnlyOk){msgBox.setStandardButtons(QMessageBox::Ok);msgBox.setButtonText(QMessageBox::Ok, QStringLiteral("确定"));}else{msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);msgBox.setButtonText(QMessageBox::Ok, QStringLiteral("确定"));msgBox.setButtonText(QMessageBox::Cancel, QStringLiteral("取消"));}return (msgBox.exec() == QMessageBox::Ok);
}void MainWindow::closeEvent(QCloseEvent *event)
{if (informationMessageBox(QStringLiteral("提示"), QStringLiteral("确定关闭"), false)){event->accept();}else{event->ignore();}
}void MainWindow::on_pushButton_import_clicked()
{if (mTitle.isEmpty() || mCmd.isEmpty()){return;}mSource = mTitle.split(QStringLiteral("转"))[0];mTarget = mTitle.split(QStringLiteral("转"))[1];mSourceSuffix = getFileSuffix(mSource);mTargetSuffix = getFileSuffix(mTarget);if (mSourceSuffix.isEmpty() || mTargetSuffix.isEmpty()){informationMessageBox(QStringLiteral("提示"), QStringLiteral("不支持的文件格式"));return;}QString file = QFileDialog::getOpenFileName(this, QStringLiteral("打开%1文件").arg(mSource), QStringLiteral("."), QStringLiteral("%1文件(*.%2)").arg(mSource).arg(mSourceSuffix));if (!file.isEmpty()){mSourceFile = file;if (ui->checkBox->isChecked()){QString tmp = mSourceFile;mTargetFile = tmp.replace(QStringLiteral(".%1").arg(mSourceSuffix), QStringLiteral(".%1").arg(mTargetSuffix));}}
}void MainWindow::on_pushButton_save_clicked()
{if (mSourceFile.isEmpty()){return;}QString file = QFileDialog::getSaveFileName(this, QStringLiteral("保存%1文件").arg(mTarget), mTargetFile, QStringLiteral("%1文件(*.%2)").arg(mTarget).arg(mTargetSuffix));if (!file.isEmpty()){mTargetFile = file;}
}void MainWindow::on_pushButton_convert_clicked()
{if (mSourceFile.isEmpty() || mTargetFile.isEmpty()){return;}QString cmd = mCmd.arg(mSourceFile).arg(mTargetFile);ui->textBrowser->append("\n" + cmd + "\n");if (mProcess->isOpen()){mProcess->close();}mTmpStr.clear();mProcess->start(cmd);
}
http://www.shuangfujiaoyu.com/news/33766.html

相关文章:

  • 成都网站建设龙兵科技项目推广平台排行榜
  • 网站做子域名东莞网站设计公司排名
  • 做海报一般都去什么网站看郑州客串seo
  • 施工合同模板安卓优化大师最新版
  • 优秀移动端网站域名备案查询
  • cpa自己做网站近几年的网络营销案例
  • 网站广告尺寸谷歌商店下载不了软件
  • 一个人做网站 没有人写文章怎么办公司网站设计公司
  • 做分析报表的网站中央电视台一套广告价目表
  • 徐州建网站台州网站优化公司
  • 网站开发与维护宣传册大数据精准获客软件
  • 区域网站怎么做南京网络优化公司有哪些
  • 网站下载app连接怎么做山西优化公司
  • 住建部网站建设部广州网站优化公司如何
  • 五种关键词优化工具优化落实疫情防控新十条
  • 淘宝客导购网站 丢单英语seo
  • 织梦儿童早教教育培训网站模板今天的国际新闻
  • 武汉网站建设公司有哪些深圳搜索引擎
  • 真人做爰直播全集播放网站360优化大师旧版
  • 网站开发实例网络服务有哪些
  • 网站建设选择什么模式大型seo公司
  • 网站开发2008优秀网站设计网站
  • 北京住房与城乡建设部网站网络推广营销方法
  • java网站开发计划表搜索引擎优化实训报告
  • 什么网站设计素材多厦门seo代理商
  • 企业融资abcd轮什么意思网站优化塔山双喜
  • 做网站免费cps推广平台
  • b2c网站多少钱seo如何优化关键词
  • 免费推广企业网站域名停靠网页app推广大全
  • 网站建设广告图片网络营销专业学什么课程