About

Video tooling is powerful and unteachable. We think that is a design problem.

FFmpeg can do almost anything to a video file. Learning it means reading a man page the length of a novel, pasting a command from a forum, and finding out ten minutes later whether it did what you hoped. The knowledge exists — it is just locked behind a syntax you cannot see into.

BeemMeUp makes the pipeline visible. A command is a graph; a graph is a command. Change either one and the other follows, then press run and watch the file come out. Every lesson points at the same tools you would use for real work, because reading about a filter graph and building one are not the same skill.

How we build it

Show the real thing

Every diagram is the working tool, not a picture of one. If a lesson claims a flag does something, you can change it on the spot and see whether that is true.

Both directions, always

Graph to command and command to graph. People arrive with a command they pasted from somewhere; the fastest way to teach it is to show them what it is made of.

Your files stay yours

Encoding happens in your browser or on your machine. There is no upload step, no processing queue, and nothing to delete afterwards.

Free where it matters

Courses, labs, tools and the desktop app cost nothing. Charging people to learn the thing they are already struggling with is the wrong business.

What is inside

Six tools, one file format between them. Pick one to jump to its details.

Every flag is a node. The canvas compiles to a real ffmpeg command as you edit, and pasting a command rebuilds the graph. Press run and the encode happens in your tab. Open the Studio

Graph and command in sync

Edit either one and the other follows, including labelled filter pads and multiple outputs.

Diagnostics before you run

Missing encoders, container mismatches and unreachable nodes are flagged on the canvas.

In-browser runs

Real encodes on ffmpeg.wasm with progress, logs and a playable result. Stand-ins are generated for missing inputs.

Labelled undo

Sixty steps with a timeline you can scrub. One drag is one step.

Runtime picker

wasm in the tab, the local bridge, or the desktop app with hardware encoders.

Flag explanations

Hover any flag for what it does, linked to the FFmpeg documentation.

Drop a file and see what it is made of: boxes, streams, frames, packets, and the command that most likely produced it. Nothing is uploaded. Open Analyze

MP4 box tree

moov, trak, stbl and the rest, with sizes and offsets, parsed in the browser.

Frames and packets

Keyframe spacing, timestamps and per-packet sizes on a timeline.

HLS and DASH manifests

Variant ladders, codecs strings and segment timing for master and media playlists.

Corruption check

Truncated moov, missing keyframes, broken sample tables and timestamp gaps, with the likely cause.

Five courses where every diagram is the working tool. Reading about a filter graph and building one are not the same skill, so lessons open in the Studio with their inputs preloaded. Browse the courses

Five courses

FFMPEG, HLS, MPEG-DASH, WebRTC and Media Pipelines, each with a module quiz.

Study sessions

Flash cards, quizzes and command challenges with a source on every card.

Certificates

Earned by running the commands, with a verification link and printable version.

Live diagrams

Every lesson graph is an embedded Studio you can edit and run.

Players and protocols you can steer by hand. The DASH Lab drives dash.js against public test streams; the WebRTC Lab pairs two real peer connections in one page. Open the DASH Lab

DASH Lab

Force a rendition, cap the buffer, throttle bandwidth and watch ABR react.

WebRTC Lab

Offer, answer and ICE candidates between two real RTCPeerConnections, no signalling server.

Spec annotations

Every control names the section of the spec it touches.

Every upload and render in one place, reusable as the input of the next pipeline. Files stay in your browser, or on your disk with the desktop app. Open the library

Uploads and renders

Inputs and outputs side by side with format, duration and size.

Chain pipelines

Send any result straight into the next Studio graph.

Local by default

Nothing leaves your machine. There is no processing queue and nothing to delete.

Give your agent the same tools. Connect Claude Desktop, Claude Code or Cursor and ask it to visualise a filter chain, lint a command or inspect a manifest. Every client gets only the scopes you grant. Set up the MCP

Visualise and lint

Filter chains rendered as graphs, commands checked for the mistakes Analyze knows about.

Inspect manifests

HLS and DASH manifests read from a URL or a pasted file.

Run encodes

A write scope, flagged on the consent screen and revocable per client.

Browser-based consent

OAuth-style authorisation with toggleable scopes; manage clients in Account.

Under the hood

Nothing is simulated

When a lesson shows an encode, it is FFmpeg compiled to WebAssembly running in your tab. When the WebRTC lab pairs two peers, they are two real RTCPeerConnection objects exchanging real ICE candidates. The DASH Lab drives dash.js against public test streams.

That constraint is the whole product. A mock would be easier to build and worth nothing: the surprising parts of video are exactly the parts a mock smooths over.

ffmpeg.wasmReal FFmpeg 4.4–6.0 cores in a worker, single or multi-threaded
dash.jsThe reference DASH player, driven by the lab controls
hls.jsPlaylist parsing and ABR behaviour in the HLS tools
WebRTCTwo live peer connections, no signalling server needed
Custom MP4 parserBox, stream and frame inspection with no server round trip
Local bridgeAn optional Node process that runs your own FFmpeg build

Who ends up here

Different reasons, same problem: the documentation assumes you already know.

Streaming engineers

You know the concepts and need a faster way to draft commands, check a ladder, or work out why one file plays and its twin does not.

Web and app developers

Video landed on your plate. You need enough working knowledge to ship, without a month of reading specifications.

Students

A course that ends in a portfolio of pipelines you actually built, and a certificate that means you ran the commands.

Educators and DevRel

Live demos that never need a local install, and lessons you can point a room at during a workshop.

Get in touch

Feature requests, a lesson that is wrong, a file that breaks the inspector, student and educator Pro — all of it goes to the same inbox and gets read.