Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added Transcoding API

The Transcoding API will consist of a set of lightweight Ruby classes that will be able to initiate transcoding jobs, distribute derivative files, track/poll job status, and perform common maintenance tasks such as prioritization, cancellation, and cleanup.


ConsumerApplication code that makes use of the Transcoding API.

The set of classes and methods that make a given Transcoder available to a Consumer via the methods defined in the Transcoding API

JobA single piece of transcoding work

An implementation-specific provider of transcoding services. Examples include OpenCast Matterhorn, Kaltura, Zencoder, and Amazon Elastic Transcoder.

Transcoding APIThe set of classes and methods that can be used to initiate, track and manipulate trancoding jobs.



An abstract model that serves as the reference for an Implementation.

Class Methods

create(input, output, opts={})

Begin a transcoding operation. Returns a job.



Load and return a single job.



Find all jobs currently in the given state(s).

Instance attributes

  • job_id
  • state
  • current_operations
  • errors
  • original_filename
  • tech_metadata

Instance Methods

  • cancel!
  • canceled?
  • complete?
  • purge!
  • running?
  • update!

Chris's F2F Notes

File submission


Depend on encoder/encoder shim to transfer derivatives to streaming server/location

Chris's LCDX Notes

Basic Requirements for local encoding service

  • Start encoding job

  • status of encoding job

    • succeed/failed/canceled

    • current operation (could be hash due to parallelization of derivative creation)

    • errors

    • process complete

  • further in depth details of encoding job (media info report)

    • techMD (aspect ratio, framesize, bitrate)

    • derivatives created (id, url/label, hash)

    • id

    • original filename

Proposed Operation

Shared code, API layer for work.  Run by institution.  Avalon wants local FFMPEG queue based solution.  

  1. Submit job, ID is returned

  2. Use ID for status query

  3. Derivatives placed in proper location by service

Other Proposed Features

  1. Cancel job and retract derivatives (time intensive and some services charge per minute)

  2. Need to support priority flagging, not present in some codebases





Input file