Repository navigation
Added
--cpusand--memory(every command): the CPUs and the memory qc
and the ffmpeg processes it starts may use.--memorydefaults to the
memory limit of the container, and the CPU quota of a container
(docker run --cpus) is now followed: worker counts, libvmaf threads and
the threads of the decoders and encoders are sized on it instead of on
the cores of the host. Under a memory limit fewer clips are scored and
fewer probes encoded at once; the results do not change. Library:
quality.WithMemory,ladder.Options.Memory,encode.WithThreads,
encode.Params.Threads.
Fixed
- Memory of ladder builds: the decoded frames of every measurement pass
were left to a garbage collector that rarely ran, and a build kept
gigabytes of dead frames (9.5 GB for qc on an H.264 ladder of a 1080p
title, 4.7 GB now). The Docker images also setMALLOC_ARENA_MAX=2
(3.3 GB). In a container short of memory the build was killed without a
message. - An ffmpeg process killed from outside (the kernel's out-of-memory killer)
is reported as such instead ofsignal: killed.
Docker
docker run --rm -v "$PWD:/data" ghcr.io/eko/qc:1.2.1 version --checkBinaries
Self-contained (libvmaf and the VMAF models are built in); ffmpeg is still
needed. Linux binaries are static; the macOS one is not signed
(install).