create_video.sh
· 2.8 KiB · Bash
Исходник
#!/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.
# Modified Version from: nv1t (coz of many image files)
# 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=24
RESOLUTION=800x600
# 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
NEWNAME=IMG_$(printf "%06d" $EII).JPG
#echo Renaming $i to $NEWNAME
mv "${i}" "rename/${NEWNAME}"
mogrify -resize $RESOLUTION "rename/${NEWNAME}"
EII=$(($EII+1))
done
# Now create the video using ffmpeg
#cat rename/*.JPG | ffmpeg -f image2pipe -r $FRAMERATE -vcodec mjpeg -i - -vcodec libx264 out_$FRAMERATE.mp4
ffmpeg -f image2 -r $FRAMERATE -i rename/IMG_%06d.JPG movie_$FRAMERATE.mp4
| 1 | #!/bin/bash |
| 2 | |
| 3 | # This is a script to create a video from series of JPEG images |
| 4 | # Call it in a folder full of JPEGs that you want to turn into a video. |
| 5 | # Written on 2013-01-08 by Philipp Klaus <philipp.l.klaus →AT→ web.de>. |
| 6 | # Check <https://gist.github.com/4572552> for newer versions. |
| 7 | # Modified Version from: nv1t (coz of many image files) |
| 8 | |
| 9 | # Resources |
| 10 | # * http://www.itforeveryone.co.uk/image-to-video.html |
| 11 | # * http://spielwiese.la-evento.com/hokuspokus/index.html |
| 12 | # * http://ffmpeg.org/trac/ffmpeg/wiki/Create%20a%20video%20slideshow%20from%20images |
| 13 | # * http://wiki.ubuntuusers.de/FFmpeg |
| 14 | |
| 15 | set -x |
| 16 | |
| 17 | FRAMERATE=24 |
| 18 | RESOLUTION=800x600 |
| 19 | |
| 20 | # Rename the images into a sequence |
| 21 | # http://www.ralree.com/2008/08/06/renaming-files-sequentially-with-bash/ |
| 22 | EII=1 |
| 23 | # If sorting according to the file date, copy them using cp -a ../*.JPG ./ |
| 24 | for i in $(ls -tr *.JPG); do |
| 25 | NEWNAME=IMG_$(printf "%06d" $EII).JPG |
| 26 | #echo Renaming $i to $NEWNAME |
| 27 | mv "${i}" "rename/${NEWNAME}" |
| 28 | mogrify -resize $RESOLUTION "rename/${NEWNAME}" |
| 29 | EII=$(($EII+1)) |
| 30 | done |
| 31 | |
| 32 | # Now create the video using ffmpeg |
| 33 | #cat rename/*.JPG | ffmpeg -f image2pipe -r $FRAMERATE -vcodec mjpeg -i - -vcodec libx264 out_$FRAMERATE.mp4 |
| 34 | ffmpeg -f image2 -r $FRAMERATE -i rename/IMG_%06d.JPG movie_$FRAMERATE.mp4 |