2014-11-21 111 views
2

我試圖轉換並移動2個使用ffmpeg在通話中錄製的音頻文件。使用的代碼是:從Perl AGI調用FFMPEG未能執行系統命令

#Convert and move the audio 
$AGI->exec("system","ffmpeg|/olddir/$FILENAME.flac|/newdir/$FILENAME.wav"); 
$AGI->exec("system","ffmpeg|/olddir/$FILENAME.flac|/newdir/$FILENAME.wav"); 

當AGI運行,這是對CLI顯示的內容:

-- AGI Script Executing Application: (system) Options: (ffmpeg|/olddir/stt_P4J3v6.flac|/newdir/stt_P4J3v6.wav) 
WARNING[1796]: app_system.c:138 system_exec_helper: Unable to execute 'ffmpeg|/olddir/stt_P4J3v6.flac|/newdir/stt_P4J3v6.wav' 

我不知道爲什麼它不會執行,相同的命令工作正常上控制檯。

編輯:重新測試與管道中的命令,它返回奇怪的錯誤。然而,欲以

$AGI->exec("system","ffmpeg /olddir/$FILENAME.flac /newdir/$FILENAME.wav"); 

只返回

-- AGI Script Executing Application: (system) Options: (ffmpeg) 

,所以它沒有采取的剩餘參數。

+0

我從來沒有使用ffmpeg,但我不希望它使用該語法在控制檯上工作。手冊頁中沒有任何內容表明您可以通過管道符號分隔參數。根據手冊頁,這是我期望執行它的方式。 '$ AGI-> exec(「system」,「ffmpeg -i /olddir/$FILENAME.flac /newdir/$FILENAME.wav」);' – 2014-11-21 17:11:12

+0

我試過了,沒有使用像你說的那樣的管道,也沒有在「ffmpeg」之後接收任何參數。我用管道運行它,並在控制檯上正常工作。 – 2014-11-21 17:15:12

+0

我無法再訪問我們的星號框,因此我無法進行任何真正的測試。對不起,我不能進一步幫助。 – 2014-11-21 17:18:12

回答

0

我不需要使用「Exec」命令。我不認爲「系統」在AGI中運行。我錯了。

+0

你應該將這個答案標記爲已接受,所以問題是「關閉」。 (你可以爲你自己的答案做到這一點!) – miken32 2014-11-21 23:09:41