2011-01-28 91 views
3

我想從php執行FFmpeg。我已經安裝了FFmpeg-php,擴展名在modules目錄下,並且顯示在phpinfo中。 FFmpeg工作正常,因爲我可以在終端中運行命令並輸出視頻。但是,當我嘗試使用以下腳本從php運行命令:FFmpeg - PHP錯誤代碼127

exec(ffmpeg -i input.avi output.avi); 

但是,我得到'127'錯誤代碼。

擴展被裝載在使用:

$extension  = "ffmpeg"; 
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX; 
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname; 

// Locate Extension 
define('FFMPEG_LIBRARY', '/usr/local/bin/ffmpeg'); 

// Load Extension 
if (!extension_loaded($extension)) 
    echo dl($extension_soname) or die("Can't load extension $extension_fullname\n"); 

我還試圖在命令限定aboslute延伸位置:

exec(/usr/local/bin/ffmpeg-i input.avi output.avi); 

再次,這工作在終端,但仍返回相同的使用php exec()的錯誤代碼。

有沒有人有任何想法?

謝謝。

回答

3

如果您已加載模塊,請使用php-ffmpeg api而不是exec。只有在模塊沒有加載時運行exec,否則你已經將模塊加載了一無所有(這意味着你根本沒有使用該模塊)。

您收到的錯誤來自ffmpeg二進制文件(不是擴展名,儘管您根本沒有使用擴展名),因此請搜索ffmpeg status 127 error來解決與ffmpeg相關的問題。

+0

您好,感謝您的答覆。如何使用php-ffmpeg api轉換文件?我目前使用它獲取變量,如大小和比特率等。此外,我無法找到ffmpeg 127錯誤的任何信息。是exec命令的127錯誤代碼,因爲它找不到路徑? – Kit 2011-01-28 12:38:05

1

我有同樣的問題(ffmpeg的不通過的exec /系統運行)

我整理它通過使用/usr/bin/ffmpeg而不是隻ffmpeg