【发布时间】:2017-08-07 09:48:34
【问题描述】:
我想找到解决这个问题的方法:我有一个图像列表,我想在服务器上转换成视频。我用 centOS 创建了一个虚拟机并安装了 ffmpeg 来测试它。当我在终端中输入这一行时,一切正常
sudo ffmpeg -r 10 -i img%03d.png -c:v libx264 -preset veryslow -crf 0
video.mp4
我想要的是当我点击一个按钮时调用它。代码如下:
Javascript:
$(document).ready(function(){
$("#ffmpeg").click(function(){
$.get('ffmpegBooklet.php', function (data) {
console.log(data);
});
});
});
PHP:
echo shell_exec("/usr/local/bin/ffmpeg -r 10 -i /img%03d.png -c:v
libx264 -preset veryslow -crf 0 video.mp4 2>&1");
我在浏览器控制台中得到的是: 来自 ffmpeg 的日志,最后 --> Permission denied
我尝试过使用静态构建(在互联网上阅读后),但我遇到了同样的问题。如果没有 sudo 权限,是否有任何解决方案可以做到这一点?我不想以 sudo 或一些棘手的命令通过 php 授予 sudo 权限来执行此操作,因为我认为它不安全。
欢迎任何帮助!感谢阅读:)
【问题讨论】:
-
不要以 root 身份运行,而是为输出路径设置适当的权限。
-
好的!权限的问题不是来自 ffmpeg 的执行,而是来自输出?我认为在没有 root 身份的情况下调用程序是问题
-
我已经尝试使用具有权限的文件夹(chmod 777),我得到了同样的错误:权限被拒绝
-
@P.G 检查输入。而不是
777将组更改为包含php进程所有者的组,并确保它可以写入。