FFMPEG和PHP的问题

时间:2009-12-08 18:19:41

标签: php ffmpeg

我知道这本身并不是一个编程问题,而是一个设置问题,但仍然是:

我正在尝试使用PHP脚本转换带有FFMPEG的视频,遵循本教程:

  

http://vexxhost.com/blog/2007/05/20/how-to-convertencode-files-to-flv-using-ffmpeg-php/

FFMPEG运行良好,我已多次从命令行使用它。 PHP似乎也运行良好。我还安装了ffmpeg-php,它似乎正在加载文件。

问题出在我尝试在PHP中执行以下操作时:

  

$ srcFile =“p1.avi”;

     

$ ffmpegObj = new ffmpeg_movie($ srcFile);

无论如何,PHP都会返回:

  

警告:无法在xx行上的/var/www/converter.php中打开电影文件p1.avi

显然,无论我之后使用$ ffmpegObj做什么电话都会引发致命错误。我完全陷入困境,广泛的谷歌搜索没有多大帮助。

如果你必须知道,我正在使用Ubuntu 9.04和默认的LAMP服务器软件包以及php5-ffmpeg,并且我按照我在Ubuntuforums上找到的教程编译了ffmpeg(我链接到它但是stackoverflow赢了不要让我)

谢谢!

5 个答案:

答案 0 :(得分:1)

您运行脚本的用户是否有权打开该文件?查看ls -l /var/www/flashvideo/p1.avi

答案 1 :(得分:1)

最后!正如你们有些人所建议的那样,目录和文件都没有适当的权限可以被我的脚本修改。我改变了它们,现在一切正常=)。因为几个小时没注意到这一点,我是个白痴:P

谢谢你们!

答案 2 :(得分:0)

尝试指定电影的完整路径,如下所示:

$srcFile = "/home/path/something/p1.avi";
$ffmpegObj = new ffmpeg_movie($srcFile);

答案 3 :(得分:0)

我知道这是一个旧线程,但是因为我刚刚碰到这个...如果ffmpeg_movie传递了一部腐败的电影,它似乎也会发出警告。在您真正尝试创建对象之前无法判断。我遇到的最佳解决方案是禁止警告,然后在与资源交互之前检查资源:

$movie = @new ffmpeg_movie($path_to_file,false);
$duration = isset($movie->ffmpeg_movie)?intval($movie->getDuration()):'Bad File?';

答案 4 :(得分:0)

我有同样的问题。这既不是错误的道路,也不是腐败的电影。路径是绝对的,文件存在且可读,权限是0777.可悲的是,我不知道该怎么做。

UPD:问题是一个过时的(来自repos)ffmpeg版本,有很多bug。