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, AI_DETECTOR_RESULT,

version

✔

Long

The version of this resource, used for Optimistic Locking

int64