2013-03-04 76 views
0

我想创建一个应用程序,它可以用来使用Qt裁剪音频文件。 通过命令行我已经成功运行的ffmpeg做到这一点使用下面的命令:在Qt中执行ffmpeg来裁剪音频

ffmpeg -t 30 -i C:\\test.mp3 -acodec copy C:\\test2.mp3 

然后我试图做到这一点使用Qt和我下面的代码似乎工作,但我无法找到输出文件(test2.mp3)。

QProcess* process=new QProcess(this); 
process->start("FFmpeg-N-49957-g8c95d17\\ffmpeg.exe",QStringList()<<"-t 30 -i C:\\test.mp3 -acodec copy C:\\test2.mp3"); 

上面的代码有什么问题吗?

回答

1

我想,你忘了添加“waitForFinished()”行,它只是没有足够的时间来完成你的任务

QProcess process; 
process.start("ffmpeg -t 30 -i C:\\test.mp3 -acodec copy C:\\test2.mp3"); 
process.waitForFinished(); 
process.close(); 
+0

我试过上面的代码。我的文件夹中的ffmpeg是一个可执行文件。所以我不能使用ffmpeg命令启动它(我应该指定它的目录)。由于process.start方法至少需要两个参数,所以似乎存在问题。 – aswin 2013-03-05 02:30:18

+0

nope,这个函数有超载版本,它只需要一个输入参数http://qt-project.org/doc/qt-4.8/qprocess.html#start-2 关于文件夹: process.start( “FFmpeg-N-49957-g8c95d17 \\ ffmpeg.exe -t 30 -i C:\\ test.mp3 -acodec copy C:\\ test2.mp3”); 将工作得很好 – Shf 2013-03-05 10:46:37

+0

它的工作。谢谢你的帮助。所以我不应该使用第二个参数。 – aswin 2013-03-06 04:12:08