Video makers
Tools that turn data or images into video without opening an editor. Every one of them runs entirely inside your browser, and nothing you load is sent to a server. They all export WebM.
The five at a glance
What separates them is what you feed in and what moves on screen. Pick by the picture you want.
| Tool | What you feed in | What moves | How the length is set |
|---|---|---|---|
| Bar Chart Race Maker | A number per period (time-series JSON) | Bar lengths and rank changes | Seconds per period, or the whole video |
| Animated Line Graph Maker | Several time series (JSON) | Lines drawing left to right | Each part in seconds, or the whole video |
| Ranking Video Maker | Ranks, captions and your own images | Cards scrolling right to left | Speed in px/s, or the whole video |
| Relationship Diagram Video Maker | People, relations and shots (JSON) | A camera zooming and panning | Seconds per scene, or fitted to a total |
| Movo Blocks (block-built image animation) | A single image | Parts of the image floating, swaying, turning | A length slider (2-15 s) |
Which one to use
| What you want | Use |
|---|---|
| Show numbers changing, with the order swapping | Bar Chart Race Maker |
| Show numbers changing, comparing several series | Animated Line Graph Maker |
| A ranking of photos with short captions | Ranking Video Maker |
| Walk through people and how they are connected | Relationship Diagram Video Maker |
| Animate a single image you already have | Movo Blocks (block-built image animation) |
| Turn the video you made into a GIF | Video to GIF |
Video makers
Bar Chart Race Maker
Turn time series data into an animated bar chart race and export WebM.
Turns numbers whose ranking changes over time — yearly population, revenue, traffic — into a bar chart where the overtaking is visible. Where one entry passes another reads better than a row of tables.
- Input
- JSON with entities (the items) and timeline (a value per period). Besides pasting JSON you can pull in World Bank public data (GDP, population, GDP per capita, internet usage). After a fetch the JSON box is the source of truth, so you can keep working offline.
- Length
- Choose between "seconds per period" and "total video seconds". A total is divided by the number of intervals, which is one fewer than the number of periods, to get the per-period seconds. Fixing the total means swapping in data with more or fewer periods leaves the running time alone.
- Best for
- Numbers spanning many years where the order changes on the way
- Rankings where only part of the field is shown, such as a top ten
- Turning a public statistic straight into a video
- Key settings
- Bars shown … How many to display. Anything outside that sits in a holding lane just under the bottom row
- Bar maximum … Follow the data or pin it across all periods. Pinning makes growth feel larger
- Rank movement easing … How sharply entries accelerate as they swap places
- Resolution … 1280x720 / 1920x1080 / 1080x1920 / 1080x1080
- Worth knowing
- Periods with no value are not treated as zero. An entry that has not appeared yet holds no rank and enters from the lane below the chart, so something climbing from 40th enters exactly like something climbing from 11th.
Animated Line Graph Maker
Turn time-series JSON into an animated line chart video and export it as WebM.
Lines that draw themselves from left to right. Several series can run at once, so it suits comparing two or more trends side by side. A small chart zooms up during the intro before the drawing begins.
- Input
- JSON with timeline (the x-axis labels) and series (values per series). Each series needs as many values as there are timeline entries, and a period with no known value is written as null. You can save and reload the JSON.
- Length
- Choose between "each part in seconds" and "total video seconds". With a total, only the line drawing time is solved backwards: the intro and the hold are presentation choices and are never trimmed to fit.
- Best for
- Comparing two or more series in one frame
- Making growth feel large (the Y axis can follow the data)
- Data with gaps in it
- Key settings
- Y axis behaviour … grow follows the lines upward, fixed pins it to max, auto derives one value from all the data
- Jump highlighting … Rings and a delta on points whose change exceeds a threshold
- Glow / trail / particles … Styling for the lines. All can be turned off
- Resolution … 1280x720 / 1920x1080 / 2560x1440 / 3840x2160 / 1080x1920
- Worth knowing
- Gaps are drawn as a dotted stretch with a "no data" note. A missing period is never plotted as zero, so nothing looks like a crash that was not one.
Ranking Video Maker
Build a right-to-left scrolling ranking video from JSON and local images.
For content that is a rank, a photo and a short caption repeated down a list, like a top ten. The layout is just cards moving sideways, so with the material to hand it comes together in minutes.
- Input
- JSON with an items array, plus images from your machine. Nothing is uploaded: pick or drop the images and write only the file name into the JSON's image field. A button copies a spec you can hand to an AI to write the JSON for you.
- Length
- Choose between "scroll speed (px/s)" and "total seconds". Give it a length and the speed needed for every card to pass through is worked out for you. The start and end waits count inside that length, so asking for 30 seconds exports 30 seconds.
- Best for
- Rankings where the photo carries it (products, places, works)
- Vertical short-form video
- Fitting a slot with a fixed running time
- Key settings
- Card size … Width, height and gap, which change how much fits on one card
- Image area (%) … How much of the card the photo takes. Lower it when the text matters
- Rank band / caption / border / accent line … Each can be switched off, down to photos alone
- Resolution … 1280x720 / 1920x1080 / 1080x1920 / 720x1280
- Worth knowing
- How an image sits is set by fit (cover / contain) and position. If faces are getting cropped, move the position upward. Accent colours can be set per card.
Relationship Diagram Video Maker
Describe people and relations in JSON to render a camera-driven relationship diagram video as WebM.
An explainer where the camera moves over a relationship diagram. You build it shot by shot — who to move in on, which relation to trace, what the subtitle says — much like a storyboard. It is the only one of the five that takes audio.
- Input
- JSON with nodes (people), edges (relations) and shooting.scenes (the shots). The Scenes tab edits the same data through the screen and writes changes back to the JSON. You can load a music or narration file and record your microphone at the same time.
- Length
- The running time is the sum of the scene lengths. Put a target into "Total video length" in the Record tab and press "Fit to this length", and the scene lengths are rewritten so the whole video hits it. Keep the current balance between scenes, or make them all equal.
- Best for
- Subjects with many people, where the relations need explaining
- Explainers carrying a narration track
- Content that has to be revealed one step at a time
- Key settings
- Scene camera … Zoom level and target. Everything else can be dimmed
- Red box / callout / spotlight … Emphasis on the person or relation that shot is about
- Pre-flight check … Flags scenes whose subtitle runs long, and scenes under 2.5 seconds
- Resolution … 1920x1080 / 1080x1920 / 1080x1080 / 2560x1440
- Worth knowing
- Going vertical (1080x1920) means fewer wide shots and more zoomed ones. Holding a wide frame with many people on screen makes the names unreadable.
Movo Blocks (block-built image animation)
Stack blocks to animate a single image and export it as a WebM video. AI depth estimation and background removal run in your browser, and the image is never uploaded.
Animates one still image. The motion is assembled by stacking blocks, so effects like "float up and down" or "sway and rotate" can be layered without writing code. AI depth estimation and background removal also run in the browser.
- Input
- One image. Nothing is uploaded and the image never leaves your machine.
- Length
- A slider sets it between 2 and 15 seconds. Blocks that would start after the video ends raise a warning, so stacked-up waits do not slip past you.
- Best for
- Adding a little movement to a single picture
- Eyecatches and loop material
- Moving a subject separately from its background
- Key settings
- Motion blocks … Float, slide, rotate, breathe, orbit, bounce and more, each with an amplitude and a period
- Timing blocks … Wait and loop, which sequence the motion
- Export FPS … 1 to 60
- Worth knowing
- Where the other four build a picture out of data, this one moves a picture you already have. Reach for it when the material is a photo or an illustration rather than a chart or a ranking.
What all five share
- Everything runs in the browser. The JSON, images and audio you load are never sent to a server (the one exception is barrace's "fetch public data", which talks to the World Bank at the moment you press it).
- They export WebM. Recording captures only the canvas, so control panels and buttons stay out of the video. Chrome and Edge are recommended.
- You can set the length in seconds. All five let you fix the running time first and fit the content to it. Where there are two ways to decide it, the value you did not fix is calculated and shown on screen.
- When a request cannot be honoured, it says so. A length that is too short to work is raised to the shortest workable one, with the reason on screen. Nothing is ever exported at a different length in silence.
- Vertical is supported. 1080x1920 is available, so the result drops straight into a short-form slot.
Changing the format afterwards
For places that will not take a WebM (some social networks, chat apps, older setups) there are tools to turn it into a GIF.
Video to GIF
Convert MP4/WebM video to an animated GIF. Set frame rate, width and duration. GIF encoding runs entirely in your browser.
Converts MP4, WebM and similar into an animated GIF — the step for taking a WebM made here somewhere that only accepts GIF. Frame rate, width and the range to cut are all adjustable, and the encoding runs in the browser too.
Open this tool →GIF Animator
Turn an image into a looping animated GIF with mosaic, shimmer, shake and move effects. Runs fully in your browser.
Applies mosaic, shimmer, shake and move effects to a single image and produces a looping animated GIF. For when a GIF is what you need from the start, rather than a video.
Open this tool →Frequently asked questions
Can I set the video length in seconds?
All five can. In barrace, linegraph and rankingvideo, switching "set the length by" to the total-seconds mode solves the speed or the per-period seconds for you. relationvideo distributes a target across the scenes from "Total video length" in the Record tab. Movo Blocks has a slider from 2 to 15 seconds.
What format do they export? Can I get MP4?
They export WebM. Converting to MP4 is not part of these tools. If you need a GIF, load the exported WebM into Video to GIF.
Is the data or are the images I load sent to a server?
No. Parsing the JSON, loading images and audio, and exporting the video all happen inside your browser. The one exception is barrace's "fetch public data", which calls the World Bank's public API at the moment you use it.
Can they export vertical (short-form) video?
All five offer 1080x1920. Vertical is narrow, though, so less fits in a frame: show fewer bars in barrace, or cut the wide shots and lean on zooms in relationvideo.
Which browsers work?
Recording uses MediaRecorder, so Chrome or Edge are recommended. On a browser without support, the export step says so instead of failing quietly.