---
updatedAt: 2025-06-18T02:32:31.000Z
agentTools:
  projectIndex: https://api.encoding.com/llms.txt
---

# Specific Options for advanced_fmp4 Output

<a name="advancedfmp4"></a><a name="advanced-fmp4"></a>

Advanced fMP4 output will create manifests for fmp4\_hls, advanced\_dash, and advanced\_mss outputs with a common set of fmp4 files.

advanced\_fmp4 is our recommended method to create CMAF conformant outputs.

```xml
<?xml version="1.0"?>
<query>
    <userid>[UserID]</userid> <!-- required-->
    <userkey>[UserKey]</userkey> <!-- required-->
    <action>[Action]</action> <!-- required-->
    <source>[SourceFile]</source> <!-- required-->
    <format>
        <output>advanced_fmp4</output> <!-- required-->
        <destination>[DestinationURL]</destination> <!-- required-->
        <stream>
            <!-- Fields applicable for fmp4_hls manifest -->
            <!-- Manifests fields -->
            <manifest>
                <basename>[BaseName]</basename> <!-- required-->
                <add_to_manifest>
                    [ManifestName]:[Position],[ManifestName]:[Position]
                </add_to_manifest>
                <clearkey_drm>[yes|no]</clearkey_drm>
                <fairplay_drm>[yes|no]</fairplay_drm>
                <destination>[ManifestDestination]</destination>
            </manifest>
            <!-- Multiple manifests may be included -->
            <manifest>
               <!-- manifest params -->
            </manifest>
            <!-- Fields applicable for advanced_dash and advanced_mss manifest -->
            <add_to_manifest>[ManifestName],[ManifestName]</add_to_manifest>
            <timescale>[TimeScale]</timescale>
        </stream>
        <!-- Multiple stream params may be included -->
        <!-- Maximum number of available streams is 15 -->
        <stream>
           <!-- stream params -->
        </stream>
        <!-- Manifests fields -->
        <manifest>
            <widevine_drm>[yes|no]</widevine_drm>
            <playready_drm>[yes|no]</playready_drm>
            <add_hls_drm_metadata>[yes|no]</add_hls_drm_metadata>
            <single_segment_template>[yes|no|auto]</single_segment_template>
            <replace_bitrate>[yes|no]</replace_bitrate>
            <add_audio_channels>[yes|no|auto]</add_audio_channels>
            <apply_to>[hls|dash|all]</apply_to>
            <add_all_cea_cc_channels>[yes|no]</add_all_cea_cc_channels>
        </manifest>
        <!-- Multiple manifests may be included -->
        <manifest>
           <!-- manifest params -->
        </manifest>
        <!-- Fields applicable for fmp4_hls manifest -->
        <!-- Alternate source fields -->
        <!-- multiple alternate_sources may be included -->
        <alternate_source>
            <alternate_default>[yes|no|auto]</alternate_default>
            <alternate_autoselect>[yes|no]</alternate_autoselect>
        </alternate_source>
        <split_segments>[yes|no]</split_segments>
        <widevine_drm>[yes|no]</widevine_drm>
        <playready_drm>[yes|no]</playready_drm>
        <cmaf_conformant>[yes|no]</cmaf_conformant>
        <add_audio_only>[yes|no]</add_audio_only>
        <fragment_duration>[Duration]</fragment_duration>
        <hls_manifests>[yes|no]</hls_manifests>
        <dash_manifests>[yes|no]</dash_manifests>
        <mss_manifests>[yes|no]</mss_manifests>
        <segment_template>[number|time]</segment_template>
        <!-- Format params -->
        <!-- Nielsen metadata settings -->
    </format>
</query>
```
```json
{
    "query": {
        "userid": "[UserID]", // required
        "userkey": "[UserKey]", // required
        "action": "[Action]", // required
        "source": "[SourceFile]", // required
        "format": {
            "output": "advanced_fmp4", // required
            "destination": "[DestinationURL]", // required
            "stream": [
                {
                    // Fields applicable for fmp4_hls manifest
                    // Manifests fields
                    "manifest": [
                        {
                            "basename": "[BaseName]", // required
                            "add_to_manifest": "[ManifestName]:[Position],[ManifestName]:[Position]",
                            "clearkey_drm": "[yes|no]",
                            "fairplay_drm": "[yes|no]",
                            "destination": "[ManifestDestination]"
                        },
                        {
                            // manifest params
                        }
                        // Multiple manifests may be included
                    ],
                    // Fields applicable for advanced_dash and advanced_mss manifest
                    "add_to_manifest": "[ManifestName],[ManifestName]",
                    "timescale": "[TimeScale]"
                }
                // Multiple stream params may be included
                // Maximum number of available streams is 15
            ],
            "manifest": [
                {
                    "widevine_drm": "[yes|no]",
                    "playready_drm": "[yes|no]",
                    "add_hls_drm_metadata": "[yes|no]",
                    "single_segment_template": "[yes|no|auto]",
                    "replace_bitrate": "[yes|no]",
                    "add_audio_channels": "[yes|no|auto]",
                    "apply_to": "[hls|dash|all]",
                    "add_all_cea_cc_channels": "[yes|no]"
                },
                {
                    // manifest params
                }
                // Multiple manifests may be included
            ],
            // Fields applicable for fmp4_hls manifest
            // Alternate source fields
            // multiple alternate_sources may be included
            "alternate_source": {
                "alternate_default": "[yes|no|auto]",
                "alternate_autoselect": "[yes|no]"
            },
            "widevine_drm": "[yes|no]",
            "playready_drm": "[yes|no]",
            "cmaf_conformant": "[yes|no]",
            "add_audio_only": "[yes|no]",
            "fragment_duration": "[Duration]",
            "hls_manifests": "[yes|no]",
            "dash_manifests": "[yes|no]",
            "mss_manifests": "[yes|no]",
            "segment_template": "[number|time]"
            // Format params
            // Nielsen metadata settings
        }
    }
}
```

> 🚧 Note
>
> For closed captions only available **ismt** and **webvtt** muxing types.\
> If mux type set to **webvtt** it will be applied to **dash** and **hls** manifests and **ismt** for **mss**.\
> If mux type set to **ismt** it will be applied to **dash** and **mss** manifests and **webvtt** for **hls**.

> 🚧 For stream parameter
>
> Value of Duration attribute of Period tag in MPD manifest will be taken from the first stream in API request.

> 🚧 For add\_all\_cea\_cc\_channels parameter
>
> The **\<add\_all\_cea\_cc\_channels />** parameter available only for HLS manifests