Skip to content

Instantly share code, notes, and snippets.

@pklaus
Last active December 23, 2019 09:51
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save pklaus/4572552 to your computer and use it in GitHub Desktop.
Save pklaus/4572552 to your computer and use it in GitHub Desktop.
A Bash script to create a video from series of JPEG images. Ideal to create videos from timed sequences shot with a tripod. It uses mogrify (from imagemagick) to resize the images to FullHD and it then uses ffmpeg to create a video from the sequence of images.
#!/bin/bash
# This is a script to create a video from series of JPEG images
# Call it in a folder full of JPEGs that you want to turn into a video.
# Written on 2013-01-08 by Philipp Klaus <philipp.l.klaus →AT→ web.de>.
# Check <https://gist.github.com/4572552> for newer versions.
# Resources
# * http://www.itforeveryone.co.uk/image-to-video.html
# * http://spielwiese.la-evento.com/hokuspokus/index.html
# * http://ffmpeg.org/trac/ffmpeg/wiki/Create%20a%20video%20slideshow%20from%20images
# * http://wiki.ubuntuusers.de/FFmpeg
set -x
FRAMERATE=4
RESOLUTION=1920x1080
# Rename the images into a sequence
# http://www.ralree.com/2008/08/06/renaming-files-sequentially-with-bash/
EII=1
# If sorting according to the file date, copy them using cp -a ../*.JPG ./
for i in $(ls -tr *.JPG); do
ls $i
NEWNAME=IMG_`printf "%05d" $EII`.JPG
#echo Renaming $i to $NEWNAME
mv $i $NEWNAME
EII=`expr $EII + 1`
done
# Resize the images (replaces the files)
mogrify -resize $RESOLUTION *.JPG
# Now create the video using ffmpeg
cat *.JPG | ffmpeg -f image2pipe -r $FRAMERATE -vcodec mjpeg -i - -vcodec libx264 out_$FRAMERATE.mp4
#ffmpeg -f image2 -r $RATE -i IMG_%05d.JPG movie_$RATE.mp4
@suriyaameex
Copy link

I couldn't play this converted mp4 file in any media player.Can you please give me the solution

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment