Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! ruby -Ku
- # coding: utf-8
- require "aviglitch"
- AVI_IN = "1_avi_in"
- AVI_OUT = "2_avi_out"
- path = ARGV[0]
- ffmpeg_case = ARGV[1].nil? ? "2" : ARGV[1]
- aviglitch_case = ARGV[2].nil? ? "1" : ARGV[2]
- base = File.basename(path, File.extname(path))
- avi_in = "#{AVI_IN}/#{base}.#{ffmpeg_case}.avi"
- avi_out = "#{AVI_OUT}/#{base}.#{ffmpeg_case}.#{aviglitch_case}.avi"
- # ffmpeg
- e = ""
- case ffmpeg_case
- when "0"
- e = "ffmpeg -i #{path} #{avi_in}"
- when "1"
- e = "ffmpeg -i #{path} -c:v mpeg4 -vtag xvid #{avi_in}"
- when "2"
- e = "ffmpeg -i #{path} -c:v mpeg4 -vtag xvid -deinterlace -vf scale=640:-1 -q:v 5 #{avi_in}"
- end
- `#{e}` unless File.exist?(avi_in)
- # aviglitch
- case aviglitch_case
- when "0"
- a = AviGlitch.open avi_in
- a.glitch :keyframe do |f|
- nil
- end
- a.output avi_out
- when "1"
- a = AviGlitch.open avi_in
- frame_perv = nil
- a.frames.each do |frame|
- frame.data = frame_perv.data if frame.is_keyframe?
- frame_perv = frame
- end
- a.output avi_out
- end
Add Comment
Please, Sign In to add comment