1 Star 1 Fork 1

周新童/AVFilter

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mainscence.cpp 2.65 KB
一键复制 编辑 原始数据 按行查看 历史
周新童 提交于 2023-07-14 17:53 . 音频滤镜-混音完成
#include "mainscence.h"
#include "ui_mainscence.h"
MainScence::MainScence(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MainScence)
{
ui->setupUi(this);
initState();
}
MainScence::~MainScence()
{
delete ui;
}
void MainScence::initState()
{
this->setWindowTitle("FFmpeg Filter滤镜");
this->setFixedSize(460, 420);
}
QString MainScence::getSelectFilePath()
{
static QString lastOpenDir = "E:/MediaFile/Video";
QString fileName = QFileDialog::getOpenFileName(this, "媒体文件", lastOpenDir, "All Files (*)");
QFileInfo info(fileName);
lastOpenDir = info.absolutePath();
return fileName;
}
void MainScence::on_btnYUVFile_clicked()
{
QString filePath = getSelectFilePath();
if(filePath.isEmpty())
return;
ui->editYUV->setText(filePath);
}
void MainScence::on_btnStartVideoFilter_clicked()
{
if(ui->editYUV->text().isEmpty() || ui->editWidth->text().isEmpty() || ui->editHeight->text().isEmpty())
return;
QString filePath = ui->editYUV->text();
int width = ui->editWidth->text().toInt();
int height = ui->editHeight->text().toInt();
videoFilter.setVideoParm(width, height, filePath);
videoFilter.setRunState(true);
}
void MainScence::on_btnPCMFile_clicked()
{
QString filePath = getSelectFilePath();
if(filePath.isEmpty())
return;
ui->editPCM->setText(filePath);
}
void MainScence::on_btnPCMFile_2_clicked()
{
QString filePath = getSelectFilePath();
if(filePath.isEmpty())
return;
ui->editPCM_2->setText(filePath);
}
void MainScence::on_btnStartAudioMix_clicked()
{
if(ui->editPCM->text().isEmpty() || ui->editSampleRate->text().isEmpty() || ui->editChannel->text().isEmpty())
return;
if(ui->editPCM_2->text().isEmpty() || ui->editSampleRate_2->text().isEmpty() || ui->editChannel_2->text().isEmpty())
return;
AudioParm parm1;
parm1.sampleRate = ui->editSampleRate->text().toInt();
parm1.channel = ui->editChannel->text().toInt();
parm1.byteSize = (ui->cbBoxFormat->currentText() == "S16") ? 2 : 4;
parm1.format = (ui->cbBoxFormat->currentText() == "S16") ? AV_SAMPLE_FMT_S16 : AV_SAMPLE_FMT_FLT;
parm1.filePath = ui->editPCM->text().toStdString();
AudioParm parm2;
parm2.sampleRate = ui->editSampleRate_2->text().toInt();
parm2.channel = ui->editChannel_2->text().toInt();
parm2.byteSize = (ui->cbBoxFormat_2->currentText() == "S16") ? 2 : 4;
parm2.format = (ui->cbBoxFormat_2->currentText() == "S16") ? AV_SAMPLE_FMT_S16 : AV_SAMPLE_FMT_FLT;
parm2.filePath = ui->editPCM_2->text().toStdString();
audioFilter.setAudioParm(parm1, parm2);
audioFilter.setRunState(true);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhou_xintong/avfilter.git
[email protected]:zhou_xintong/avfilter.git
zhou_xintong
avfilter
AVFilter
master

搜索帮助