A pnpm monorepo of typed, tested @openimf packages and a single CLI. Run it from the terminal, or compose the libraries into your own pipeline.
git clone <repo> openimf && cd openimf./init.shRequires Node ≥ 18.18, pnpm, and ffmpeg. Code is AGPL-3.0-or-later; docs are CC BY 4.0.
Run it from the terminal, or import the typed libraries into your own pipeline — same engine, your choice of surface.
openimf versionPrint the CLI version.
openimf imf inspect <imp-directory>Parse ASSETMAP / PKL / CPL and report what's inside an IMF package.
openimf tt convert subtitles.srt --to imsc --out subtitles.ttmlConvert SRT/VTT timed text to IMSC 1.1 (TTML).
openimf derive plan --duration 5400 --max-size 8589934592Plan a size-targeted submaster with bitrate budgeting.
import { readImp } from "@openimf/imf-engine";
import { srtToImsc } from "@openimf/timed-text";
import { planSubmaster } from "@openimf/derive";
const imp = await readImp("./MyFilm_IMP"); // ASSETMAP · PKL · CPL
const ttml = srtToImsc(srt); // IMSC 1.1
const plan = planSubmaster({ duration: 5400, maxSize: 8 * 2 ** 30 });