2013-08-16 52 views
1

我有一個奇怪的情況剛剛發生。 FFMPEG不再是從PHP執行,而是從命令行執行。FFMPEG從命令行工作,但不是PHP

這裏的命令是什麼:

ffmpeg -i ../../uploads/ee78d5deb564901626067cc0008456ed.mp3 -ab 96k -y ../../uploads/mp3/ee78d5deb564901626067cc0008456ed_6203688.mp3 

它是如何在PHP腳本執行:

if(! exec("ffmpeg -i ".$target_path."".$hash_filename.".".$path_extension." -ab 96k -y ".$target_path."mp3/".$hash_filename."_".$session_ID.".mp3")){ 
    echo 'ffmpeg failed'; 
} 

這條命令做了工作,但不再做。我最近更新了plesk,但我非常懷疑已經影響到了這一點。我認爲唯一可能影響到我最近完成的工作是將文件上載轉到子域。因此,文件所在的目錄和存儲在命令中的目錄位於文檔根目錄之外的目錄中。然而,move_uploaded_file函數的工作原理和我已經將PHP ini中的open_basedir更改爲web空間根。

+0

您可以嘗試輸出錯誤$ error = array(); exec(「你的命令在這裏」,$ error);後續代碼var_dump($錯誤); – javijuol

回答

0

尾-f /無功/日誌/的Apache2/error_log中

,並讓我們知道你所看到的有......調整爲平臺...

這是燈(openSUSE的)

0

您可以嘗試system()命令。它會返回你從服務器的響應

system("ffmpeg -i ".$target_path."".$hash_filename.".".$path_extension." -ab 96k -y ".$target_path."mp3/".$hash_filename."_".$session_ID.".mp3") 

如果當前版本的PHP不支持ffmpeg它將返回您的錯誤。

OR

您可以修改命令來獲取適當的路徑FFmpeg的。在我的情況下,它的工作原理如下代碼

exec("/usr/local/bin/ffmpeg -i ".$target_path."".$hash_filename.".".$path_extension." -ab 96k -y ".$target_path."mp3/".$hash_filename."_".$session_ID.".mp3")) 
相關問題