Module: ActiveEncode::EngineAdapters::MediaConvertOutput
- Defined in:
- lib/active_encode/engine_adapters/media_convert_output.rb
Constant Summary collapse
- AUDIO_SETTINGS =
{ "AAC" => :aac_settings, "AC3" => :ac3_settings, "AIFF" => :aiff_settings, "EAC3_ATMOS" => :eac_3_atmos_settings, "EAC3" => :eac_3_settings, "MP2" => :mp_2_settings, "MP3" => :mp_3_settings, "OPUS" => :opus_settings, "VORBIS" => :vorbis_settings, "WAV" => :wav_settings }.freeze
- VIDEO_SETTINGS =
{ "AV1" => :av_1_settings, "AVC_INTRA" => :avc_intra_settings, "FRAME_CAPTURE" => :frame_capture_settings, "H_264" => :h264_settings, "H_265" => :h265_settings, "MPEG2" => :mpeg_2_settings, "PRORES" => :prores_settings, "VC3" => :vc_3_settings, "VP8" => :vp_8_settings, "VP9" => :vp_9_settings, "XAVC" => :xavc_settings }.freeze
Class Method Summary collapse
- .extract_audio_bitrate(settings) ⇒ Object
- .extract_audio_codec(settings) ⇒ Object
- .extract_audio_codec_settings(settings) ⇒ Object
- .extract_video_bitrate(settings) ⇒ Object
- .extract_video_codec(settings) ⇒ Object
- .extract_video_codec_settings(settings) ⇒ Object
- .extract_video_frame_rate(settings) ⇒ Object
- .tech_metadata(settings, output) ⇒ Object
Class Method Details
.extract_audio_bitrate(settings) ⇒ Object
74 75 76 77 78 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 74 def extract_audio_bitrate(settings) codec_settings = extract_audio_codec_settings(settings) return nil if codec_settings.nil? try(codec_settings, :bitrate) end |
.extract_audio_codec(settings) ⇒ Object
50 51 52 53 54 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 50 def extract_audio_codec(settings) settings.audio_descriptions.first.codec_settings.codec rescue nil end |
.extract_audio_codec_settings(settings) ⇒ Object
56 57 58 59 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 56 def extract_audio_codec_settings(settings) codec_key = AUDIO_SETTINGS[extract_audio_codec(settings)] settings.audio_descriptions.first.codec_settings[codec_key] end |
.extract_video_bitrate(settings) ⇒ Object
80 81 82 83 84 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 80 def extract_video_bitrate(settings) codec_settings = extract_video_codec_settings(settings) return nil if codec_settings.nil? try(codec_settings, :bitrate) || try(codec_settings, :max_bitrate) end |
.extract_video_codec(settings) ⇒ Object
61 62 63 64 65 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 61 def extract_video_codec(settings) settings.video_description.codec_settings.codec rescue nil end |
.extract_video_codec_settings(settings) ⇒ Object
67 68 69 70 71 72 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 67 def extract_video_codec_settings(settings) codec_key = VIDEO_SETTINGS[extract_video_codec(settings)] settings.video_description.codec_settings[codec_key] rescue nil end |
.extract_video_frame_rate(settings) ⇒ Object
86 87 88 89 90 91 92 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 86 def extract_video_frame_rate(settings) codec_settings = extract_video_codec_settings(settings) return nil if codec_settings.nil? (codec_settings.framerate_numerator.to_f / codec_settings.framerate_denominator.to_f).round(2) rescue nil end |
.tech_metadata(settings, output) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/active_encode/engine_adapters/media_convert_output.rb', line 33 def (settings, output) url = output.dig('outputFilePaths', 0) { width: output.dig('videoDetails', 'widthInPx'), height: output.dig('videoDetails', 'heightInPx'), frame_rate: extract_video_frame_rate(settings), duration: output['durationInMs'], audio_codec: extract_audio_codec(settings), video_codec: extract_video_codec(settings), audio_bitrate: extract_audio_bitrate(settings), video_bitrate: extract_video_bitrate(settings), url: url, label: File.basename(url), suffix: settings.name_modifier } end |