class Abrizer::PackageHlsShaka
Public Class Methods
new(filename, output_dir=nil)
click to toggle source
# File lib/abrizer/package_hls_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_hls_shaka.rb, line 27 def audio_input hls_audio_filename = "#{basename}-audio-$Number$.ts" hls_audio_playlist = "#{basename}-audio.m3u8" %Q| 'input=#{audio_filepath},stream=audio,segment_template=#{hls_audio_filename},playlist_name=#{hls_audio_playlist},hls_group_id=AUDIO,hls_name=ENGLISH' | end
hls_directory()
click to toggle source
# File lib/abrizer/package_hls_shaka.rb, line 45 def hls_directory File.join output_directory, 'hls' end
make_directory()
click to toggle source
# File lib/abrizer/package_hls_shaka.rb, line 41 def make_directory FileUtils.mkdir_p hls_directory unless File.exist? hls_directory end
mpd_filename()
click to toggle source
# File lib/abrizer/package_hls_shaka.rb, line 33 def mpd_filename File.join 'dash', "#{basename}.mpd" end
package()
click to toggle source
# File lib/abrizer/package_hls_shaka.rb, line 11 def package make_directory Dir.chdir hls_directory `#{shaka_cmd}` end
shaka_cmd()
click to toggle source
# File lib/abrizer/package_hls_shaka.rb, line 37 def shaka_cmd %Q|shaka-packager #{video_inputs.join(' ')} #{audio_input} --single_segment=false --hls_master_playlist_output=#{basename}.m3u8| end
video_inputs()
click to toggle source
# File lib/abrizer/package_hls_shaka.rb, line 17 def video_inputs @adaptations.map do |adaptation| filepath = adaptation.filepath(@filename) adaptation_basename = File.basename filepath, '.mp4' segment_template = "#{adaptation_basename}-$Number$.ts" adaptation_hls_playlist = "#{adaptation_basename}.m3u8" %Q|'input=#{filepath},stream=video,segment_template=#{segment_template},playlist_name=#{adaptation_hls_playlist}'| end end