Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create videos from images with php?

Let's say I have 10 images and I want to combine those images in a video like a slideshow.

For example I want to show each image for 5 seconds and then continue with next image for another 5 seconds.

If it's possible, it will be perfect to include music and some descriptive text too.

Is there a sample code for this may be with ffmpeg library ?

like image 842
mirza Avatar asked Feb 13 '12 22:02

mirza


2 Answers

My first thought was to shell out to the ffmpeg command with something like this.

Creating a Video from Images

ffmpeg can be used to stitch several images together into a video. There are many options, but the following example should be enough to get started. It takes all images that have filenames of XXXXX.morph.jpg, where X is numerical, and creates a video called "output.mp4". The qscale option specifies the picture quality (1 is the highest, and 32 is the lowest), and the "-r" option is used to specify the number of frames per second.

ffmpeg -r 25 -qscale 2 -i %05d.morph.jpg output.mp4

(The website that this blurb was taken from is gone. Link has been removed.)

Where 25 means 25 images per second. You could set this to 1 for a slight (1 sec) delay or use decimals, IE: 0.5 for a 2 second delay.

You can then combine a video and audio stream with something like this.

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -b:a 128k final.mp4

Of course choose your appropriate codecs. If you want an mp4 use libx264 for video and aac (built into ffmpeg and no longer "experimental") for audio.

Just remember that if you choose to use a method like this that ffmpeg output goes, by default, to stderr for when you try to read it. It can be redirected to stdout if you prefer.

like image 158
Timeout Avatar answered Nov 17 '22 14:11

Timeout


The first thing that came to mind for me was imagemagick. I've used it with PHP for a lot of image manipulation and I know it supports reading a decent amount of video formats and according to that link it supports writing to some too.

like image 5
M. Laing Avatar answered Nov 17 '22 15:11

M. Laing