PHP – Преобразование изображений в видео с помощью ffmpeg

Я хорош в php, но очень новичок в ffmpeg и exec stuffs.Now, я успешно установил ffmpeg через ssh.I здесь рассказал о каком-то stackoverflow и нашел ниже код для создания видео с использованием нескольких изображений.

<?php echo exec('ffmpeg -f image2 -i image%d.jpg video.mpg'); ?> 

У меня есть image1.jpg и image2.jpg в той же папке. Я запускаю этот php-код, но ничего не произошло … где сохраняется видео.mpg? и как проверить, успешно ли выполнялась функция exec или как ее отладить? Любая помощь приветствуется.

Если он успешно работал, video.mpg был сохранен в вашем текущем рабочем каталоге. При необходимости вы можете изменить имена файлов на абсолютные пути.

Чтобы проверить, успешно ли выполнялась функция exec() вы можете передать третий аргумент, чтобы получить статус выхода:

 exec('ffmpeg -f image2 -i image%d.jpg video.mpg', $output, $exit_status); 

В случае успеха $exit_status получит 0 значение, поэтому:

 if ($exit_status === 0) { // ran fine } else { // failed... } 

Если это ошибка, вы можете захотеть получить ошибки в $output . Вы можете переместить STDERR в STDOUT игнорируя исходный STDOUT таким образом:

 exec('ffmpeg -f image2 -i image%d.jpg video.mpg 2>&1 >/dev/null', $output, $exit_status); 

Затем вы можете $output чтобы узнать, что вы получили на STDERR :

 if ($exit_status !== 0) { print implode("\n", $output); } 

Если файл video.mpg уже существует, команда застрянет, вы можете передать флаг -y в ffmpeg для перезаписывания любого существующего файла:

 exec('ffmpeg -y -f image2 -i image%d.jpg video.mpg 2>&1 >/dev/null', $output, $exit_status);