以前,我做过:
Qprocess* dlvid = new QProcess;
//command to start
QString ffmpegmerge = "ffmpeg -i myvid.mp4 -i myaudio.m4a -c copy -movflags faststart mergevid";
//starting the process
dlvideo->start(ffmpegmerge);
而且它可以很好地使用关于已弃用的QProcess::start的警告。
现在我使用了已弃用的dlvideo->start(ffmpegmerge)(我想我遵循了qt.doc的新QProces::start方法)
dlvideo->start("ffmpeg", QStringList() << "-i" << "myvid.mp4" << QStringList() << "-i" << "myaudio.m4a" << QStringList() << "-c" << "copy" << QStringList() << "-movflags" << "faststart" << mergevid);
而且效果很好,没有clazy警告。
在我的程序myvid,myaudio,mergevid是一些之前定义的QString,但它不是这个问题的对象。
我想知道是否可以将所有参数连接到一个QString
中,以如下方式开始
dlvideo->start("ffmpeg", QString() << "Here I want all arguments in one shot" << mergevid;
1条答案
按热度按时间kiayqfof1#
看起来您只是想找到一种方法,将命令原样传递给
QProcess
,只要它不生成警告。你可以像使用
start()
一样使用QProcess::startCommand:不会产生弃用警告,因为它是在Qt6中引入的。