我的问题不是真正的问题,但我确信有更好的方法来做我所做的事情。
在我做之前
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);
并且它在没有疯狂警告的情况下运行良好。
在我的程序中myvid、myaudio、mergevid是一些之前定义的QString,但它不是这个问题的对象。
我想知道我是否可以将所有参数连接在一个唯一的 QString 中以开始类似
dlvideo->start("ffmpeg", QString() << "Here I want all arguments in one shot" << mergevid;
我不确定我的问题是否真的容易理解。
致以诚挚的问候。