Skip to content

Latest commit

 

History

History
73 lines (48 loc) · 1.44 KB

File metadata and controls

73 lines (48 loc) · 1.44 KB

How To Run The C++ VFI Engine

This repo contains a C++ video frame interpolation (VFI) engine in cpp/.

Build

From the repo root:

cd cpp
mkdir -p build
cd build
cmake ..
make -j

If your system uses a different generator, replace make -j with the matching build command (for example, cmake --build . -j).

Run (Batch Mode)

This loads the full video into memory, runs VFI, then writes the output.

./vfi <input> <output> <dst_fps>

Example:

./vfi ../input.mp4 ../cppout.mp4 60

Optional:

  • --test-determinism runs 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 120

Run (Streaming Mode)

This 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 60

Performance Tuning

You can control threading with environment variables:

  • VFI_THREADS limits the number of worker threads.
  • VFI_PARALLEL_MIN sets the minimum loop size before parallelism kicks in.

Example:

VFI_THREADS=8 VFI_PARALLEL_MIN=2048 ./vfi_stream ../input.mp4 ../cppout.mp4 60

Notes

  • If your process gets killed on large videos, use vfi_stream to avoid high memory usage.
  • Output quality depends on input FPS and target FPS settings.