2013-07-16 67 views
0

一直在試圖利用我已經上傳到我的域中的腳本來執行FFMPEG通過PHP執行FFMPEG問題

<?php 
$output = array(); 
$result = -1; 
exec('../../../../../../usr/bin/ffmpeg -ab 320k -i source.wav dest320.mp3', $output, $result); 
var_dump($output, $result); 
?> 

的示例代碼表示,該計劃不應該返回-1,除非有一個錯誤,但我已經指出了FFmpeg中存儲的確切路徑.....

當我打電話「的ffmpeg -AB 320K -i source.wav dest320.mp3」從它的工作原理CentOS的...

很失落並花了幾個小時試圖解決它。

感謝

CP

+1

你意識到你可以使用絕對路徑,比如'/ usr/bin/ffmpeg'而不是向後進入目錄,對吧?另外,您需要確保運行'exec'的用戶具有訪問ffmpeg的權限。 – Twisted1919

+0

當你運行這個時,輸出是什麼? – SharkofMirkwood

+0

嘿扭曲了,不,我沒有意識到,現在就試試。我如何檢查運行exec的用戶是否擁有正確的權限?鯊魚它輸出 'array(0){} int(-1)' –

回答

0

你有沒有在PHP工作執行exec任何時候,你應該切換到中繼進行調試。

passthru('../../../../../../usr/bin/ffmpeg -ab 320k -i source.wav dest320.mp3 1 2>&1'); 

追加1 2> & 1至年底,管你的錯誤輸出到粗壯,並返回你在運行你的exec任何錯誤。

+0

我剛剛嘗試過,它並沒有返回任何東西。不知道什麼是..... –

0

使用passthru('/usr/bin/env ffmpeg -ab 320k -i source.wav dest320.mp3 1 2>&1');可能會更安全,它將獲得ffmpeg的正確路徑,而無需指定絕對/相對路徑。

另外值得注意的是,如果您自12.04起使用Ubuntu,則ffmpeg命令已更名爲avconv

+0

感謝隊友,我正在使用CentOS –