2013-03-04 63 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