-
-
Notifications
You must be signed in to change notification settings - Fork 1
Configuration
The tool comes with a relatively simple configuration based on the JSON format. Almost every aspect of the tool is configurable.
Where to find both the FFmpeg binaries as well as the VMAF model directory.
The location of the video files used as input.
Where to store the intermediate cache videos to speed up the encoding process and waste less energy and time on identical work.
The directory to store the resulting .JSON files in that VMAF generates.
An object of encoder objects with the structure:
"encoder_name": {
<options>
}
Enable or disable a certain encoder. Enabled encoders will be ignored if they are not supported by the tool or FFmpeg binary.
The resource pool to put this encoder into in order to prevent
The number of threads to let libx264 to use. If this is reduced below 32 or increased above 32, the cost for an encode is adjusted by the formula cost *= (32.0 / n)
, as the original cost measurements were done at 32 threads.
The maximum amount of encodes of this type to run in parallel.
The GPU index to run h264_nvenc on, or -1
to automatically select. You can figure out the proper index with the following FFmpeg command:
ffmpeg -hide_banner -f lavfi -i color=size=64x64:duration=1:rate=30:color=black -c:v h264_nvenc -gpu -2 -an -f null -
Array of arguments to the -preset
option.
Array of arguments to the -tune
option, or null
if the option should be omitted.
Array of arguments to the -rc-lookahead
option, which controls the number of frames to look into the future.
Array of arguments to the -bf
option, controlling the maximum amount of B-Frames to insert. If rc-lookahead
is set to 0, controls the absolute number of B-Frames to insert.
Array of arguments to the -b_ref_mode
option.
Array of boolean options where true
enables scenecut if rc-lookahead
is greater than 0, and false
disables it always.
An object of video objects with the structure:
"file_base_name": {
<options>
}
Enable or disable a certain video. Missing videos are ignored.
The pixel format to transcode to. The current common streaming and VoD format is yuv420p
or nv12
.
Color Matrix to use for transcoded files.
Transfer Characteristics to use for transcoded files.
Color Primaries to use for transcoded files.
Color range to use for transcoded files.
Model that VMAF is using, relative to the <config.paths.ffmpeg>/vmaf/
directory. May not contain special symbols.
Number of threads that VMAF is allowed to use.
Array of resolutions ([Width, Height]
) to transcode to. Only the first element of the inner array is used, the height is calculated from the input video's aspect ratio.
Array of numbers to scale the framerate by. Values should be kept below 1.0, as values above 1.0 simply introduce duplicated frames and do not magically generate new information.
Array of numbers to use as possible bitrates.
Array of numbers to multiply with the framerate to determine the keyframe interval with.