Getting plymouth with ffmpeg
This commit is contained in:
parent
f9b9876b84
commit
761ecbd129
|
@ -573,7 +573,12 @@ void ConfigFileManager::copyMp4toCacheDir(const QString &destinationFilePath, QD
|
||||||
//ffmpeg -i "111.mp4" -vframes 104 "/home/.cache/theme-build/m_time/src/plymouthTheme/%d.png"
|
//ffmpeg -i "111.mp4" -vframes 104 "/home/.cache/theme-build/m_time/src/plymouthTheme/%d.png"
|
||||||
//FIX ME :限制条件
|
//FIX ME :限制条件
|
||||||
QString cache = cachedir.absolutePath()+"/%d.png";
|
QString cache = cachedir.absolutePath()+"/%d.png";
|
||||||
list<<"-i"<<destinationFilePath<<"-vframes"<<"104"<<cache;
|
list<<"-i"<<destinationFilePath
|
||||||
|
<<"-vf"
|
||||||
|
<<"scale='min(100,iw)':min'(100,ih)':force_original_aspect_ratio=decrease"
|
||||||
|
<<"-vframes"
|
||||||
|
<<"104"
|
||||||
|
<<cache;
|
||||||
|
|
||||||
QProcess p;
|
QProcess p;
|
||||||
p.start("ffmpeg",list);
|
p.start("ffmpeg",list);
|
||||||
|
@ -581,49 +586,14 @@ void ConfigFileManager::copyMp4toCacheDir(const QString &destinationFilePath, QD
|
||||||
qWarning()<<"start get video image failed.";
|
qWarning()<<"start get video image failed.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!p.waitForFinished(40000)) {
|
if (!p.waitForFinished(40000)) {
|
||||||
qWarning()<<"wait video image too long time.";
|
qWarning()<<"wait video image too long time.";
|
||||||
}
|
}
|
||||||
QString err=p.readAllStandardError();
|
QString err=p.readAllStandardError();
|
||||||
QString read=p.readAll();
|
|
||||||
if (err.contains("not contain any stream")) {
|
if (err.contains("not contain any stream")) {
|
||||||
qWarning()<<"get video image failed.";
|
qWarning()<<"get video image failed.";
|
||||||
}
|
}
|
||||||
|
|
||||||
QDir dir(cachedir);
|
|
||||||
dir.setFilter(QDir::Files | QDir::NoSymLinks);
|
|
||||||
dir.setNameFilters(QStringList() << "*.png");
|
|
||||||
|
|
||||||
QFileInfoList fileList1 = dir.entryInfoList();
|
|
||||||
foreach (const QFileInfo& fileInfo, fileList1) {
|
|
||||||
QString fileName = fileInfo.absoluteFilePath();
|
|
||||||
|
|
||||||
QImage image(fileName);
|
|
||||||
if (image.isNull()) {
|
|
||||||
qDebug() << "Failed to load image:" << fileName;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 调整图像大小为20x20像素
|
|
||||||
QSize newSize(100, 100);
|
|
||||||
QImage resizedImage = image.scaled(newSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
|
||||||
|
|
||||||
QByteArray byteArray;
|
|
||||||
QBuffer buffer(&byteArray);
|
|
||||||
buffer.open(QIODevice::WriteOnly);
|
|
||||||
if (!resizedImage.save(&buffer, "PNG", 100)) {
|
|
||||||
qDebug() << "Failed to resize image:" << fileName;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
QString outputFileName = fileInfo.path() + "/" + fileInfo.baseName() + ".png";
|
|
||||||
qDebug()<<outputFileName;
|
|
||||||
if (!resizedImage.save(outputFileName, "PNG", 100)) {
|
|
||||||
qDebug() << "Failed to save image:" << outputFileName;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QString thunbnail = cachedir.absolutePath()+"/40.png";
|
QString thunbnail = cachedir.absolutePath()+"/40.png";
|
||||||
emit updateThumbnail(thunbnail);
|
emit updateThumbnail(thunbnail);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue