Requesting Late Binding

Requesting late binding provides a way to add or modify progressive MP4 renditions for an existing video without re-creating other existing renditions. This allows you to reduce processing time while adding needed features to existing videos.

Introduction

Late binding is the process of associating progressive MP4 renditions with a video after it has been ingested, Late binding allows you to add or modify MP4 renditions to a video without having to entirely retranscode the video.

Do I need MP4 renditions?

There are several reasons why you might want to have MP4 renditions in addition to HLS and/or DASH renditions:

  • Sharing using the Social module - The Social module requires that an MP4 rendition be available to share to social media. An MP4 rendition is also required to download a video using the Social module.
  • Downloading videos - If you wish to give viewers the ability to download a copy of the video, it must have MP4 renditions.
  • Closed captions - legal accessibility standards are most strict (currently) in the EU, but requirements vary and change. The most strict standards require embedded 608 close captions. Brightcove can add 608 close captions to MP4 renditions only.
  • Cloud Playout - In order to be added to Cloud Playout channels, videos must have at least one MP4 rendition.

Requesting late binding

To request late binding in a Dynamic Ingest API request, set the late_binding_type to either merge or replace:

merge
Performs a merge operation during late binding. This means that any existing rendition associated with the video will be preserved and only new pmp4 renditions defined into the current ingest profile will be merged. If the pmp4 rendition already exists in the video, the rendition won’t be ingested.

Note: a PMP4 rendition will overridden only in the following cases:

  • The request is asking for embed_closed_caption and current PMP4 does not have it.
  • The request is not asking for embed_closed_caption and current PMP4 have it.
replace
Performs a replace operation during late binding. This means that any existing PMP4 rendition associated with the video will be completely replaced with the new renditions defined in the ingest profile. If a rendition already exists in the video's metadata, the new value provided will overwrite the existing value for that rendition.

Note: if the video does not have PMP4 renditions, this will not add them.

Use cases

Below are some typical use cases for requesting late binding with sample code.

Merge an mp4 rendition onto an existing Video

{
  "master": {
    "use_archived_master": true,
    "late_binding_type": "merge"
  },
  "profile": "multi-platform-standard-static-with-mp4"
}

Replace an mp4 rendition for an existing Video

{
  "master": {
    "use_archived_master": true,
    "late_binding_type": "replace"
  },
  "profile": "multi-platform-standard-static-with-mp4"
}

Merge mp4 rendition with embedded close captions onto an existing Video

{
  "master": {
    "use_archived_master": true,
    "late_binding_type": "merge"
  },
  "text_tracks": [
    {
      "url": "https://support.brightcove.com/test-assets/captions/herons.vtt",
      "srclang": "en-US",
      "kind": "captions",
      "label": "EN",
      "default": true,
      "status": "published",
      "embed_closed_caption": true
    }
  ],
  "profile": "multi-platform-standard-static-with-mp4"
}

Replace an mp4 rendition for an existing Video with one that has embedded close captions

{
  "master": {
    "use_archived_master": true,
    "late_binding_type": "replace"
  },
  "text_tracks": [
    {
      "url": "https://support.brightcove.com/test-assets/captions/herons.vtt",
      "srclang": "en-US",
      "kind": "captions",
      "label": "EN",
      "default": true,
      "status": "published",
      "embed_closed_caption": true
    }
  ],
  "profile": "multi-platform-standard-static-with-mp4"
}

Notes and limitations

  • This feature is only available for videos that have the master stored. In your request you must also include the use_archived_master field.
  • The comparison of PMP4 renditions will be carried out using the specified Ingest Profile or using the default Ingest Profile (if not specified in the Dynamic Ingest request). See Ingest Profiles for more information about.
  • Forensic Watermarking is unsupported. Since all renditions need an A/B version and need to be in perfect sync, any attempt to merge or replace renditions in an asset that has Forensic Watermarking must to be performed through re-transcoding.
  • Late Binding workflow currently doesn’t support removing existing MP4 renditions. Removing the existing renditions from any given title can only be done by fully re-transcoding the title with an ingest profile that doesn’t include MP4s.