У меня была эта проблема, и оказалось, что это было разрешение Apache в общедоступном каталоге.
Примечание: Я бегу Ubuntu 14 на AWS
После установки 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 - работает
Моя первая догадка есть разрешение вопроса. Можете ли вы поместить свой код здесь и вывод выполнения команды через exec – rakeshjain
Да, проблемы с командами exec почти всегда являются проблемами с разрешением. – ciruvan
@rakeshjain Я включил свой PHP-код, и я попытался получить вывод, но он не дает никакого результата. проверьте мой код, я его отредактировал. –