class CarrierwaveStreamioFfmpeg::Options
Public Instance Methods
codec(format)
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 85 def codec(format) case format when :mp4 { video_codec: 'libx264', audio_codec: 'ac3' } when :webm { video_codec: 'libvpx', audio_codec: 'libvorbis' } when :ogv { video_codec: 'libtheora', audio_codec: 'libvorbis' } else { video_codec: 'libx264', audio_codec: 'libvo_aacenc' } end end
file_type(format)
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 102 def file_type(format) case format when :mp4 'mp4' when :webm '.webm' when :ogv '.ogv' else '.mp4' end end
set_audio_quality(opts, file)
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 32 def set_audio_quality(opts, file) case opts[:quality] when :very_low 64 when :low 96 when :med 128 when :high 256 when :very_high 320 else (file.audio_bitrate)/100 end end
set_file_resolution(opts, file)
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 66 def set_file_resolution(opts, file) case opts[:resolution] when :p240 '352 x 240' when :p360 '480 x 360' when :p480 '858 x 480' when :p720 '1280 x 720' when :p1080 '1920 x 1080' when :p2160 '3860 x 2160' else file.resolution end end
set_video_frames(opts, file)
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 15 def set_video_frames(opts, file) case opts[:quality] when :very_low 15 when :low 24 when :med 25 when :high 30 when :very_high 60 else file.frame_rate end end
set_video_quality(opts, file)
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 49 def set_video_quality(opts, file) case opts[:quality] when :very_low 128 when :low 384 when :med 1250 when :high 5000 when :very_high 15000 else (file.video_bitrate)/100 end end
transcoder_options(preserve_aspect_ratio)
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 115 def transcoder_options(preserve_aspect_ratio) if preserve_aspect_ratio { preserve_aspect_ratio: preserve_aspect_ratio } else { preserve_aspect_ratio: :height } end end
video_options(file, opts = {})
click to toggle source
# File lib/carrierwave_streamio_ffmpeg/options.rb, line 4 def video_options(file, opts = {}) opts[:resolution] = set_file_resolution(opts, file) opts[:video_bitrate] = set_video_quality(opts, file) opts[:frame_rate] = set_video_frames(opts, file) opts[:audio_bitrate] = set_audio_quality(opts, file) opts[:threads] = 1 format = opts[:format] opts = opts.except(:quality, :preserve_aspect_ratio, :format) opts.merge!(codec(format)) end