Move file to uploads directory (collection/uploads?) master_file/create
Characterize
Depend on encoder/encoder shim to transfer derivatives to streaming server/location
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.
Submit job, ID is returned
Use ID for status query
Other Proposed Features
Cancel job and retract derivatives (time intensive and some services charge per minute)
Need to support priority flagging, not present in some codebases
Input file
Output file
Encoder settings
Job ID
Job ID
Status
Progress %
Current operations
URL
Technical metadata (input file/output files)
Errors
Job ID
Status
Progress %
Current operations
URL
Technical metadata (input file/output files)
Errors
Job ID
Cancellation confirmation
Job ID
Retraction confirmation
Zencoder uses a 'Job' to transcode media. The Job specifies all settings in a single package.
API versioned by version number, e.g. 'v2'
Each Job, Input and Output is assigned an (independent) ID
Job states include pending, waiting, processing, finished, failed, and cancelled.
Input states include pending, waiting, processing, finished, failed, and cancelled.
Output states include waiting, queued, assigning, processing, finished, failed, cancelled and no input.
Input
Encoder settings (optional)
Job ID
Output ID
Job details for each job
Job ID
Job details
Input details
Output details
State
Job ID
Job state
Job progress
Input state
Input progress
Output state
Output progress
Register for a notification when a job is completed via HTTP POST, email, etc.
Amazon uses a 'Pipeline' (queue) to transcode a 'Job' according to the settings specified in a 'Preset'.
API versioned by date, e.g. '2012-09-25'
The value of Job:Status
is one of the following: Submitted
, Progressing
, Complete
, Canceled
, or Error
.
Input file
Output file
Preset ID (encoder settings)
Job details
Input settings
Output details
Job ID
Input details
Output details
Job details
Register for a notification when a Job changes state via HTTP, email, etc.