Docs

Per-title optimization

Select video bitrate from the content while preserving your accepted output settings.

Videos with the same dimensions can need different bitrates to preserve detail. Per-title optimization analyzes the selected video content and predicts a bitrate for the requested codec, dimensions, and frame rate.

You choose the output format and resolution. Chunkify adapts video rate control to the content, rather than requiring one fixed bitrate for every export.

How it works

Chunkify analyzes different parts of the selected interval independently. Each part can use a different predicted bitrate as visual complexity changes, while the final output remains one MP4 or WebM file.

If analysis cannot produce a usable prediction, that part uses the codec's default CRF. Other parts can still use predictions. This fallback preserves the accepted dimensions, frame rate, trim, and price.

Enable optimization

Set per_title: true inside format for H.264, H.265, AV1, or VP9 video. The API defaults to false; the transcode creation form in the app enables it by default for video output.

Do not combine per-title optimization with crf, video_bitrate, minrate, maxrate, or bufsize. You can still choose dimensions, frame rate, encoding preset, compatible pixel format, and audio settings.

Run these examples on your server after setting up your SDK and Source. Replace the token and Source ID.

These examples save the file in your Project's output storage. Set storage.path to the filename you want to use.

import Chunkify from '@chunkify/chunkify';

async function main() {
    const client = new Chunkify({
        projectAccessToken: 'My Project Access Token',
    });

    const transcoding = await client.transcodings.create({
        source_id: 'src_2G6MJiNz71bHQGNzGwKx5cJwPFS',
        format: {
            id: "mp4_h264",
            height: 720,
            per_title: true,
        },
        storage: {
            path: 'exports/optimized-720p.mp4',
        },
    });

    console.log(transcoding.id, transcoding.status);
}

main().catch((error) => {
    console.error(error);
    process.exitCode = 1;
});

Processing time and price

Content analysis adds work before encoding and can increase processing time. There is no fixed analysis-time promise. Per-title selection is one of the settings used to accept the output price when the transcode is created.

Predicted bitrate and fallback decisions do not reprice the request during processing. See Pricing.

Check the result

The accepted format keeps per_title: true; it does not report one predicted bitrate for the whole request. After completion, read the measured file properties in files and inspect representative playback on your target devices.

Output size and quality depend on the source and requested settings. Compare representative clips before adopting optimization across a library. Video assets have their own streaming preparation workflow.