Bitmovin Video Encoder v1 to v2 migration guide

Breaking changes that may impact your encoding workflows

Some of the changes to our new encoder will impact your existing encoding workflows. In this section, we’ll cover those key breaking changes and show you what they entail exactly. The list below explains how these changes reflect in our API, where to find the related section in our documentation and which exact properties are concerned.

  • Start Encoding (Encoding Mode): Default set to TWO_PASS This change sets the new default encoding mode to two-pass encoding from single-pass encoding as the previous default.
    • API call: Start Encoding
    • API property: encodingMode
    • New value: TWO_PASS
    • Old value: STANDARD

The following changes impact the encoder’s input resilience:

  • Add Stream (Decoding Error Mode): Default set to DUPLICATE_FRAMES With this setting, the encoding will not fail if a frame cannot be decoded, but instead other frames are duplicated to compensate. The encoding can continue and an error message is displayed.

    • API call: Add Stream
    • API property: decodingErrorMode
    • New value: DUPLICATE_FRAMES
    • Old value: FAIL_ON_ERROR
  • Start Encoding (Variable FPS): handleVariableInputFps set to true per default Impacts the way input streams with variable FPS are being handled. With the new default, the encoder will process files with a dynamic framerate automatically and adjust (e.g. by dropping or duplicating frames) if a constant framerate is required for the output file. For input streams with a fixed framerate, this change does not have any impact.

    • API call: Start Encoding
    • API property: handleVariableInputFps
    • New value: true
    • Old value: false
  • Start Encoding (Tweaks): audioVideoSyncMode set to RESYNC_AT_START by default By setting the synchronization mode to “RESYNC_AT_START” the encoder re-syncs the audio and the video stream, based on the values transported in the metadata. This is useful for workflows containing previously encoded content.

    • API call: Start Encoding
    • API property: tweaks -> audioVideoSyncMode
    • New value: RESYNC_AT_START
    • Old value: STANDARD

Migration quick guide: how to revert back to the old defaults

If you intend to use Bitmovin Encoder in the exact way that you used to before the update, you can do so by simply changing the settings from the new default values to the old values. The table below shows you which properties you will need to change to revert back to the previous behavior.

API propertyChange to valueAPI call in our API reference
Start Encoding > encodingModeSINGLE_PASSStart (encodingMode)
Start Encoding > trimming > ignoreDurationIfInputTooShortFALSEStart (ignoreDurationIfInputTooShort)
Start Encoding > handleVariableInputFpsFALSEStart (handleVariableInputFps)
Start Encoding > tweaks > audioVideoSyncModeSTANDARDStart (audioVideoSyncMode)
Add Stream > decodingErrorModeFAIL_ON_ERRORAdd Stream

Get Started with a Bitmovin SDK

Bitmovin API SDKDescription
JavaIntegrate the SDK into your Java Project easily and add it to the config of your dependency manager like Maven or Gradle. Learn more
Javascript/TypescriptIntegrate the SDK into your Javascript/Typescript based project easily by adding it as a dependency via NPM. Learn more
PythonIntegrate the SDK into your Python based project easily by adding it as a dependency via pip or Setuptools. Learn more
.NETIntegrate the SDK into your .NET based project easily by adding it as a dependency via nuget. Learn more
PHPIntegrate the SDK into your PHP based project easily by adding it as a dependency via composer. Learn more

Visit our Github Example Repository that provides you with examples for all Bitmovin SDK's available.