Создание видеофайла с помощью PHP

У меня есть сценарий для создания видеофайлов с использованием diff. таких как изображения, аудиофайлы.

Я хочу сделать это: найти аудиофайлы из определенной папки и установить ее в качестве фоновой музыки, а также получить изображения из определенной папки и показать их по одному.

Поэтому в основном у меня есть изображения и аудиофайлы, и я хочу создать видеофайл с использованием этих ресурсов с помощью PHP.

Может ли кто-нибудь предложить начальную точку для этого? Сделали захват изображения с видео и конвертировали видео с помощью Ffmpeg, поэтому я думаю о Ffmpeg, но, я думаю, он не позволит создавать видео.

Solutions Collecting From Web of "Создание видеофайла с помощью PHP"

ffmpeg позволит вам создавать видео с неподвижных изображений.

Например, чтобы создать видео с частотой кадров в 10 кадров в секунду, из изображений 001.jpg …. 999.jpg:

ffmpeg -r 10 -b 1800 -i %03d.jpg test1800.mp4 

Вы можете использовать потоки мультимедиа (аудио и видео), например (добавить соответствующие опции кодека для битрейта и т. Д.)

 ffmpeg -i video.mp4 -i audio.wav -map 1.1 -map 2.1 output.mp4 

Я больше не буду вдаваться в подробности, так как ffmpeg – это боль (изменения в несовместимых вариантах между версиями, и в зависимости от того, как они были скомпилированы), и поиск подходящего для вас параметра скорости / сжатия / разрешения – это пробная версия и-ошибок.

В Ubuntu вам понадобятся PHP5, ffmpeg и доступ к двоичному файлу ffmpeg, чего легко достичь:

 apt-get install php5 ffmpeg 

Я использую эту функцию php для генерации видео mp4 с одного изображения gif и одного mp3-файла, причем исходное изображение и выходные видеофайлы имеют 720×576 пикселей:

 function mix_video($audio_file, $img_file, $video_file) { $mix = "ffmpeg -loop_input -i " . $img_file . " -i " . $audio_file . " -vcodec mpeg4 -s 720x576 -b 10k -r 1 -acodec copy -shortest " . $video_file; exec($mix); } 

пример использования:

 $audio_file = "/path/to/mp3-file"; $img_file = "/path/to/img-file"; $video_file = "/path/to/video-file"; mix_video($audio_file, $img_file, $video_file); 

Решение Фила – правильный подход. Выясните, что нужно сделать, задокументировав себя на ffmpeg (это беспорядочно, и я не могу обвинить его в том, что он не хотел делать домашнее задание), а затем называть его из php.

Беглый googling показывает php wrappers (например, http://ffmpeg-php.sourceforge.net/ ). Если ни один из них не является последним / полным, придерживайтесь выдачи необходимых команд оболочки из php.

 ImageMagick convert -delay 100 -quality 75 photo1.jpg photo2.jpg movie.mpg 

Или

 http://dvd-slideshow.sourceforge.net/wiki/Main_Page