OpenTV ENTera & OpenTV Platform Documentation

Setting up VOD workflows – "spare" material

Standard workflow steps

Job creation and processing flow

job_creation.png

Encoding step


The Content and Product Manager (CPM) (via the Content Workflow Manager – CWM) drives encoding jobs against the encoders using profiles that are pre-configured in the encoder.

An encoding job takes the following as its inputs:

  • A reference to the encoding profile to be applied

  • A source URL that specifies the location of the source asset

  • An output URL that specifies where the generated, multi-bitrate pivot file will be located

The CPM (via CWM) polls the status of the job and when it is done, requests the full URL of the generated pivot file.

This is different from the one-stage workflow in the following respects:

Encoding profiles must be defined at the main content level. (One-step profiles are defined at the content version level.)
A reference asset (the pivot file) is created that is also linked from the main content with an asset-device link (ADL), as this is not a playable asset.

Packaging step


// TODO: update – with JITP, it doesn't work like this.

The CPM (via CWM) drives packaging jobs against the configured packagers using profiles that are preconfigured in the packager.

A packaging job takes the following as its inputs:

  • A reference to the packaging profile to be applied

  • A source URL that specifies the location of the source pivot file

  • A list of DRM identifiers for the DRM schemes to be used to protect the content

The CPM (via CWM) polls the status of the job and when it is done, requests the relative URL of the generated, playable asset.

This interaction is defined by NAGRA via the Packaging API (an extension of the encoder control API). Packagers must implement this API so they can work with the NAGRA CPM/CWM. If that is not the case, a specific API adaptation is required (for example, for Harmonic VOS360).

This is different from the one-stage workflow in the following respects:

  • It uses a new packaging API definition and client-side implementation in CWM (packaging jobs).

  • Packaging profiles are linked to technical versions.

  • The output of the packaging job includes generation of a playable asset.

A packaging profile is associated with each technical version of the asset.

For details of the profile parameters and device parameters, see ml-sp-cwm-generic-encoding_User_Guide.doc. // TODO: change this to a link once the page exists.

External/public interfaces

Workflow manager has following external interfaces

  1. Encoder interface

  2. Asset Publishing interface (for Purge)

  3. Job Management APIs

The CWM interfaces both the external encoder and packager systems via the CPM/CWM "Generic interface for encoder control" SOAP interface and the ‘Asset Publishing Interface”. If these systems do not implement this interface, additional "adaptor" modules are needed to translate to the encoder's or packager's native interfaces.

Job Management APIs


Few examples for query filters:

Filter query to retrieve a particular job id:

[<baseurl>/workflowJobs?filter=](http://localhost:8880/workflow/v1/workflowJobs?filter=){ "id": "Prof1_31_tc_TechnicalContent" }

Filter query for selected owner ids:  

<baseUrl>/workflowJobs?filter={"ownerId":{"$in":["tcId1","tcId2"]}}

Filter query for jobs start date greater than particular date :

 <baseUrl>[/workflowJobs?filter=](http://localhost:8880/workflow/v1/workflowJobs?filter=){ "start" : { "$gt" : { "$date" : "2013-05-09T07:40:56.983Z"}}}

Filter query with pagination and sorting:

[<baseUrl>/workflowJobs?filter=](http://localhost:8880/workflow/v1/workflowJobs?filter=){ "priority": 1 }&sort=[profileData.id](http://profiledata.id/),1&page=1&limit=6

Though there are APIs to Create/Update/Delete Jobs, they should not be used externally by operators as it might cause data discrepancies. These are internally used by CPM.

List of supported adaptors

  • Harmonic VOS 360

  • Elemental

CPM Data Model

CPM_data_model2.png

Assumptions

  • Packaging profiles are pre-configured in the packager so that the CWM just needs to send a reference to the profile in the packaging job.

  • Consistent DRM signalling with JITP
    A license for a piece of content might be requested before a key for the same content is required for encryption (license pre-delivery).
    The license server embeds the same key that the KSS returns to the packager no matter which request comes first.

  • The workflow manager should be able to communicate with the Encoder via Http.

Limitations

  • This design only supports a two-stage workflow using the Nagra Encoder-Control API.
    Third-party encoder APIs are not supported, and a separate effort would be needed (for example, to add an adaptor or to support them natively).

  • It covers VOD assets only (no catch-up or nPVR).


BACKUP

A workflow consists of the following:

  • A profile for pivot or package creation

  • A processing device – defined as being of type processingDevice in Business Configuration Manager (BCM)

  • A source device – defined as being of type sourceDevice in BCM

  • A destination device – defined as being of type destinationDevice in BCM

In addition:

  • The encoding profile must be attached to an EditorialContent that has a reference asset.

  • The packaging profile must be attached to a TechnicalContent that does not have a playable asset.

  • The processing device holds the details of the host that provides the server side of the EncoderControl interface.