【发布时间】:2012-07-23 05:48:24
【问题描述】:
我正在尝试安装 FFMPEG-PHP 以进行后端视频转换并捕获我网站上传的视频用户的缩略图。但是我遇到了问题,我不确定它到底是什么。
环境: Ubuntu 服务器 12.04 PHP5和Apache2(没有使用LAMP包。单独安装。)
要安装 ffmpeg,我遵循了本教程,http://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide。
在命令行上工作: 当我尝试从命令行转换时,它可以工作。
avconv -i test.mp4 test.flv - 有效
ffmpeg -i test.mp4 test.flv - 工作,说使用 avconv
文件夹权限已更改为 R 777。
PhpInfo():
- ffmpeg-php 版本:0.6.0-svn
- ffmpeg-php 构建于:2012 年 2 月 25 日 17:59:17
- ffmpeg-php gd 支持:启用
- ffmpeg libavcodec 版本:Lavc53.34.0
- ffmpeg libav格式版本:Lavf53.20.0
- ffmpeg swscaler 版本 SwS2.1.0
我在某处阅读了以下代码,
extension_loaded('ffmpeg') or die('Error in loading ffmpeg');
如果扩展加载成功,上面的代码不应该给出任何输出。我的没有显示任何错误。
PHP 中的代码不起作用,
exec("ffmpeg -i test2.mp4 test2.flv", $command_output, $result);
if ($result !== 0) {
echo 'Command failed!<br>';
print_r($command_output);
die();
}
echo 'success!';
print_r($command_output);
它打印 Command failed with as empty array, Array ( ).
希望有人可以帮助指导我。
【问题讨论】:
-
如果您安装了
ffmpeg-php,为什么还要使用exec()?查看ffmpeg-php.sourceforge.net/doc/api/index.php 以获取有关如何使用它的更多信息。如果您仍想使用exec(),请确保使用正确的文件位置。我猜test2.mp4与您正在运行的 PHP 脚本不在同一个位置。$result的值是多少? -
test2.mp4 与我的脚本在同一个文件夹中,因为我创建它只是为了测试。 '$movie = new ffmpeg_movie(test.mp4)', '$movie->getDuration()' 返回正确的值。但是,我不确定如何使用引用的 url 从 .mp4 转换为 .flv。另外,我尝试了本教程,youtubeclone.wordpress.com/2007/05/26/…。但是,它不起作用。 '$result' 没有返回任何内容。
-
之前为 $result 错误地解释了您的 qn。 $result 值为 int(127)。
标签: ffmpeg-php