MediaObjectAnnotation

A special kind of Annotation, the MediaObjectAnnotation is used to contain the technical and descriptive metadata that applies to the entire MediaObject. As such, exactly one MediaObjectAnnotation will exist for each MediaObject, and its start and end fields will cover the entire clip’s timeline.

objectType, funnel, type

The MediaObjectAnnotation is an extension of StructuredAnnotation. So all properties of a StructuredAnnotation are also available on the MediaObjectAnnotation.

The objectType will be "MediaObjectAnnotation", the type of the StructuredAnnotation will be "TECHNICAL_DETAILS", and the funnel is set to "MediaObjectAnnotation".

Structured Description

The structured description of a MediaObjectAnnotation will contain technical information of the original media of the MediaObject.

{
    "creationTime": 0,
    "duration": 888,
    "fileName": "sintel-2048-surround.mp4",
    "fingerprints": [],
    "format": {
        "bit_rate": "2798663",
        "duration": "888.064000",
        "filename": "/mnt/content/719/719/672/470672/1610098256025_bdc97175-981c-4adc-b9ea-0d1d1c23440a.mp4",
        "format_long_name": "QuickTime / MOV",
        "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
        "nb_programs": 0,
        "nb_streams": 2,
        "probe_score": 100,
        "size": "310674005",
        "start_time": "0.000000",
        "tags": {
            "compatible_brands": "isomiso2avc1mp41",
            "copyright": "(c) copyright Blender Foundation | durian.blender.org",
            "creation_time": "1970-01-01T00:00:00.000000Z",
            "description": "Sintel open movie project",
            "encoder": "Lavf52.78.5",
            "major_brand": "isom",
            "minor_version": "512",
            "title": "Sintel"
        }
    },
    "frames": 21312,
    "mimeType": "video/mp4",
    "reelName": "sintel-2048-surround",
    "rotation": 0,
    "sampleRate": {
        "denumerator": 1,
        "drop_frame": false,
        "numerator": 24
    },
    "scanType": "Progressive",
    "size": 0,
    "time_mediainfo": 0,
    "time_total": 0,
    "timecode": 0,
    "tracks": [
        {
            "bits_per_sample": 8,
            "channel_index": 0,
            "channels": 0,
            "codingFormat": "h264",
            "codingProfile": "High",
            "duration": 888,
            "end": -1,
            "fileName": "sintel-2048-surround.mp4",
            "file_index": 0,
            "fingerprints": [],
            "fps": {
                "denumerator": 1,
                "drop_frame": false,
                "numerator": 24
            },
            "gopSize": -1,
            "height": 872,
            "index": 0,
            "kBitRate": 2352.698,
            "materialEnd": -1,
            "materialStart": 0,
            "mobile": false,
            "name": "sintel-2048-surround",
            "number": 0,
            "profile": -1,
            "samplingFrequency": 0,
            "segmentDuration": -1,
            "size": 310674005,
            "skip": false,
            "start": 0,
            "stitchCount": 0,
            "stitchX": 0,
            "stitchY": 0,
            "subsampling": "4:2:0",
            "tape": "sintel-2048-surround",
            "timecode": -1,
            "timecodeOffset": 0,
            "type": "VIDEO",
            "uuid": "90f7688a-2328-4692-b516-52861af16acf",
            "width": 2048
        },
        {
            "bits_per_sample": 0,
            "channel_index": 0,
            "channels": 6,
            "codingFormat": "aac",
            "codingProfile": "LC",
            "duration": 888.064,
            "end": -1,
            "fileName": "sintel-2048-surround.mp4",
            "file_index": 0,
            "fingerprints": [],
            "fps": {
                "denumerator": 1,
                "drop_frame": false,
                "numerator": 25
            },
            "gopSize": -1,
            "height": 0,
            "index": 1,
            "kBitRate": 440.754,
            "materialEnd": -1,
            "materialStart": 0,
            "mobile": false,
            "name": "sintel-2048-surround",
            "number": 1,
            "profile": -1,
            "samplingFrequency": 48000,
            "segmentDuration": -1,
            "size": 310674005,
            "skip": false,
            "start": 0,
            "stitchCount": 0,
            "stitchX": 0,
            "stitchY": 0,
            "subsampling": "",
            "tape": "sintel-2048-surround",
            "timecode": -1,
            "timecodeOffset": 0,
            "type": "AUDIO",
            "uuid": "ae242021-61ec-4dc0-b6c6-6acca44295f3",
            "width": 0
        }
    ],
    "version": "12.1.0"
}

