Skip to content

Encoding

vladaad edited this page Dec 14, 2023 · 2 revisions
	"Encoding": {
		"MaxBitrate": 15000,
		"FastMode": false,
		"AutoRes": true,
		"AutoResCap": 1080,
		"HalveFPS": true,
		"VariableFPS": false,
		"Scaler": "bicubic",
		"Passthrough": true,
		"ForceGetABR": true,
		"Encoders": [
			{
				"Name": "fast",
				"Passes": 2,
				"Keyint": 10,
				"Pixfmt": "yuv420p",
				"Args": "-c:v libx264 -preset medium -aq-mode 3"
			},
			{
				"Name": "ultra",
				"Passes": 2,
				"Keyint": 15,
				"Pixfmt": "yuv420p10le",
				"Args": "-c:v libaom-av1 -cpu-used 6 -lag-in-frames 25 -aom-params enable-keyframe-filtering=1:arnr-strength=1:sb-size=dynamic:enable-chroma-deltaq=1:enable-qm=1:quant-b-adapt=1"
			}
		],
		"AEncoders": [
			{
				"Name": "aac",
				"Type": "qaac",
				"BMult": 1.2,
				"BMax": 144,
				"BMin": 72,
				"TVBR": false,
				"Args": ""
			},
			{
				"Name": "opus",
				"Type": "ffmpeg",
				"BMult": 1,
				"BMax": 128,
				"BMin": 32,
				"TVBR": false,
				"Args": "-c:a libopus"
			}
		],
		"Limits": [
			{
				"Encoder": "normal",
				"AEncoder": "aac",
				"Container": "mp4",
				"MinBitrate": 5000,
				"MaxVRes": 1080,
				"MaxFPS": 60
			},
			{
				"Encoder": "ultra",
				"AEncoder": "opus",
				"Container": "webm",
				"MinBitrate": 0,
				"MaxVRes": 540,
				"MaxFPS": 30
			}
		]
	}
}

MaxBitrate

Maximum possible bitrate. Will make filesize go down below the target size. Consider that most people can't play a 1gb large, 10 second video on a residential network connection before changing it or removing it.

FastMode

Will encode audio in parallel to the 1st pass and disable automatic resolution selection. This also hurts accuracy of bitrate calculation.
AUTOMATICALLY FORCED FOR 1-PASS ENCODES

AutoRes

Automatically chooses resolution based on video content and encoder. This will improve quality more than choosing a slower preset, and as such is recommended to leave on unless you have a potato.

AutoResCap

Maximum resolution that AutoRes will choose.

HalveFPS

Will halve the FPS instead of capping it. For example, it will cap 72fps to 36fps instead of 60fps, or 48 to 24fps instead of 30.

VariableFPS

Deduplicates frames, making the encoding process faster, especially with anime, but can reduce quality and introduce unexpected issues.

Scaler

Downscaler used. cuda uses the scale_cuda ffmpeg filter for fast, on-GPU scaling and pixel format conversions

Passthrough

Attempts audio and video passthrough, if possible.

ForceGetABR

Extracts audio from input video if bitrate metadata is not available. Does not increase efficiency by itself, but enables passthrough where it would have been impossible.

Encoders

This is a list of usable video encoders, identified by name. Specify as many as you like.

  • Keyint - keyframe interval in seconds
  • Pixfmt - pixel format to use
  • Args - ffmpeg arguments for the encoder

AEncoders

This is a list of usable audio encoders, identified by name. Specify as many as you like.

  • Type - whether to use FFmpeg or an external program. Values: ffmpeg, qaac, fdkaac, fhgaac
  • BMult - audio bitrate multiplier. By default, the bitrates chosen cap out around 160kbit. This is to boost bitrate for music content or depending on the encoders capabilities, or limit it.
  • TVBR - don't specify a bitrate, instead, the encoder behaves like it would without a bitrate argument. Meant for VBR in certain encoders (QAAC, FDKAAC), which can boost efficiency at the penalty of no automatic bitrate selection.

Limits

These are sets of parameters for each bitrate, specifying maximum resolution and framerate and choosing encoders + framerate.
The lowest possible limit is chosen according to their MinBitrate.

Table of Contents

Settings

Guides

Clone this wiki locally