【发布时间】:2013-03-27 04:38:49
【问题描述】:
所以我一直在努力让 FFMPEG 对上传到我网站的视频进行编码。上传脚本使用 exec() 调用 PHP 二进制文件来运行一个名为 encode.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。
也许我只是一无所知,但我似乎无法弄清楚这一点。任何帮助将不胜感激。
【问题讨论】:
-
查看error_log文件,看看是否有一些来自ffmpeg命令执行输出的信息。您还可以执行捕获其输出的命令,并显示此类输出(用于调试目的)。
-
您的视频有多长?由于 FFmpeg 仅在转换结束时使您的视频可用。也许您的 FFmpeg 转换非常缓慢且挂起,因为您使用的是 1280x720 大小的 libx264。您可以通过使用
-t 10将时间捕获设置为 10 秒来缩短视频。只需测试一下,看看会发生什么。