Some of the more interesting fields are detailed below.

Field Description

duration

The length, in seconds, of the media.

frames

The length, in frames, of the media.

sampleRate

The frame rate of the media, represented as a fraction. There is also a boolean indicating whether drop frame calculations should be applied to the MediaObject’s timecodes.

{
    "denumerator": 1,
    "drop_frame": false,
    "numerator": 24
}

mimeType

The type of the original media for this MediaObject.

timecode

Timecode of the frame of the media, expressed in number of offsetted frames. This allows the first frame to have e.g. timecode 10:00:00:00 instead of 00:00:00:00. The drop_frame field of the sampleRate should be taken into account when calculating this value.

Property Reference

Field Name Required Type Description Format

annotationProductionId

Long

int64

circled

Boolean

clipMetadata

ClipMetadata

created

Date

The time when this resource was created

date-time

createdBy

String

The request or process that created this resource

createdByShareId

Long

int64

createdBySharedUserId

Long

int64

creatorId

Long

The id of the user who created this resource

int64

crossProduction

Boolean

customFields

CustomFields

deleted

Date

date-time

description

String

Textual contents of the Annotation

end

Long

The frame range described by the annotation runs up to end, but not including it. Should be less than or equal to the amount of frames the MediaObject has.

int64

funnel

String

Describes how the Annotation should be interpreted by the client application. Can be thought of as a subtype.

genericType

String

hasScreenshot

Boolean

id

Long

The id of this resource

int64

includeTranslatedTo

Boolean

includesFrom

Set of string

keyframeFrames

Long

int64

label

String

language

String

lastUpdated

Date

The time when this resource was last updated

date-time

loggingStatus

String

Enum: NOT_STARTED, EDITING, COMPLETED,

mediaObject

MediaObject

mediaObjectId

Long

int64

modifiedBy

String

The request or process responsible for the last update of this resource

nonPreferred

Boolean

objectType

String

The data model type or class name of this resource

origin

String

productionId

Long

int64

rating

Double

double

relatedToId

Long

int64

reviewStatus

String

screenshotMimeType

String

securityClasses

Set of string

Enum:

shotInformation

Shots

source

String

spatial

String

Link the Annotation to a specific part of the video or image frame. A Media Fragments Spatial Dimension description string is expected.

start

Long

First frame of the Annotation. 0 is the first frame of the clip. The start frame is included in the frame range the annotation describes.

int64

structuredDescription

Object

subtitlingStatus

String

Enum: NOT_STARTED, EDITING, COMPLETED, AUTOMATIC_STARTED, AUTOMATIC_COMPLETED, AUTOMATIC_FAILED,

subtitlingStatuses

SubtitlingStatusMap

systemFields

CustomFields

tags

Set of string

tinyThumb

List of ByteArray

byte

transcriptionStatus

String

Enum: NOT_STARTED, EDITING, COMPLETED, AUTOMATIC_STARTED, AUTOMATIC_COMPLETED, AUTOMATIC_FAILED,

transcriptionStatuses

TranscriptionStatusMap

translatedFromId

Long

int64

translatedToIds

Set of long

int64

type

String

Enum: MINIME, EBU_CORE, TRANSCRIBER, TECHNICAL_DETAILS, GENERIC, SUBTITLE, SHOT,

version

Long

The version of this resource, used for Optimistic Locking

int64