fal AI FFmpeg API: endpoints, inputs and prices
fal hosts FFmpeg as model endpoints: merge videos, merge audio and video, extract a frame, compose tracks. Called with a fal key, priced per second.

Yes, fal has an FFmpeg API. It hosts FFmpeg operations as separate model endpoints under fal-ai/ffmpeg-api/: merge-videos joins clips in order, merge-audio-video lays an audio file on a video, extract-frame pulls the first, middle or last frame, and compose builds a video from several media tracks. You call them like any fal model, with URLs in and a file URL out.
Every fal fact here is quoted from fal's own model pages, read on 2026-09-29: merge-videos, merge-audio-video, extract-frame, compose and metadata. The Sume section comes from Timeline 1.0 and Video frames.
Which FFmpeg endpoints does fal have?
Each endpoint does one job and takes typed fields, not a raw FFmpeg command line. The table lists the ones this post read. fal also lists waveform data and EBU R128 loudness normalization endpoints for audio files.
| Endpoint | What it does | Inputs | Listed price |
|---|---|---|---|
fal-ai/ffmpeg-api/merge-videos | Merge 2 or more videos | video_urls in order; optional target_fps (1–60) and resolution (width and height 512–2048) | $0 per compute seconds |
fal-ai/ffmpeg-api/merge-audio-video | Put an audio file on a video | video_url, audio_url; optional start_offset in seconds (default 0) | $0.0002 per seconds |
fal-ai/ffmpeg-api/extract-frame | First, middle or last frame | video_url; optional frame_type (first default, middle, last) | $0.0002 per seconds |
fal-ai/ffmpeg-api/compose | Compose a video from multiple media sources | tracks (each with id, type, keyframes) | $0.0002 per seconds |
fal-ai/ffmpeg-api/metadata | Encoding metadata of a video or audio file | media_url; optional extract_frames | $0 per compute seconds |
How do I merge videos or audio with the fal FFmpeg API?
Send a POST with your fal key in an Authorization: Key header. This is fal's own cURL example with placeholder URLs. The response carries a video file object with its url.
merge-videoswithouttarget_fpsuses the lowest FPS of the inputs.- Without
resolution,merge-videosuses the minimum width and height across the inputs, or the aspect ratio of the input you name inresolution_aspect_ratio_video_index. extract-framereturns animageslist;composereturnsvideo_urlandthumbnail_url.- For the queue and client libraries (
fal_client.subscribe,fal.subscribe), see fal vs Replicate.
curl --request POST \
--url https://fal.run/fal-ai/ffmpeg-api/merge-audio-video \
--header "Authorization: Key $FAL_KEY" \
--header "Content-Type: application/json" \
--data '{
"video_url": "https://example.com/clip.mp4",
"audio_url": "https://example.com/voice.wav"
}'How much does the fal FFmpeg API cost?
fal lists merge-videos and metadata at "$0 per compute seconds", and merge-audio-video, extract-frame and compose at "$0.0002 per seconds". The pages don't say which seconds the second rate counts. They point to fal's pricing page for details, so check it before you budget at volume.
Can I do the same edits on Sume?
Yes, for clips already on Sume. Sume's media tools read only this workspace's media.sume.com files, such as an artifact from an earlier Sume job, not arbitrary URLs.
- Join clips: Timeline 1.0 takes one audio spine plus 1–200 ordered
video[]slots and returns one MP4. Callers never send filtergraphs or codecs. - Sound: in current code a Timeline render takes sound only from the audio spine and an optional soundtrack; each clip's own audio is dropped.
- Frames: Video frames returns stills from one clip and is unbilled; see how to extract frames with the Sume API.
- Filters: Video filter takes an allowlisted, filters-only
filtergraph; see the FFmpeg filter allowlist. - Price: a Timeline render reserves $0.10 per output minute, counted in whole minutes (API pricing).
Sources
- fal FFmpeg API merge-videos (read 2026-09-29)
- fal FFmpeg API merge-audio-video (read 2026-09-29)
- fal FFmpeg API extract-frame (read 2026-09-29)
- fal FFmpeg API compose (read 2026-09-29)
- fal FFmpeg API metadata (read 2026-09-29)
- fal FFmpeg API waveform (read 2026-09-29)
- fal FFmpeg API loudnorm (read 2026-09-29)
- Timeline 1.0
- Video frames
- Video filter
- Sume API pricing
Related posts
More in Developers
- FFmpeg: add a watermark image to a video with overlay
Add a watermark image to a video with FFmpeg: pass the logo as a second input and use overlay=W-w-10:H-h-10 for the bottom-right corner.
- FFmpeg burn subtitles into video: subtitles filter, force_style
Burn subtitles into a video with FFmpeg's subtitles filter: -vf subtitles=subs.srt re-encodes the picture, and force_style overrides the font and colour.
- FFmpeg change frame rate: the fps filter vs -r
Change a video's frame rate with FFmpeg's fps filter: -vf fps=30 drops or duplicates frames and keeps the running time. How -r and framerate differ.
- FFmpeg crop video: crop=w:h:x:y, centre, and 9:16
Crop a video with FFmpeg's crop filter: -vf crop=w:h:x:y keeps a w×h area whose top-left corner is at x,y; leave out x and y to crop the centre.
Written by Sume