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:

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.

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.

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.

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.

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.