Per-scene encoding
Overview
Per-scene encoding is a technique used to optimize the size of the encoded ouput by applying different encoder settings to different parts of the video (scenes).
For this, Axinom Encoding uses Optimizer from our partner VisualOn. This AI-enhanced solution continuously analyzes content in real-time to determine the best transcoder settings for outstanding video quality and lower bitrates.
It's also known as CAE - Content-Aware Encoding or Content-Adaptive Encoding. We prefer the term per-scene encoding, because some CAE solutions analyze a to-be-encoded video as a whole and adjust the parameters once before starting the encoding process, while Axinom's per-scene encoding powered by VisualOn Optimizer does more - it actually applies different encoding settings to different scenes.
With per-scene encoding, it is possible to reduce the output size by an average of 40% (and up to 70%) without compromising visual video quality.
Why to use per-scene encoding
For OTT operators:
- Higher encoding efficiency
- Reduced CND transfer costs
- Reduced data storage costs
- Greener and more sustainable workflow
For the end users:
- Better image quality
- Less buffering time
- Uniform viewing experience across devices
How to use per-scene encoding
Per-scene encoding can be easily applied on per-job base.
Encoding API
If you encode using an API, you just need to add the following property to the content processing section:
{
...
"ContentProcessing": {
"EncodingMode": "PerScene",
...
}
You can balance the video quality vs output file size by setting a target VMAF score. Default target VMAF is 95%. You can increase it to 98% or even 99% while still getting smaller outputs. The higher the target VMAF score, the closer your video will be to the source file, but the less saving you will get. To set the target VMAF score in percent add an additional property:
{
...
"ContentProcessing": {
"EncodingMode": "PerScene",
"PerSceneEncoding": {
"TargetVmafScore": 98
},
...
}
Video Service UI
If you use the UI of the Video Service to start encoding jobs, you can set the per-scene encoding mode under Processing Profiles:
As of January 2025, it's not yet possible to set the target VMAF score using UI. If you want a non-default VMAF value, please use the API. Meanwhile, we are working on a UI extension.
Costs
Using per-scene encoding is 40% more expensive than regular encoding. See details under Pricing
However, due to smaller output file size, the traffic (CDN) costs will be by 20-70% lower. It means, after certain number of views, the higher encoding cost will pay-off and further increase in views will turn into pure profit.
See also
- Per-scene encoding comparison - a detailed comparison of a regular encoding and per-scene encoding with different target VMAFs
- How to optimize video encoding - a webinar by Johannes Jauch (Axinom) and Christophe Coquerel (VisualOn)
- How to optimize video encoding - whitepaper