【问题标题】:FFMPEG fails to run using exec() or shell_exec() in PHPFFMPEG 无法在 PHP 中使用 exec() 或 shell_exec() 运行
【发布时间】: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 秒来缩短视频。只需测试一下,看看会发生什么。

标签: php ffmpeg


【解决方案1】:

【讨论】:

最近更新 更多