From 09d4dc063ff777fd6dc821d6b3f47389860cd067 Mon Sep 17 00:00:00 2001 From: danielschubert Date: Wed, 22 Oct 2014 14:43:02 +0200 Subject: [PATCH] Delete VideoConversion.class.rb~ --- VideoConversion.class.rb~ | 126 -------------------------------------- 1 file changed, 126 deletions(-) delete mode 100644 VideoConversion.class.rb~ diff --git a/VideoConversion.class.rb~ b/VideoConversion.class.rb~ deleted file mode 100644 index fa39ba3..0000000 --- a/VideoConversion.class.rb~ +++ /dev/null @@ -1,126 +0,0 @@ -# This file is under GPL -# Do whatever you like -# written by Daniel Schubert 2014 - -class VideoConversion - # - converts any (hopefully) video into different other vids, f.e. three vids suitable for projekktor - # - needs ffmpeg and ffmpeg2theora - - # vidfile string video file name - # video_br int (video bitrate in k ) - # audio_br int (audio bitrate in k) - # aufio_q int (ogv audio quality between 1 and 10) - # video_q int (ogv video quality between 1 and 10) - # target string determines the output -> 'mpeg' - simple mpg , 'projekktor' - for projekktor - - def initialize(vidfile, width=640, height=360, target="mpg",video_br=600, audio_br=128, audio_q=5,video_q=7, freq = 48000) - @videofile = vidfile#.dump - #target size - @width = width - @height= height - @target= target - #for webm and mp4 files - @video_br = video_br - @audio_br = audio_br - #for ogv video - @audio_q = audio_q - @video_q = video_q - - @freq = freq - @temp_file = "temp-vid.mpg" - @aspect= nil - end -# - def get_aspect - # uses the output from ffprobe to calculate the aspect ratio from input video - w , h = nil - f = IO.popen("ffprobe -show_streams \"#{@videofile}\"") - vidinfo = f.readlines - f.close - # - unless vidinfo.empty? - vidinfo.each do |elem| - if elem =~ /display_aspect_ratio=\d+:\d+/ - b = elem.scan(/\d*:\d*/)[0].split(":") - @aspect = b[0].to_f/b[1].to_f - else - if elem =~ /width=\d+/ - w = elem.to_s.gsub!("width=", "").chomp.scan(/\d+/) - elsif elem =~ /height=\d+/ - h = elem.to_s.gsub!("height=", "").chomp.scan(/\d+/) - end - end - end - - if @aspect == nil - @aspect = w.join.to_f / h.join.to_f - end - - end - - return @aspect - end -# - def get_basename - bn = File.basename(@videofile, ".*") - return bn - end - - def converter - Dir.mkdir('converted') unless File.exists?('converted') - File.delete(@temp_file) if File::exists?(@temp_file) - # - target_aspect = (@width.to_f / @height.to_f) - # - begin - videobasename = get_basename - puts videobasename - # - if get_aspect > target_aspect # balken oben und unten - neue_hoehe = (@width/get_aspect).to_i - balken = (@height - neue_hoehe) / 2 - - # if padding applied older versions of ffmpeg need the "-padleft XX -padright XX " syntax - padding = "-vf \"pad=#{@width}:#{@height}:0:#{balken}\"" - - @height = neue_hoehe - elsif get_aspect < target_aspect # balken an die seite - neue_breite = (@height * get_aspect).to_i - balken = (@width - neue_breite) / 2 - - # if padding applied older versions of ffmpeg need the "-padleft XX -padright XX " syntax - padding = "-vf \"pad=#{@width}:#{@height}:#{balken}:0\"" - - @width = neue_breite - - else #aspect unchanged -> no padding - padding = "" - end - # - case @target - when "mpg" # simple mpeg - #simple mpg - `ffmpeg -i \"#{@videofile}\" -s #{@width}x#{@height} #{padding} -aspect #{target_aspect} -threads 2 -b #{@video_br}k -ab #{@audio_br}k -ar #{@freq} -metadata creation_time=\"#{Time.new}\" converted/\"#{videobasename}.mpg\"` - when "projekktor" #Projekktor - #temp video necessary for correct padding when converting to more formats - `ffmpeg -i \"#{@videofile}\" -s #{@width}x#{@height} #{padding} -aspect #{target_aspect} -b 5000k -ar 44100 -ab 320k #{@temp_file}` - - #conversions for projekktor - `ffmpeg -i #{@temp_file} -threads 2 -aspect #{target_aspect} -vcodec libx264 -b #{@video_br}k -vpre ipod640 -ab #{@audio_br}k -metadata creation_time=\"#{Time.new}\" converted/\"#{videobasename}.mp4\"` - `ffmpeg -i #{@temp_file} -threads 2 -aspect #{target_aspect} -b #{@video_br}k -ab #{@audio_br}k -metadata creation_time=\"#{Time.new}\" converted/\"#{videobasename}.webm\"` - `ffmpeg2theora #{@temp_file} -v #{@video_q} -a #{@audio_q} -o converted/\"#{videobasename}.ogv\"` - File.delete(@temp_file) - when "youtube" - puts "YouTube not implemented yet!" - exit - else - puts "Nothing valid chosen-- bye bye" - exit - end - - rescue => e - puts "Something went terribly wrong: ", e - end - end - # -end