我遇到了这个问题,结果证明这是 Apache 对公共目录的权限。
注意:我在 AWS 上运行 Ubuntu 14
安装 FFmpeg 后,我不得不将/var/www/*
所有权更改为www-data
.
sudo chown -R www-data:root /var/www
(这www-data
是这里的重要部分)
然后我运行了以下代码,当我通过 URL (Apache) 访问它时它可以工作
// test.php
$run = system("/opt/ffmpeg/bin/ffmpeg -i /var/www/html/input.mp4 -vf scale=640:480 /var/www/html/output.mp4 &");
if($run) {
echo "success";
} else {
echo "failed";
}
这/opt/ffmpeg/bin/ffmpeg
是我的 FFmpeg 运行的地方。你的可能是/usr/bin/ffmpeg
或其他的。您可以通过locate ffmpeg
在命令行中键入并查看它为您提供的列表来找到它。
输入文件是一个公共 .mp4 文件,而 output.mp4 文件将位于同一位置。
在你的命令行中php test.php
运行这个: - 工作 从你的浏览器运行这个:yourwebsite.com/test.php - 工作