У меня есть php для запуска команды оболочки для запуска аудио / видео потока через ffmpeg.Я попробовал синтаксис в консоли (тот же пользователь, что и php [www-data] и из того же места, что и php-скрипт:
pi@raspberrypi:/var/www/html/ $ sudo -H -u www-data ffmpeg {parameters}
. Это прекрасно работает. Обааудио и видео видно на YouTube. Когда я запускаю из php с точно такими же параметрами
$pid = exec("ffmpeg {parameters} 2> out.txt");
, ответ будет
cannot open audio device hw:1,0 (No such file or directory)
Моим первым предположением было то, чтоэто было как-то связано с пользователями и группами, но я не могу сказать, что. Я даже поместил www-данные в группу sudo. Все еще не работает.
Если я делаю
exec("whoami 2> user.txt");
файл user.txt создан (с владельцем www-данных), но остается пустым. Кто-нибудь может мне помочь?
ОБНОВЛЕНИЕ Когда я перезагружаю пи, он работает только один раз.думаю, что как-то после закрытия потока
exec("kill -9 ".$pid);
звук все еще занят. Сообщение об ошибке изменяется в
cannot open audio device hw:1,0 (Device or resource busy)
видео (через uv4l: localhost: порт / поток / видео.mjpeg) есть в наличии.