Skip to content

Instantly share code, notes, and snippets.

@pklaus

pklaus/mkvideo.sh

Last active Dec 23, 2019
Embed
What would you like to do?
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

This comment has been minimized.

Copy link

@suriyaameex suriyaameex commented Dec 23, 2019

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