Skip to main content

FURIOUS

Video editor and effects engine for music-focused content creation

  • C++
  • C++
  • FFmpeg
  • Lua
  • OpenGL
  • CMake
Screenshot of FURIOUS

FURIOUS is a video editor I built for making YTPMVs and otomads. The workflow for this kind of content doesn't fit well into normal editors like Premiere because you're syncing hundreds of short clips to musical beats, and doing that manually on a timeline is tedious.

The core concept is borrowed from FL Studio: instead of a linear timeline, you build patterns. Each pattern maps video clips to BPM-relative positions (beats, measures, subdivisions), and you arrange patterns into a sequence. Everything is stored internally as beat offsets, so changing the project tempo shifts all the clips correctly.

Video decoding runs on FFmpeg's libraries (libavcodec, libavformat, libswscale). The engine maintains a decoder context pool with a frame cache on top, and uses a two-pass seek for frame-accurate positioning since FFmpeg's default seeking only lands on keyframes.

All visual effects are Lua scripts loaded at runtime. Each script receives a frame buffer, the current time in beats, and a parameter table. Effects stack, and the heavy pixel work happens in C++ helper functions exposed to Lua, so you can write and share effects without needing a C++ build environment.

The project also has a keyframe automation system with linear, bezier, and step interpolation for animating effect parameters over time.