Запускать с сайта не стоит, т.к завершения скрипта будет ожидать браузер и запрос отвалится с 504 ошибкой
Я реализовывал подбное так:
1)web складывает инфу о задании в базу данных.
2)отдельный скриптв вечном while (true){
sleep(интервал проверки);
проверает есть ли задания в базе и их выполняет.
после выполнения складывает инфу о готовности или проблемах с видео в бд.
}
для запуска сторонних программ брать функции
отсюда
так же я собирал все логи с помощью операторов перенаправления вывода >>,1>> ,2>>
по контролю выходных файликов следил за отвалившимися воркерами