Skip to content

Instantly share code, notes, and snippets.

@hyuki0000
Last active February 24, 2018 07:16
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hyuki0000/66990a8152e78eb48c38d31991383114 to your computer and use it in GitHub Desktop.
Save hyuki0000/66990a8152e78eb48c38d31991383114 to your computer and use it in GitHub Desktop.
mov-to-gif - .movからanimation GIFを作る
#!/usr/bin/env ruby
require 'tmpdir'
if ARGV.length != 3
puts "mov-to-gif: Create animation GIF"
puts "Usage: mov-to-gif 1 input.mov output.gif -- normal (x1)"
puts "Usage: mov-to-gif 2 input.mov output.gif -- faster (x2)"
puts "Usage: mov-to-gif 0.5 input.mov output.gif -- slower (x0.5)"
abort
end
rate = ARGV[0].to_f
movname = ARGV[1]
gifname = ARGV[2]
Dir.mktmpdir do |tmpdir|
palette = "#{tmpdir}/palette.png"
cmd = "ffmpeg -i #{movname} -vf fps=20,palettegen=stats_mode=diff -y #{palette}"
puts cmd
system(cmd)
cmd = "ffmpeg -i #{movname} -i #{palette} -lavfi setpts=PTS/#{rate},fps=20,paletteuse -y #{gifname}"
puts cmd
system(cmd)
end
# cf.
# http://genjiapp.com/blog/2015/05/05/generating-much-better-animated-gif-from-movie-file.html
# http://fftest33.blog.fc2.com/blog-entry-36.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment