Bitmovin Encoder v2.0 is a major release which adds some powerful new features including: Per-Title, AV1 support, 3-Pass encoding and more

This latest release of our encoder comes with a variety of new features, but also introduces some major changes. Some of those changes bring new default values and behavior patterns with them. For this blog post, we are taking a more in-depth look at what is going to change for you, if you are a user of Bitmovin Video Encoding. We’re covering the new features and how you can benefit from them, we’ll show you some important changes to a few specific settings and explain how to revert back to the previous encoding behavior if required.

Jump right into the sections, which are most relevant to you and your use cases:

New to using Bitmovin Encoding? It’s simple. Sign up for a trial today to see our tech in action or get in touch with our sales experts to discuss your specific requirements and use cases!

Feature overview – what’s new?

Per-Title Encoding out of the box

Per-Title Encoding now comes as an out-of-the-box feature, making this technology available for a wider user base. Whether you are operating a large-scale content delivery network or encoding videos for a limited audience, you will now be able benefit from Per-Title Encoding without any extra integration or configuration effort. Note that Per-Title Encoding has additional pricing impacts that will affect your minutes balance.

If you would like to see how Per-Title Encoding can improve quality and reduce your bitrates, try our Per-Title Ladder Banchmark Tool and see the new ladder and a report on the improvements over your existing ladder.

AV1 support

At Bitmovin, we’ve been strong supporters of AV1 since the early stages. Following the AV1 bitstream freeze back in June, AV1 is now in at general availability stage in Encoder v2.0, providing unparalleled quality at low bitrates.

Enhanced error reporting

We have overhauled the error reporting process to provide enhanced error descriptions. You’ll be able to pinpoint what exactly went wrong in the process and act accordingly.

2-pass and 3-pass encoding

Two-pass encoding is now the default encoding mode, as it consistently provides a better ratio between quality and bitrate. Additionally, you can also choose to use three-pass encoding, which adds another pass to the process, boosting quality even more. Of course, single-pass encoding is still also possible. Note that two-pass and three-pass encoding have additional pricing impacts that will affect your minutes balance.

Improvements to input resilience

We have implemented a couple of changes to our Encoder to equip it with a greater level of input resilience. Whenever a frame is dropped or corrupt, our encoder simply duplicates the preceding frame or frames, allowing the encoding process to go on continuously. While the process continues, a warning is shown as a status message.

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 behavior for STANDARD changed

This change sets the new default encoding mode to two-pass encoding from single-pass encoding as the previous default. A new encoding mode SINGLE_PASS has been introduced to retain the old behavior.

API call: https://bitmovin.com/docs/encoding/api-reference#/reference/encoding/encodings/start-encoding

API property: encodingMode

New value: STANDARD mapps to TWO_PASS

Old value: STANDARD maps to SINGLE_PASS

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: https://bitmovin.com/docs/encoding/api-reference#/reference/encoding/encodings/add-stream

API property: decodingErrorMode

New value: DUPLICATE_FRAMES

Old value: FAIL_ON_ERROR

Start Encoding (Trimming): ignoreDurationIfInputTooShort set to true per default

Previously, the encoder would send an error, if the input for the encoding is shorter than the defined duration. With this setting set to true, the encoding will continue in such instances and a warning message is displayed.

API call: https://bitmovin.com/docs/encoding/api-reference#/reference/encoding/encodings/start-encoding

API property: trimming -> ignoreDurationIfInputTooShort

New value: true

Old value: false

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: https://bitmovin.com/docs/encoding/api-reference#/reference/encoding/encodings/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: https://bitmovin.com/docs/encoding/api-reference#/reference/encoding/encodings/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.