gpt4 book ai didi

Qt : How to create a video from multiple QImages

转载 作者:行者123 更新时间:2023-12-03 06:11:24 25 4
gpt4 key购买 nike

如何从多个视频中创建 .mp4 视频 QImage Qt 应用程序中的 s。

查看QMediaRecorder例如,它只知道如何从相机中抓取帧。似乎没有办法将多个 QImage 或其他一些图像数据类型传递到 QMediaRecorder 中来简单地制作视频。 >与相机无关。

开发环境:
使用Qt 5.9.1商业版本以及在AndroidiOSOSX上运行的应用程序。

最佳答案

考虑到您正在处理多少图像,很难确定您在这里到底需要做什么。

话虽这么说,如果您使用 ffmpeg 等工具来生成视频,这是可能的,但它至少需要您将这些图像写入光盘。

这是一个我用来为 youtube 生成幻灯片视频的工作示例。图像的串联是通过驱动器上保存的命名方案来确定的。

    sl << "-i" << md.sku(true) + "##%03d.png"; // Images input,

因此,

mysku##001.png // First Slide
mysku##002.png // Second Slide
mysku##003.png // Third Slide
mysku##004.png // Fourth Slide
<小时/>
VideoConvert::VideoConvert(Metadata &md, QFile &oggFile, QObject *parent) : QObject(parent)
{
QStringList sl;
tt.warning(md.duration());
tt.warning(md.length());
QString framerate = md.duration(true);
int hour = QString(md.length()).split(":").at(0).toInt();
int minute = QString(md.length()).split(":").at(1).toInt();
int second = QString(md.length()).split(":").at(2).toInt();

framerate.remove(".");
framerate.remove(QRegularExpression("^[0]*"));

sl << "-y"; // overwrite
sl << "-framerate" << QString::number(md.images().length())
+ "/" + QString::number(((hour * 60) * 60) + (minute * 60) + second);
sl << "-i" << md.sku(true) + "##%03d.png"; // Images input,
sl << "-i" << oggFile.fileName();
sl << "-c" << "copy";
sl << "/home/akiva/FrogCast/" + md.title(true) + " ⟪Wiki🔊Book⟫.mp4";
md.setName(sl.last());

QEventLoop convertEvent;
m_Convert.setReadChannelMode(QProcess::MergedChannels);
connect(&m_Convert, SIGNAL(readyRead()), this, SLOT(convert()));
connect(this, SIGNAL(converted()), &convertEvent, SLOT(quit()));
tt.process("Converting Video File");
for (int i=0; i < sl.length(); i++) {
QTextStream(stdout) << "\t" << sl.at(i) << endl;
}
if (QFile("/home/akiva/FrogCast/Cereproc/ffmpeg").exists()) {
m_Convert.start("/home/akiva/FrogCast/Cereproc/ffmpeg", sl);
} else {
m_Convert.start("ffmpeg", sl);
}
convertEvent.exec();
disconnect(&m_Convert, SIGNAL(finished(int)), this, SLOT(convert()));
disconnect(this, SIGNAL(converted()), &convertEvent, SLOT(quit()));
m_Convert.waitForFinished();
}

关于Qt : How to create a video from multiple QImages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46511446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com