2013-03-27 107 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

回答