This repo contains a C++ video frame interpolation (VFI) engine in cpp/.
From the repo root:
cd cpp
mkdir -p build
cd build
cmake ..
make -jIf your system uses a different generator, replace make -j with the matching build command (for example, cmake --build . -j).
This loads the full video into memory, runs VFI, then writes the output.
./vfi <input> <output> <dst_fps>Example:
./vfi ../input.mp4 ../cppout.mp4 60Optional:
--test-determinismruns the pipeline twice and checks that output hashes match.- An optional 5th argument limits max input frames.
Example:
./vfi ../input.mp4 ../cppout.mp4 60 --test-determinism 120This processes frames incrementally to reduce memory use and avoid large-job OOM kills.
./vfi_stream <input> <output> <dst_fps>Example:
./vfi_stream ../input.mp4 ../cppout.mp4 60You can control threading with environment variables:
VFI_THREADSlimits the number of worker threads.VFI_PARALLEL_MINsets the minimum loop size before parallelism kicks in.
Example:
VFI_THREADS=8 VFI_PARALLEL_MIN=2048 ./vfi_stream ../input.mp4 ../cppout.mp4 60- If your process gets killed on large videos, use
vfi_streamto avoid high memory usage. - Output quality depends on input FPS and target FPS settings.