Skip to content
This repository has been archived by the owner on Jun 13, 2024. It is now read-only.

Configuration

Michael Fabian Dirks edited this page Oct 5, 2016 · 32 revisions

The Plugin offers two different interfaces: A simple one for those just wanting to get it working quick and an advanced one for the quality freaks. Which one you use is up to you, it is generally recommended to always start with the Simple Interface.

H264 Encoder (AMD Advanced Media Framework)

This is the interface aimed at those that just want to get it going, it provides presets and a cleaner version of the complete parameter setup. In Version 1.3.2.3 it looked like this.

Preset

Fully configures the Encoder for a specific use case, useful if you just want to start off somewhere. Available Presets change over time and their exact settings can always be found in code or by applying it. Will continuously replace other settings until disabled again.

Keyframe Interval (Seconds)

The interval at which Keyframes appear, it is generally recommended to keep this at 2 for streaming and 1 for recording.

Quality Preset

Favor Speed, stay Balanced or favor Quality. All three options provide different results, with Speed being closer to x264 ultrafast and Quality being closer to x264 fast.
Options: (best) Quality, Balanced, Speed (worst)

Profile, Profile Level

Defines the h.264 Profile and Profile Level, which define encoding limits that the Encoder will rather strictly follow. Using the wrong Profile and Profile Level can result in drastic quality and streaming issues.
Profile: Main for Twitch, High for YouTube.
Profile Level: 4.1 for 1280x720 30 FPS, 4.2 for 1280x720 60 FPS or 1920x1080 30 FPS, 5.1 for 1920x1080 60 FPS.

Rate Control Method

Controls which rate control method is to be used. There are four total available RCMs:

  • Constant QP (CQP): Assigns a fixed QP value to the given frame type using 'I-Frame QP', 'P-Frame QP' and 'B-Frame QP'.
  • Constant Bitrate (CBR): Attempts to reach the 'Target Bitrate' for every second and will fill the remaining space up with 'Filler Data' if enabled.
  • Variable Bitrate Peak Constrained (VBR): Variable Bitrate which attempts to stay below the 'Peak Bitrate'. Behaves like Constant Bitrate without 'Filler Data' being enabled.
  • Variable Bitrate Latency Constrained (VBR_LAT): Basically Constrained QP that tries to stay at the given 'Target Bitrate' on average. Uses 'Minimum QP', 'Maximum QP' and 'Target Bitrate'.

Target Bitrate, Peak Bitrate

Bitrate targets for Constant Bitrate (CBR) and Variable Bitrate (VBR, VBR_LAT). Range: 10 - 100000.

I-Frame QP, P-Frame QP, B-Frame QP

QP Values to use for Constant QP (CQP) rate control method. Range: (best) 0 - 51 (worst).

Use Custom Buffer Size, Custom Buffer Size

Allows overriding of the built in per-second buffer used to calculate the remaining data needed to reach the given settings. Big effect on Constant Bitrate (CBR), less effect on other rate control methods. Range: 10 - 100000.
Recommended: 'Target Bitrate' or not set.

Initial Buffer Fullness

Initial Buffer Fullness defines how full the VCE buffer is at the start of encoding. Range: (empty) 0% - 100% (full).
Recommended: 100%

Filler Data

If enabled, tells Constant Bitrate (CBR) to fill up the remaining buffer with filler data so that it meets the 'Target Bitrate'. No effect on any other Rate Control Methods.

B-Picture Pattern (Advanced, only available if supported)

Defines how many B-Pictures should be used to encode. Generally, more B-Pictures mean higher quality but slower encoding. For VCE 2 cards, it is recommended to set this to 0 as there is a Driver bug causing issues.
Range: (worst) 0 - 3 (best, only if supported)

Warning: High Performance Impact!

B-Picture Reference (Advanced, only available if supported)

Allow the encoder to reference B-Pictures in the decoded stream, instead of limiting B-Pictures to only I- & P-Frames. Increases overall stream compression and quality at lower bitrates.

Warning: High Performance Impact!

B-Picture Delta QP, Reference B-Picture Delta QP (Advanced, only available if supported)

Delta QP from the P-Frame QP to use for B-Frames. Used to further control compression with B-Pictures.

Warning: Incorrect values can cause slower encoding and worse quality! Modify with caution.

Deblocking Filter (Advanced)

If enabled, sets a flag in the output that the individual h.264 blocks may be smoothing together to reduce the blocking artifacts. Only affects the edges of the blocks, which can improve overall visual quality.

Enforce HRD Compatibility (Advanced)

If enabled, limits the QP variation within a frame so that weaker devices and devices that use a stricter decoder can decode properly.

Warning: This setting will affect the overall quality and compression of the output negatively since changes can't be represented as good as with it disabled. Only enable if absolutely necessary.

Memory Type (Expert)

Which Backend to use for the plugin, defaults to Host for maximum speed until OBS support for shared DirectX and OpenGL devices and surfaces is implemented. It is not recommended that this is changed.

Warning: High Performance Impact!

Compute Type (Expert)

Which Compute Backend to use for the plugin, defaults to Disabled which makes everything run on the Software side instead. Due to a Driver bug, OpenCL is currently massively slower and much more unstable than the Software solution.

Warning: High Performance Impact!

Surface Format (Expert)

Allows you to override the Surface Format that the Encoder will use, defaults to Automatic so it will use whatever format OBS gives it. Will only list supported options by the GPU and setting this to something else than what is set in OBS incurs an additional conversion cost. It is recommended to keep this on Automatic or NV12.

Warning: High Performance Impact!

Use Custom GOP Size, GOP Size (Expert)

Experimental parameter that allows you to override the automatically calculated GOP Size.

Warning: Extreme impact on Quality and Compression! No support if changed. Do not change this option unless you know what you are doing! Here there be dragons!

Context Adaptive Binary Arithmetic Coding (CABAC)

Experimental parameter that allows enabling and disabling CABAC entropy coding. Not supported by many decoders, streaming servers, file formats (FLV, ...), protocols (RTMP, HTTP) and editing software. Only YouTube recommends using CABAC, but use with caution anyway.

Warning: Unexpected behavior may happen if you use this! No support if changed. Do not change this option unless you know what you are doing! Here there be dragons!