- Fundamentals
- Core Concepts
Core Concepts
The main parts of an FFmpeg job request.
Very Good FFmpeg runs FFmpeg commands on remote workers. You send file URLs, command strings, and output names. The API returns a job you can poll.
Jobs
A job is one FFmpeg run. It can contain one command or many commands.
Jobs start as queued, move to running, and then finish as succeeded, failed, or
cancelled.
Inputs
input_files is a map of names to URLs.
{
"input_files": {
"input": "https://example.com/video.mp4"
}
}The worker downloads each input before it runs FFmpeg.
Outputs
output_files is a list of files you want back.
{
"output_files": ["output.mp4"]
}When the job succeeds, the job response includes output_files as a map of output name
to download URL.
Placeholders
Use {{name}} in commands to refer to inputs and outputs.
{
"ffmpeg_commands": ["-i {{input}} -c:v libx264 {{output.mp4}}"]
}{{input}} must match a key in input_files. {{output.mp4}} must match a name in
output_files.
Machines
Jobs use the CPU worker by default.
Set "machine": "nvidia" only when your command uses GPU features like h264_nvenc,
hevc_nvenc, CUDA filters, or NVDEC decode.
Local Files
The API needs URLs. If a file is only on your machine, upload it first with Temporary Files.