У меня есть сценарий для создания видеофайлов с использованием diff. таких как изображения, аудиофайлы.
Я хочу сделать это: найти аудиофайлы из определенной папки и установить ее в качестве фоновой музыки, а также получить изображения из определенной папки и показать их по одному.
Поэтому в основном у меня есть изображения и аудиофайлы, и я хочу создать видеофайл с использованием этих ресурсов с помощью PHP.
Может ли кто-нибудь предложить начальную точку для этого? Сделали захват изображения с видео и конвертировали видео с помощью Ffmpeg, поэтому я думаю о Ffmpeg, но, я думаю, он не позволит создавать видео.
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