Noureddine RAMDI / Shotcut: A cross-platform video editor built on MLT's multimedia pipeline

Created Mon, 04 May 2026 10:23:01 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

mltframework/shotcut

Shotcut is a cross-platform video editor built in C++ that doesn’t reinvent the wheel for multimedia processing. Instead, it uses the MLT multimedia framework as its core engine and Qt 6 with QML for its user interface. This approach lets Shotcut focus on delivering a robust, native-feeling editing experience across Windows, macOS, and Linux while relying on battle-tested multimedia components under the hood.

Shotcut’s architecture and technology stack

At its core, Shotcut integrates the MLT (Multimedia Authoring Framework) as the engine responsible for video processing and composition. MLT, developed by Dan Dennedy, provides a flexible and composable multimedia pipeline that handles the heavy lifting of video decoding, filtering, mixing, and encoding. Shotcut extends this foundation rather than building processing capabilities from scratch.

The UI layer is implemented using Qt 6 and QML, which provides a modern, declarative interface toolkit with native look and feel on all supported platforms. This separation between the multimedia backend and the UI allows Shotcut to maintain cross-platform consistency without resorting to platform-specific code paths.

For codec and format support, Shotcut leverages FFmpeg, a widely used open-source multimedia framework, which integrates seamlessly with MLT. It also uses Frei0r plugins to provide a modular architecture for video effects, enabling extensibility without bloating the core codebase.

The build system is based on CMake with the Ninja generator recommended for faster builds. This setup helps contributors and beta testers iterate more quickly while maintaining consistent build configurations across platforms.

Technical strengths and architectural tradeoffs

What sets Shotcut apart is this architectural decision to delegate video processing to MLT. This approach has several benefits:

  • Separation of concerns: The Qt/QML UI handles user interaction and presentation, while MLT manages all multimedia processing. This makes the codebase easier to maintain and evolve.

  • Cross-platform consistency: By relying on MLT and Qt, Shotcut avoids platform-specific video processing code, making native builds straightforward on Windows, macOS, and Linux.

  • Extensibility: Using Frei0r for video effects and FFmpeg for codec support allows Shotcut to add new features without deep changes to core processing logic.

  • Performance considerations: MLT and FFmpeg are optimized C/C++ libraries with years of development, which means Shotcut inherits efficient multimedia handling.

However, this design comes with tradeoffs:

  • Tight coupling to MLT: Shotcut depends heavily on MLT’s API and release cycle. Any limitations or bugs in MLT directly affect Shotcut.

  • Learning curve: Understanding and contributing to the multimedia pipeline requires familiarity with MLT and its interaction with FFmpeg and Frei0r.

  • Build complexity: The project requires setting up multiple dependencies and environment variables correctly. While the README provides guidance, it remains a non-trivial build process for new contributors.

The codebase itself is surprisingly clean given the complexity of video editing software. The modular design and clear separation between UI and processing make it approachable to developers who want to make improvements or add features.

Quick start: building Shotcut

Shotcut provides explicit instructions for building the project, mainly targeting beta testers and contributors familiar with C++ and Qt development.

The fastest way to get a development version running is using Qt Creator, which handles project configuration and build integration.

Alternatively, from the command line, you can build Shotcut as follows (run in a separate build directory):

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/ /path/to/shotcut
# Adding -GNinja is recommended for faster builds

Then build:

cmake --build .

And install to ensure runtime locating of QML files:

cmake --install .

Skipping the install step can cause runtime failures due to missing QML resources.

This straightforward but explicit build process is appreciated in open-source multimedia projects, where environment setup and dependencies can quickly become a bottleneck.

verdict

Shotcut is a solid open-source video editor that balances leveraging existing multimedia frameworks with a clean and modern UI layer. Its architecture, centered on MLT for processing and Qt for UI, makes it a practical choice for users and developers who want cross-platform consistency without sacrificing native performance.

The main audience for Shotcut is technically inclined users who want a free, open-source alternative for video editing and developers interested in multimedia software development. Its reliance on MLT means contributors should be comfortable navigating C++ multimedia pipelines and external dependencies.

The tradeoff of depending on MLT’s API and release cadence is worth it if you prefer a stable, composable backend over building complex video processing from scratch. For anyone looking for a video editor built on a mature multimedia framework with solid cross-platform support, Shotcut is worth a look.


→ GitHub Repo: mltframework/shotcut ⭐ 13,854 · C++