Miscellaneous

$annotation

Contains comments or descriptions for sibling properties, for example:

---
video:
- format: avc1
  sample_rate:
    numerator: 30000
    denominator: 1001
  duration: 419966
  bit_rate: 344639
  width: 300
  height: 240
  clean_aperture:
    left: 0
    right: 0
    top: 0
    bottom: 0
  orientation:
    rotation: 0
    mirrored: false
  field_order: progressive
  pixel_aspect_ratio:
    numerator: 1
    denominator: 1
  bit_depth: 8
  chroma_subsampling:
    horizontal: 2
    vertical: 2
  chroma_location: vertical_midpoint
  color_primaries: 6
  transfer_characteristics: 6
  matrix_coefficients: 6
  video_range: narrow
  black_level: 0.0
  white_level: 1.0
  $annotation:
    format: AVC (ISO 14496-10)
    sample_rate: 29.97 fps
    duration: 14.013 seconds
    bit_rate: 344.639 Kbit/s
    clean_aperture: 300x240
    pixel_aspect_ratio: '1:1'
    chroma_subsampling: '4:2:0'
    color_primaries: ITU-R BT.601-6 (525)
    transfer_characteristics: ITU-R BT.601-6
    matrix_coefficients: ITU-R BT.601-6
    black_level: 0%
    white_level: 100%
{
  "video": [
    {
      "format": "avc1",
      "sample_rate": {
        "numerator": 30000,
        "denominator": 1001
      },
      "duration": 419966,
      "bit_rate": 344639,
      "width": 300,
      "height": 240,
      "clean_aperture": {
        "left": 0,
        "right": 0,
        "top": 0,
        "bottom": 0
      },
      "orientation": {
        "rotation": 0,
        "mirrored": false
      },
      "field_order": "progressive",
      "pixel_aspect_ratio": {
        "numerator": 1,
        "denominator": 1
      },
      "bit_depth": 8,
      "chroma_subsampling": {
        "horizontal": 2,
        "vertical": 2
      },
      "chroma_location": "vertical_midpoint",
      "color_primaries": 6,
      "transfer_characteristics": 6,
      "matrix_coefficients": 6,
      "video_range": "narrow",
      "black_level": 0.0,
      "white_level": 1.0,
      "$annotation": {
        "format": "AVC (ISO 14496-10)",
        "sample_rate": "29.97 fps",
        "duration": "14.013 seconds",
        "bit_rate": "344.639 Kbit/s",
        "clean_aperture": "300x240",
        "pixel_aspect_ratio": "1:1",
        "chroma_subsampling": "4:2:0",
        "color_primaries": "ITU-R BT.601-6 (525)",
        "transfer_characteristics": "ITU-R BT.601-6",
        "matrix_coefficients": "ITU-R BT.601-6",
        "black_level": "0%",
        "white_level": "100%"
      }
    }
  ]
}

extension

Represents a property extension that is uniquely identified by a four character type code. An extension typically contains properties for a specific media or container format, for example:

---
audio:
- format: mp4a
  sample_rate:
    numerator: 44100
    denominator: 1024
  duration: 601630
  bit_rate: 796229186
  language: und
  region: '@@@'
  channels: 2
  label:
  - L
  - R
  bits_per_sample: 16
  properties:
    Mpeg4ObjectType: 2
    $annotation:
      Mpeg4ObjectType: Low Complexity (LC)
  extension:
  - type: mp4a
    audio_object_type: 2
    sampling_frequency_index: 4
    channel_configuration: 2
    extension_sampling_frequency_index: 0
    extension_audio_object_type: 0
    $annotation:
      type: MPEG-4 Audio Specific Config (ISO 14496-3)
      audio_object_type: Low Complexity (LC)
  - type: mp4s
    format: mp4a
    extension:
    - type: esds
      object_type_indication: 64
      stream_type: 21
    - type: chnl
      stream_structure: 1
      defined_layout: 0
      channel:
      - speaker_position: 0
      - speaker_position: 1
    version: 2
    channel_count: 2
    sample_rate: 310866464
    sample_size: 16
    $annotation:
      type: MPEG-4 Sample Entry (ISO 14496-12)
  $annotation:
    format: AAC
    sample_rate: 44.1 kHz
    duration: 13.642 seconds
    bit_rate: 796.229 Mbit/s
{
  "audio": [
    {
      "format": "mp4a",
      "sample_rate": {
        "numerator": 44100,
        "denominator": 1024
      },
      "duration": 601630,
      "bit_rate": 796229186,
      "language": "und",
      "region": "@@@",
      "channels": 2,
      "label": [
        "L",
        "R"
      ],
      "bits_per_sample": 16,
      "properties": {
        "Mpeg4ObjectType": 2,
        "$annotation": {
          "Mpeg4ObjectType": "Low Complexity (LC)"
        }
      },
      "extension": [
        {
          "type": "mp4a",
          "audio_object_type": 2,
          "sampling_frequency_index": 4,
          "channel_configuration": 2,
          "extension_sampling_frequency_index": 0,
          "extension_audio_object_type": 0,
          "$annotation": {
            "type": "MPEG-4 Audio Specific Config (ISO 14496-3)",
            "audio_object_type": "Low Complexity (LC)"
          }
        },
        {
          "type": "mp4s",
          "format": "mp4a",
          "extension": [
            {
              "type": "esds",
              "object_type_indication": 64,
              "stream_type": 21
            },
            {
              "type": "chnl",
              "stream_structure": 1,
              "defined_layout": 0,
              "channel": [
                {
                  "speaker_position": 0
                },
                {
                  "speaker_position": 1
                }
              ]
            }
          ],
          "version": 2,
          "channel_count": 2,
          "sample_rate": 310866464,
          "sample_size": 16,
          "$annotation": {
            "type": "MPEG-4 Sample Entry (ISO 14496-12)"
          }
        }
      ],
      "$annotation": {
        "format": "AAC",
        "sample_rate": "44.1 kHz",
        "duration": "13.642 seconds",
        "bit_rate": "796.229 Mbit/s"
      }
    }
  ]
}

properties

A collection of named properties that are implementation specific. Properties can be applied to media containers, media streams and various stream operators.

Property names are CamelCased to distinguish them from the composition schema. For example the following composition sets audio codec specific properties:

---
input:
  container:
  - name: pcm
    audio:
    - name: a1
output:
  container:
  - name: aac
    type: audi
    audio:
    - route:
        name: a1
      encode:
        type: mcac
        properties:
          BitRate: 128000
          MpegVersion: 1
{
  "input": {
    "container": [
      {
        "name": "pcm",
        "audio": [
          {
            "name": "a1"
          }
        ]
      }
    ]
  },
  "output": {
    "container": [
      {
        "name": "aac",
        "type": "audi",
        "audio": [
          {
            "route": {
              "name": "a1"
            },
            "encode": {
              "type": "mcac",
              "properties": {
                "BitRate": 128000,
                "MpegVersion": 2
              }
            }
          }
        ]
      }
    ]
  }
}