我知道这本身并不是一个编程问题,而是一个设置问题,但仍然是:
我正在尝试使用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赢了不要让我)
谢谢!
答案 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。