class Abrizer::PackageDashShaka

Public Class Methods

new(filename, output_dir=nil) click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 6
def initialize(filename, output_dir=nil)
  @filename = filename
  @adaptations = Abrizer::AdaptationFinder.new(filepath: @filename).adaptations
end

Public Instance Methods

audio_input() click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 26
def audio_input
  dash_audio_filename = File.join 'dash', "#{basename}-audio-dash.m4a"
  "input=#{audio_filepath},stream=audio,output=#{dash_audio_filename}"
end
dash_directory() click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 43
def dash_directory
  File.join output_directory, 'dash'
end
make_directory() click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 39
def make_directory
  FileUtils.mkdir_p dash_directory unless File.exist? dash_directory
end
mpd_filename() click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 31
def mpd_filename
  File.join 'dash', "#{basename}.mpd"
end
package() click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 11
def package
  make_directory
  Dir.chdir output_directory
  `#{shaka_cmd}`
end
shaka_cmd() click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 35
def shaka_cmd
  %Q|shaka-packager #{video_inputs.join(' ')} #{audio_input} --profile on-demand --mpd_output #{mpd_filename}|
end
video_inputs() click to toggle source
# File lib/abrizer/package_dash_shaka.rb, line 17
def video_inputs
  @adaptations.map do |adaptation|
    filepath = adaptation.filepath(@filename)
    adaptation_basename = File.basename filepath, '.mp4'
    output_filename = File.join 'dash', "#{adaptation_basename}-dash.mp4"
    %Q|"input=#{filepath},stream=video,output=#{output_filename}"|
  end
end