---
title: "Configuration"
version: "main"
permalink: "https://docs.typo3.org/permalink/mfd/adaptive-video:configuration@main"
source: "Configuration/Index.rst"
rendered: "2026-11-03T08:37:43+00:00"
---

# Configuration {#configuration}

## Extension configuration {#configuration-extension}

Set in **Admin Tools > Settings > Extension Configuration** or in
`$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['adaptive_video']`. Encoding is
configured globally for the whole installation.

-   **Property**

    processingEnabled

-   **Default**

    `0`

-   **Description**

    Create versions and dispatch encoding jobs in this environment.
    Existing ready versions are delivered regardless.

-   **Property**

    deliveryEnabled

-   **Default**

    `1`

-   **Description**

    Deliver ready versions as HLS. Disable to encode first and switch
    the frontend later. Flush the page cache after enabling.

-   **Property**

    defaultProfile

-   **Default**

    `default`

-   **Description**

    Identifier of the active encoding profile, see [Encoding profile](https://docs.typo3.org/permalink/mfd/adaptive-video:configuration-profile@main).

-   **Property**

    supportedFileExtensions

-   **Default**

    `mp4,mov,m4v,webm`

-   **Description**

    Video file extensions that are processed.

-   **Property**

    minimumDuration

-   **Default**

    `10`

-   **Description**

    Shorter videos (seconds) are skipped.

-   **Property**

    ffmpegPath

-   **Default**

    `ffmpeg`

-   **Description**

    ffmpeg binary, absolute or looked up in `PATH`.

-   **Property**

    ffprobePath

-   **Default**

    `ffprobe`

-   **Description**

    ffprobe binary, absolute or looked up in `PATH`.

-   **Property**

    commandPrefix

-   **Default**

    *empty*

-   **Description**

    Arguments placed before the binaries.

-   **Property**

    ffmpegOptions

-   **Default**

    *empty*

-   **Description**

    Additional output options for all encoders. All options except
    `-threads` are part of the profile fingerprint: changing them re-
    encodes all videos.

-   **Property**

    maxRuntime

-   **Default**

    `10800`

-   **Description**

    ffmpeg is aborted after this time (seconds) and the version marked
    `failed`. A version of a crashed worker can be taken over after this
    time.

-   **Property**

    redeliverTimeout

-   **Default**

    `14400`

-   **Description**

    A job not acknowledged within this time (seconds) is handed out
    again (crashed worker). Must be higher than `maxRuntime`.

-   **Property**

    maxSourceFileSize

-   **Default**

    `0`

-   **Description**

    Larger files (MB) are skipped. `0` disables the limit.

-   **Property**

    maxSourceDuration

-   **Default**

    `0`

-   **Description**

    Longer videos (seconds) are skipped. `0` disables the limit.

-   **Property**

    artifactDirectory

-   **Default**

    `_videos`

-   **Description**

    Directory for the streams, relative to the public web root.

-   **Property**

    publicUrlPrefix

-   **Default**

    `/_videos/`

-   **Description**

    URL path of the artifact directory.

-   **Property**

    temporaryDirectory

-   **Default**

    `var/transient/adaptive_video`

-   **Description**

    Working directory; should be on the same filesystem as the artifact
    directory.

-   **Property**

    rendererPriority

-   **Default**

    `20`

-   **Description**

    Must be higher than the renderers it replaces (`b13/poster-image`:
    10, Core: 1).

## Encoding profile {#configuration-profile}

The default profile encodes 1080p (5000 kbit/s), 720p (2800), 480p (1400)
and 360p (800) with H.264, AAC 128 kbit/s, at most 30 fps and 4 second fMP4
segments. The height refers to the shorter side, so portrait videos get the
same quality steps. Renditions larger than the source are left out; a source
smaller than all of them is encoded once in its own size.

Profiles can be added or overridden:

```php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adaptive_video']['profiles']['default'] = [
    'renditions' => [
        ['height' => 1080, 'videoBitrate' => 4500],
        ['height' => 720, 'videoBitrate' => 2500],
        ['height' => 360, 'videoBitrate' => 800],
    ],
    'audioBitrate' => 128,
    'audioSampleRate' => 48000,
    'maxFrameRate' => 30,
    'segmentDuration' => 4,
];
```

Every change of the active profile creates new versions on the next scan.
The previous versions stay active until the new ones are ready.

## Site settings {#configuration-site}

The site set **Adaptive Video** (`mfd/adaptive-video`) provides these
settings per site:

-   **Setting**

    adaptiveVideo.enabled

-   **Default**

    `true`

-   **Description**

    Deliver streams on this site.

-   **Setting**

    adaptiveVideo.preload

-   **Default**

    `metadata`

-   **Description**

    Used if the template sets no `preload`. With `none` and `metadata`,
    segments are loaded on play only.

-   **Setting**

    adaptiveVideo.capLevelToPlayerSize

-   **Default**

    `true`

-   **Description**

    hls.js does not load renditions larger than the player. Native HLS
    (Safari) decides on its own.

## Logging {#configuration-logging}

Entries use the channel `Mfd.AdaptiveVideo.*` with file and version uid as
context. By default TYPO3 only writes warnings and errors to
`var/log/typo3_*.log`. To log every finished video to its own file:

```php
$GLOBALS['TYPO3_CONF_VARS']['LOG']['Mfd']['AdaptiveVideo']['writerConfiguration'] = [
    \Psr\Log\LogLevel::INFO => [
        \TYPO3\CMS\Core\Log\Writer\FileWriter::class => ['logFileInfix' => 'adaptive_video'],
    ],
];
```
