Skip to content本文へ移動

Build from source

For contributors, custom builds, and Linux users.

To build Celesta, install Rust 1.89 or later, your platform’s native build tools, and FFmpeg 8.1.x development libraries. Use Node.js 24 and the pnpm version declared in the root package.json to build the React runtime, matching CI.

1. Prepare your platform

macOS

Install the Xcode Command Line Tools and Homebrew. Then install the libraries and point pkg-config at the keg-only FFmpeg package in the shell where you build Celesta.

xcode-select --install
brew install ffmpeg@8 pkg-config
export PKG_CONFIG_PATH="$(brew --prefix ffmpeg@8)/lib/pkgconfig"

Windows

Install the MSVC C++ build tools and vcpkg. Set VCPKG_ROOT to your vcpkg checkout, then install the FFmpeg package below. Run Cargo from a shell configured for the MSVC toolchain.

vcpkg install ffmpeg[x264]:x64-windows-static-md

Use a vcpkg release with FFmpeg 8.1.x, such as 2026.07.29. Newer ports may provide unsupported FFmpeg 9.

Linux

Most distributions, including Ubuntu 24.04 LTS, do not package FFmpeg 8.1.x, so build it from source with the repository’s scripts/build-ffmpeg-linux.sh after you get the source in step 2. It builds static libraries with libx264 into /opt/ffmpeg8, which takes about 5 minutes on 4 cores. Cargo uses libclang-dev to generate the FFmpeg bindings. On Debian and Ubuntu, run these from the repository root:

sudo apt-get install -y build-essential nasm pkg-config curl xz-utils zlib1g-dev libx264-dev libclang-dev
sudo apt-get install -y libasound2-dev libxkbcommon-x11-dev libfontconfig-dev
sudo scripts/build-ffmpeg-linux.sh /opt/ffmpeg8
export PKG_CONFIG_PATH=/opt/ffmpeg8/lib/pkgconfig

Set PKG_CONFIG_PATH in every shell where you run Cargo. FFmpeg is linked into Celesta’s executables, so LD_LIBRARY_PATH is not needed. If your distribution does provide FFmpeg 8.1.x, install pkg-config and its libavcodec, libavformat, libavfilter, libavdevice, libavutil, libswscale, and libswresample development packages instead of running the script. To export without a GPU, see Export a video.

2. Get the source

git clone https://github.com/mika-f/Celesta.git celesta
cd celesta

3. Build the React runtime

Before launching a source build, install the workspace dependencies, generate the shared types, and build the React runtime:

pnpm install
pnpm --dir packages/react run codegen
pnpm run build:runtime

4. Open a React composition

cargo run -p celesta-editor --release -- packages/cli/examples/title.tsx

The app opens the sample title composition with a preview, timeline, Assets panel, and Inspector. Pass another React entry to open it:

cargo run -p celesta-editor --release -- examples/reel/film.tsx

Run these commands from the repository root. The React examples under examples/ are pnpm workspace packages, so this also installs their dependencies. To start your own project:

cargo run -p celesta-editor --release -- --init my-video

See Create a project for the generated files and dependency setup.

cargo run -p celesta-editor --release -- packages/cli/examples/title.tsx
cargo run -p celesta-exporter --release -- --react packages/cli/examples/title.tsx output.mp4

Run Cargo commands from the repository root. Packaged-app users can skip this entire section and go straight to their first React composition.

Try it without installing.

The playground runs Celesta in your browser, export included.

Open the playground