Class: ActiveEncode::EngineAdapters::ElasticTranscoderAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/active_encode/engine_adapters/elastic_transcoder_adapter.rb

Constant Summary collapse

JOB_STATES =
{
  "Submitted" => :running, "Progressing" => :running, "Canceled" => :cancelled,
  "Error" => :failed, "Complete" => :completed
}.freeze

Instance Method Summary collapse

Instance Method Details

#cancel(id) ⇒ Object

Can only cancel jobs with status = “Submitted”



37
38
39
40
# File 'lib/active_encode/engine_adapters/elastic_transcoder_adapter.rb', line 37

def cancel(id)
  response = client.cancel_job(id: id)
  build_encode(get_job_details(id)) if response.successful?
end

#create(input_url, options = {}) ⇒ Object

Require options to include :pipeline_id, :masterfile_bucket and :outputs Example :outputs value: [{ key: “quality-low/hls/fireworks”, preset_id: ‘1494429796844-aza6zh’, segment_duration: ‘2’ },

{ key: "quality-medium/hls/fireworks", preset_id: '1494429797061-kvg9ki', segment_duration: '2' },
{ key: "quality-high/hls/fireworks", preset_id: '1494429797265-9xi831', segment_duration: '2' }]


19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/active_encode/engine_adapters/elastic_transcoder_adapter.rb', line 19

def create(input_url, options = {})
  s3_key = copy_to_input_bucket input_url, options[:masterfile_bucket]
  job = client.create_job(
    input: { key: s3_key },
    pipeline_id: options[:pipeline_id],
    output_key_prefix: options[:output_key_prefix] || "#{SecureRandom.uuid}/",
    outputs: options[:outputs],
    user_metadata: options[:user_metadata]
  ).job

  build_encode(job)
end

#find(id, _opts = {}) ⇒ Object



32
33
34
# File 'lib/active_encode/engine_adapters/elastic_transcoder_adapter.rb', line 32

def find(id, _opts = {})
  build_encode(get_job_details(id))
end