2013-03-27 104 views
1

中使用exec()或shell_exec()運行所以我一直在努力讓FFMPEG對上傳到我的網站的視頻進行編碼。上傳腳本調用PHP程序執行exec()來運行一個腳本調用encode.php,看起來像這樣:FFMPEG無法在PHP

include("include/config.inc.php"); 
$videoID = $argv[1]; 
exec("ffmpeg -i " . $_SERVER['DOCUMENT_ROOT'] . "/processing/" . $videoID. ".mp4 -vcodec libx264 -vpre normal -s 1280x720 -r 30 -acodec libfaac " . $_SERVER['DOCUMENT_ROOT'] . "/videos/" . $videoID . ".mp4"); 
$connect = mysql_connect($dbhost, $dbusername, $dbpassword); 
mysql_select_db($dbname, $connect); 
$query = mysql_query("UPDATE `videos` SET `isProcessing` = 0 WHERE `id` = '$videoID' LIMIT 1"); 

然而,什麼也沒有發生到視頻都沒有。我試過使用FFMPEG的完整路徑,但這也不起作用。我知道該腳本正在執行,因爲isProcessing在數據庫中設置爲0。

也許我只是無知,但我似乎無法弄清楚這一點。任何幫助將不勝感激。

+1

有一個看的error_log文件,看看是否有一些信息從FFmpeg的命令執行的輸出來。您還可以執行捕獲其輸出的命令,並顯示此類輸出(用於調試目的)。 – jap1968 2013-03-27 06:40:44

+0

你的視頻有多長?由於FFmpeg僅在轉換結束時使您的視頻可用。也許你的FFmpeg轉換速度非常慢並且掛起,因爲你使用的是libx264,大小爲1280x720。您可以使用'-t 10'設置10秒的時間捕捉來縮短視頻。只需測試一下,看看會發生什麼。 – 2013-03-27 08:01:44

回答