@accountnujen

Exec (или ffmpeg) игнорирует get параметр. Как заставить его увидеть?

Точно не ясно, кто виноват, но я не могу выполнить из php вот такую команду:
$url = "rtsp://admin:admin@192.168.1.108:554/cam/realmonitor?&channel=1&subtype=0";
exec("ffmpeg.exe -rtsp_transport tcp -i $url -c copy -map 0 -t 10 out2.mkv 2>&1", $output, $return_var);
p($output);
p($return_var);

В ответе и в логах кракозябры, но в логах есть ещё вот такая строчка
[rtsp @ 000002891c688400] method OPTIONS failed: 404 Not Found
rtsp://admin:admin@192.168.1.108:554/cam/realmonitor?subtype=0: Server returned 404 Not Found

А если поменять местами subtype с channel, то ошибка будет
[rtsp @ 0000021f3c098400] method DESCRIBE failed: 404 Not Found
rtsp://admin:admin@192.168.1.108:554/cam/realmonitor?channel=1: Server returned 404 Not Found

. То есть второй GET параметр не применяется,
и доступа к потоку нет, потому что действительно по адресу ...realmonitor?subtype=0 - ничего нет.

Из консоли у меня всё работает, НО там тоже была загвоздка с ссылкой и её пришлось указывать в двойных кавычках (одинарные не принял)

Shell_exec тоже пробовал - не помогло.
  • Вопрос задан
  • 173 просмотра
Решения вопроса 1
@rPman
Из консоли у меня всё работает, НО там тоже была загвоздка с ссылкой и её пришлось указывать в двойных кавычках (одинарные не принял)

так поставь их:
exec("ffmpeg.exe -rtsp_transport tcp -i \"$url\" -c copy -map 0 -t 10 out2.mkv 2>&1", $output, $return_var);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы