{
  "schemaVersion": 1,
  "contentVersion": "ca42e61ede0a24f789d7287a0001244ad22f4abf",
  "id": "docs/tools/hardware-encoders/amf",
  "collection": "docs",
  "title": "AMF",
  "description": "AMF is AMD's media framework and the hardware video encoder on Radeon GPUs, used from FFmpeg as h264_amf, hevc_amf and av1_amf.",
  "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/",
  "apiUrl": "https://encode.wiki/api/v1/documents/docs/tools/hardware-encoders/amf.json",
  "markdownUrl": "https://encode.wiki/api/v1/markdown/docs/tools/hardware-encoders/amf.md",
  "status": "current",
  "tags": [
    "migrated"
  ],
  "license": "CC BY-SA 4.0",
  "dates": {
    "lastVerified": "2026-10-08T00:00:00.000Z"
  },
  "authors": [],
  "sources": [
    {
      "title": "FFmpeg 9.0.2 AMF encoder wrappers",
      "url": "https://github.com/FFmpeg/FFmpeg/blob/n9.0.2/libavcodec/amfenc_hevc.c",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "FFmpeg 9.0.2 general documentation (AMD AMF/VCE)",
      "url": "https://github.com/FFmpeg/FFmpeg/blob/n9.0.2/doc/general_contents.texi",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "AMD AMF wiki, GPU and APU hardware features and support",
      "url": "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/wiki/GPU%20and%20APU%20HW%20Features%20and%20Support",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "AMD AMF AV1 video encoder API",
      "url": "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/blob/master/amf/doc/AMF_Video_Encode_AV1_API.md",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "AMD AMF HEVC video encoder API",
      "url": "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/blob/master/amf/doc/AMF_Video_Encode_HEVC_API.md",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    }
  ],
  "provenance": {
    "originUrl": "https://github.com/av1-community-contributors/codec-wiki/blob/37c3317fd058b23c71a87679bed5619a98f77752/docs/encoders_hw/amf.mdx",
    "originCommit": "37c3317fd058b23c71a87679bed5619a98f77752",
    "migratedAt": "2026-08-21T00:00:00.000Z",
    "modified": true,
    "originPath": "docs/encoders_hw/amf.mdx"
  },
  "headings": [
    {
      "depth": 2,
      "text": "Hardware or software encoder?",
      "anchor": "hardware-or-software-encoder"
    },
    {
      "depth": 2,
      "text": "Which hardware supports what",
      "anchor": "which-hardware-supports-what"
    },
    {
      "depth": 2,
      "text": "Quality-oriented encode",
      "anchor": "quality-oriented-encode"
    },
    {
      "depth": 2,
      "text": "Options that matter",
      "anchor": "options-that-matter"
    },
    {
      "depth": 2,
      "text": "Pitfalls",
      "anchor": "pitfalls"
    },
    {
      "depth": 2,
      "text": "Full option reference",
      "anchor": "full-option-reference"
    },
    {
      "depth": 3,
      "text": "Private options",
      "anchor": "private-options"
    },
    {
      "depth": 3,
      "text": "Codec-specific generic initialization overrides",
      "anchor": "codec-specific-generic-initialization-overrides"
    }
  ],
  "sections": [
    {
      "id": "_preamble",
      "title": "Page introduction",
      "depth": 0,
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/_preamble.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/_preamble.md",
      "checksum": "2c9dc566f386b216f9cea03c9d658639ad5b0a41bc7ca45382cce31f0cd39d66",
      "bytes": 300
    },
    {
      "id": "hardware-or-software-encoder",
      "title": "Hardware or software encoder?",
      "depth": 2,
      "anchor": "hardware-or-software-encoder",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#hardware-or-software-encoder",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/hardware-or-software-encoder.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/hardware-or-software-encoder.md",
      "checksum": "bc514a9f7df9a2125acf30cbbc35dfe411752b15f256ec1f9226252fd431a1b9",
      "bytes": 501
    },
    {
      "id": "which-hardware-supports-what",
      "title": "Which hardware supports what",
      "depth": 2,
      "anchor": "which-hardware-supports-what",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#which-hardware-supports-what",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/which-hardware-supports-what.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/which-hardware-supports-what.md",
      "checksum": "c33ca4f90c2dcc8cc87e7f7831cca786086d8ab408d8b1370a78e592a24a94ff",
      "bytes": 634
    },
    {
      "id": "quality-oriented-encode",
      "title": "Quality-oriented encode",
      "depth": 2,
      "anchor": "quality-oriented-encode",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#quality-oriented-encode",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/quality-oriented-encode.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/quality-oriented-encode.md",
      "checksum": "fad0048e6b46a10e0be1b706ac0eceb8b526827383eaf8e6dd29b0359e31b1a0",
      "bytes": 1469
    },
    {
      "id": "options-that-matter",
      "title": "Options that matter",
      "depth": 2,
      "anchor": "options-that-matter",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#options-that-matter",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/options-that-matter.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/options-that-matter.md",
      "checksum": "d64c4e81a02a2c3b49ccdc385ce6f5ab043a0fb27be57da529076c5fdd946765",
      "bytes": 956
    },
    {
      "id": "pitfalls",
      "title": "Pitfalls",
      "depth": 2,
      "anchor": "pitfalls",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#pitfalls",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/pitfalls.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/pitfalls.md",
      "checksum": "70d11107be82ee63b59eaa14e357433b50151647c2407624800e7a1de549f630",
      "bytes": 446
    },
    {
      "id": "full-option-reference",
      "title": "Full option reference",
      "depth": 2,
      "anchor": "full-option-reference",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#full-option-reference",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/full-option-reference.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/full-option-reference.md",
      "checksum": "86d122ee63a0d2f094b4b78d0d0de162643610c0c191bcec9b18452593f165ac",
      "bytes": 7097
    },
    {
      "id": "private-options",
      "title": "Private options",
      "depth": 3,
      "anchor": "private-options",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#private-options",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/private-options.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/private-options.md",
      "checksum": "164975b1f277d4c65113cf1377ddcfaaae751b2a9387b6f9e4d5ed4af0f57bf1",
      "bytes": 6366
    },
    {
      "id": "codec-specific-generic-initialization-overrides",
      "title": "Codec-specific generic initialization overrides",
      "depth": 3,
      "anchor": "codec-specific-generic-initialization-overrides",
      "canonicalUrl": "https://encode.wiki/tools/hardware-encoders/amf/#codec-specific-generic-initialization-overrides",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/codec-specific-generic-initialization-overrides.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/tools/hardware-encoders/amf/codec-specific-generic-initialization-overrides.md",
      "checksum": "3b282464a4b524ed7c54a48522c416a8696055bfd6d088bbf247c9271ff56024",
      "bytes": 453
    }
  ],
  "outboundReferences": [
    "/tools/hardware-encoders/nvenc/#hardware-or-software-encoder",
    "/tools/hardware-encoders/qsv/",
    "/tools/hardware-encoders/vaapi/",
    "/tools/software-encoders/svt-av1/",
    "/tools/software-encoders/x264/",
    "/tools/software-encoders/x265/"
  ],
  "checksum": "a35b1d1586309febbc399eea5452470cb4086fe5bff1eec0e179b59d55ad2541",
  "contentFormat": "markdown",
  "markdown": "AMF (Advanced Media Framework) is AMD's API for the video encode/decode block (VCN) on Radeon GPUs and Ryzen APUs. FFmpeg exposes it as `h264_amf`, `hevc_amf` and `av1_amf`. It is mainly a Windows route: on Linux most people encode through [VAAPI](/tools/hardware-encoders/vaapi/) with Mesa instead.\n\n## Hardware or software encoder?\n\nAMF is fast and cheap on power, but its compression efficiency has historically trailed [NVENC](/tools/hardware-encoders/nvenc/#hardware-or-software-encoder) and [QSV](/tools/hardware-encoders/qsv/), and all of them trail [x264](/tools/software-encoders/x264/), [x265](/tools/software-encoders/x265/) and [SVT-AV1](/tools/software-encoders/svt-av1/) at slow presets. It suits game capture, streaming and fast transcodes. For archival encodes, use a software encoder.\n\n## Which hardware supports what\n\n| Codec | Support |\n| --- | --- |\n| H.264, HEVC | AMD's current support table starts at VCN 2.0: RDNA 1 (RX 5000), Cezanne (Ryzen 5000) APUs and everything after. H.264 is 8-bit; HEVC is 8 and 10-bit. |\n| AV1 | VCN 4.0 and newer: RDNA 3 (RX 7000), RDNA 4 (RX 9000) and Phoenix (Ryzen 7040/8040, 8000G) or newer APUs, 8 and 10-bit. RDNA 1 and RDNA 2 (RX 6000) cannot encode AV1. |\n| VP9 | No encoder. |\n\nThe AMF runtime comes with the Windows Radeon driver. FFmpeg must be built with `--enable-amf`. On Linux the AMF runtime from the amdgpu-pro packages is required, and it initialises through Vulkan.\n\n## Quality-oriented encode\n\nConstant QP is the simplest quality-targeted mode:\n\n```sh\nffmpeg -i input.mkv -c:v hevc_amf -usage transcoding -quality quality -rc cqp -qp_i 24 -qp_p 24 -c:a copy output.mkv\n```\n\n`-usage transcoding` is the offline profile. `-quality quality` is a slow preset; `high_quality` is slower still. CQP makes size unpredictable; give `-qp_b` too when H.264 or AV1 uses B-frames. The scale is 0–51 for H.264 and HEVC and 0–255 for AV1, so AV1 values are several times higher:\n\n```sh\nffmpeg -i input.mkv -c:v av1_amf -usage transcoding -quality high_quality -rc cqp -qp_i 100 -qp_p 100 -c:a copy output.mkv\n```\n\nFor a size target, use peak-constrained VBR (also what FFmpeg picks when you give only `-b:v`):\n\n```sh\nffmpeg -i input.mkv -c:v hevc_amf -usage transcoding -quality quality -rc vbr_peak -b:v 8M -maxrate 12M -c:a copy output.mkv\n```\n\nFor 10-bit HEVC or AV1 pass `-pix_fmt p010le`. Rate control is chosen automatically if you leave `-rc` out: any `-qp_*`, `-min_qp_*` or `-max_qp_*` option means CQP, `-b:v` equal to `-maxrate` means CBR, otherwise peak VBR.\n\nThe closest thing to CRF is QVBR: `-rc qvbr -qvbr_quality_level N` with `-preanalysis 1`, since AMD's API documentation says QVBR, HQVBR and HQCBR only work with pre-analysis enabled.\n\nFFmpeg also has AMF filters that keep frames on the GPU, `vpp_amf` for scaling and format conversion and `sr_amf` for upscaling, but a plain command that uploads frames is the common case.\n\n## Options that matter\n\n| Option | What it does |\n| --- | --- |\n| `-usage` | `transcoding`, `high_quality`, `lowlatency`, `lowlatency_high_quality`, `ultralowlatency`, `webcam`. Sets the encoder's overall tuning. |\n| `-quality` | Speed/quality preset: `speed`, `balanced`, `quality`, `high_quality`. The numeric values differ between codecs, so use the names. |\n| `-rc` | `cqp`, `cbr`, `vbr_peak`, `vbr_latency`, `qvbr`, `hqvbr`, `hqcbr`. The last three need `-preanalysis 1`. |\n| `-qp_i`, `-qp_p`, `-qp_b` | Quantizers for `-rc cqp`. HEVC has no `-qp_b`. |\n| `-bf`, `-max_b_frames` | B-frames (H.264 and AV1, 0–3). The HEVC wrapper has no B-frame option. |\n| `-preanalysis 1` | Pre-analysis pass for better bit distribution on supported hardware. Adds latency; the `-pa_*` options tune it. |\n| `-vbaq 1` (H.264, HEVC), `-aq_mode caq` (AV1) | Adaptive quantization. |\n| `-header_insertion_mode` | Repeat headers per GOP or frame; useful for streaming. |\n\n## Pitfalls\n\n- Quality presets, QP scales and `-quality` numbers differ between H.264, HEVC and AV1. Do not copy values across codecs.\n- An accepted option does not mean the hardware used it. Many `auto` defaults leave the choice to the driver, and pre-analysis and B-frames depend on the GPU generation.\n- If the encoder fails to open on Linux, AMF could not initialise (`libamfrt64.so.1` or the amdgpu-pro runtime is missing). Switch to VAAPI.\n\n## Full option reference\n\nEvery private option of `av1_amf` in FFmpeg 9.0.2; `h264_amf` and `hevc_amf` have a similar but not identical set. `-1` and `auto` leave the setting to the AMF driver. `-qvbr_quality_level` uses its own 0–51 scale.\n\n{/* ffmpeg-parameters:start */}\n\n### Private options\n\n| Parameter | Type | Default | Meaning | Range / named values |\n| --- | --- | --- | --- | --- |\n| `-usage` | `int` | `-1` | Use case that sets the encoder's defaults: `transcoding`, `high_quality`, `lowlatency`, `ultralowlatency`, `webcam`, `lowlatency_high_quality`. -1 = driver default. | `-1` to `5`; `transcoding`=`0`, `ultralowlatency`=`2`, `lowlatency`=`1`, `webcam`=`3`, `high_quality`=`4`, `lowlatency_high_quality`=`5` |\n| `-bitdepth` | `int` | `0` | Output bit depth, 8 or 10. 0 follows the input pixel format. | `0` to `10`; `8`=`8`, `10`=`10` |\n| `-profile` | `int` | `-1` | AV1 profile (`main`); -1 = driver default. | `-1` to `1`; `main`=`1` |\n| `-level` | `int` | `auto` | AV1 level limit; `auto` lets the driver choose. | `-1` to `23`; `auto`=`-1`, `2.0`=`0`, `2.1`=`1`, `2.2`=`2`, `2.3`=`3`, `3.0`=`4`, `3.1`=`5`, `3.2`=`6`, `3.3`=`7`, `4.0`=`8`, `4.1`=`9`, `4.2`=`10`, `4.3`=`11`, `5.0`=`12`, `5.1`=`13`, `5.2`=`14`, `5.3`=`15`, `6.0`=`16`, `6.1`=`17`, `6.2`=`18`, `6.3`=`19`, `7.0`=`20`, `7.1`=`21`, `7.2`=`22`, `7.3`=`23` |\n| `-quality` | `int` | `-1` | Quality preset: `high_quality`, `quality`, `balanced`, `speed`. Same field as `-preset`. | `-1` to `100`; `high_quality`=`0`, `quality`=`30`, `balanced`=`70`, `speed`=`100` |\n| `-preset` | `int` | `-1` | Alias of `-quality`. | `-1` to `100`; `high_quality`=`0`, `quality`=`30`, `balanced`=`70`, `speed`=`100` |\n| `-latency` | `int` | `-1` | Latency mode: `none`, `power_saving_real_time`, `real_time`, `lowest_latency`. -1 = driver default. | `-1` to `3`; `none`=`0`, `power_saving_real_time`=`1`, `real_time`=`2`, `lowest_latency`=`3` |\n| `-rc` | `int` | `-1` | Rate control: `cqp`, `cbr`, `vbr_peak`, `vbr_latency`, `qvbr`, `hqvbr`, `hqcbr`. -1 picks `cqp` if any QP option is set, `cbr` if `-b:v` equals `-maxrate`, otherwise `vbr_peak`. | `-1` to `6`; `cqp`=`0`, `vbr_latency`=`1`, `vbr_peak`=`2`, `cbr`=`3`, `qvbr`=`4`, `hqvbr`=`5`, `hqcbr`=`6` |\n| `-qvbr_quality_level` | `int` | `-1` | Quality target for `-rc qvbr`. | `-1` to `51` |\n| `-header_insertion_mode` | `int` | `-1` | When to repeat sequence headers: `none`, `gop` or `frame`. -1 = driver default. | `-1` to `2`; `none`=`0`, `gop`=`1`, `frame`=`2` |\n| `-async_depth` | `int` | `16` | Frames queued on the GPU; higher improves throughput and adds latency. | `1` to `42` |\n| `-preencode` | `boolean` | `auto` | Pre-encode pass that assists rate control; ignored with CQP. | `-1` to `1` |\n| `-enforce_hrd` | `boolean` | `auto` | Enforce HRD (decoder buffer) compliance. | `-1` to `1` |\n| `-filler_data` | `boolean` | `auto` | Insert filler data to keep CBR output at the target rate. | `-1` to `1` |\n| `-max_b_frames` | `int` | `-1` | Maximum consecutive B-frames the encoder may use (0–3). | `-1` to `3` |\n| `-bf` | `int` | `-1` | B-frame pattern: number of B-frames between references (0–3), if the GPU supports them. | `-1` to `3` |\n| `-high_motion_quality_boost_enable` | `boolean` | `auto` | Spend more bits on high-motion scenes. | `-1` to `1` |\n| `-min_qp_i` | `int` | `-1` | Lowest QP for I-frames. | `-1` to `255` |\n| `-max_qp_i` | `int` | `-1` | Highest QP for I-frames. | `-1` to `255` |\n| `-min_qp_p` | `int` | `-1` | Lowest QP for P-frames. | `-1` to `255` |\n| `-max_qp_p` | `int` | `-1` | Highest QP for P-frames. | `-1` to `255` |\n| `-min_qp_b` | `int` | `-1` | Lowest QP for B-frames. | `-1` to `255` |\n| `-max_qp_b` | `int` | `-1` | Highest QP for B-frames. | `-1` to `255` |\n| `-qp_p` | `int` | `-1` | Fixed QP for P-frames (CQP). | `-1` to `255` |\n| `-qp_i` | `int` | `-1` | Fixed QP for I-frames (CQP). | `-1` to `255` |\n| `-qp_b` | `int` | `-1` | Fixed QP for B-frames (CQP). | `-1` to `255` |\n| `-skip_frame` | `boolean` | `auto` | Let rate control drop frames to hold the bitrate. | `-1` to `1` |\n| `-aq_mode` | `int` | `-1` | Adaptive quantization: `none` or `caq` (content-adaptive). | `-1` to `1`; `none`=`0`, `caq`=`1` |\n| `-forced_idr` | `boolean` | `false` | Make forced I-frames key frames. | `0` to `1` |\n| `-align` | `int` | `none` | Resolution alignment: `none`, `64x16` (reject other sizes) or `1080p` (64×16 plus 1920×1080). | `1` to `3`; `64x16`=`1`, `1080p`=`2`, `none`=`3` |\n| `-smart_access_video` | `boolean` | `auto` | On systems with an AMD APU and GPU, use both for better performance. | `-1` to `1` |\n| `-preanalysis` | `boolean` | `auto` | Pre-analysis stage that feeds AQ, scene-change and lookahead decisions; enables the `pa_*` options. | `-1` to `1` |\n| `-pa_activity_type` | `int` | `-1` | Activity measure for pre-analysis: luma only (`y`) or `yuv`. | `-1` to `1`; `y`=`0`, `yuv`=`1` |\n| `-pa_scene_change_detection_enable` | `boolean` | `auto` | Detect scene changes in pre-analysis. | `-1` to `1` |\n| `-pa_scene_change_detection_sensitivity` | `int` | `-1` | Scene-change sensitivity: `low`, `medium`, `high`. | `-1` to `2`; `low`=`0`, `medium`=`1`, `high`=`2` |\n| `-pa_static_scene_detection_enable` | `boolean` | `auto` | Detect static scenes in pre-analysis. | `-1` to `1` |\n| `-pa_static_scene_detection_sensitivity` | `int` | `-1` | Static-scene sensitivity: `low`, `medium`, `high`. | `-1` to `2`; `low`=`0`, `medium`=`1`, `high`=`2` |\n| `-pa_initial_qp_after_scene_change` | `int` | `-1` | QP used immediately after a scene change. | `-1` to `51` |\n| `-pa_max_qp_before_force_skip` | `int` | `-1` | QP threshold above which a frame may be skipped. | `-1` to `51` |\n| `-pa_caq_strength` | `int` | `-1` | Content-adaptive quantization strength: `low`, `medium`, `high`. | `-1` to `2`; `low`=`0`, `medium`=`1`, `high`=`2` |\n| `-pa_frame_sad_enable` | `boolean` | `auto` | Use frame SAD (sum of absolute differences) in pre-analysis. | `-1` to `1` |\n| `-pa_ltr_enable` | `boolean` | `auto` | Long-term reference management from pre-analysis. | `-1` to `1` |\n| `-pa_lookahead_buffer_depth` | `int` | `-1` | Pre-analysis lookahead, in frames. | `-1` to `41` |\n| `-pa_paq_mode` | `int` | `-1` | Perceptual AQ: `none` or `caq`. | `-1` to `1`; `none`=`0`, `caq`=`1` |\n| `-pa_taq_mode` | `int` | `-1` | Temporal AQ: `none`, `1` or `2`. | `-1` to `2`; `none`=`0`, `1`=`1`, `2`=`2` |\n| `-pa_high_motion_quality_boost_mode` | `int` | `-1` | High-motion quality boost from pre-analysis: `none` or `auto`. | `-1` to `1`; `none`=`0`, `auto`=`1` |\n| `-pa_adaptive_mini_gop` | `boolean` | `auto` | Adapt the number of B-frames to the content. | `-1` to `1` |\n\n### Codec-specific generic initialization overrides\n\nThe wrapper replaces these generic FFmpeg defaults for this encoder. `-b` is in bits/s; `-g` and\n`-bf` count frames. `-1`, and `0` for `-b` and `-refs`, leave the value to the preset, driver or\nrate-control logic.\n\n| Generic parameter | Default |\n| --- | --- |\n| `-refs` | `-1` |\n| `-aspect` | `0` |\n| `-b` | `0` |\n| `-g` | `-1` |\n| `-qmin` | `-1` |\n| `-qmax` | `-1` |\n\n{/* ffmpeg-parameters:end */}\n"
}
