FFmate FAQ
What is FFmate?
FFmate is an automation layer built on top of FFmpeg to simplify media transcoding workflows.
Learn more → What is FFmate?
What platforms does FFmate support?
FFmate runs on Windows, macOS, Linux, and Docker.
Learn more → Platform Support
How do I install FFmate on macOS?
The quickest path is Homebrew:
brew tap welovemedia/ffmate --no-quarantine
brew install ffmate
Learn more → Download & Install FFmate
What port does FFmate run on, and how do I change it?
FFmate’s API & Web UI listen on port 3000 by default. Add --port <number>
(or -p
) when you start the server, e.g. ffmate server --port 8080
, or set the PORT
env‑var in Docker.
Learn more → Server Command Flags
How do I point FFmate to a custom FFmpeg binary?
Use --ffmpeg "/full/path/to/ffmpeg"
(or -f
) when launching ffmate server
. In containers, set the FFMPEG
env‑var or bake the binary into the image. FFmate will call that binary for every task.
Learn more → Server Command Flags
How do I create a transcoding task via the API?
Send a POST
to /api/v1/tasks
with at minimum a command
string. Example:
curl -X POST http://localhost:3000/api/v1/tasks \
-H "Content-Type: application/json" \
-d '{
"command": "-y -i ${INPUT_FILE} -c:v libx264 -crf 23 ${OUTPUT_FILE}",
"inputFile": "videos/input.mp4",
"outputFile": "videos/output.mp4",
"priority": 50
}'
FFmate queues the task, returns its UUID, and fires a task.created
webhook.
Learn more → Creating a Task
How can I monitor the status of a task?
GET /api/v1/tasks/{taskId}
returns a JSON payload including status
, progress
, and timestamps. You can also check the Web UI’s Tasks tab for live updates.
Learn more → Monitoring a Task
How do I cancel a running task?
PATCH /api/v1/tasks/{taskId}/cancel
immediately stops queued or running jobs and marks them DONE_CANCELED
. The Web UI offers a one‑click “Cancel” button too.
Learn more → Canceling a Task
How do I submit a batch of tasks?
POST an array of task objects to /api/v1/tasks/batch
. FFmate assigns a shared batch
ID so you can track them as a group while each task still runs independently.
Learn more → Submitting Multiple Tasks as a Batch
How do I restart a failed task?
PATCH /api/v1/tasks/{taskId}/restart
resets the task to QUEUED
, clears errors, and puts it back in the processing queue.
Learn more → Restarting a Task
How do I create a watchfolder that processes only .mov files?
POST to /api/v1/watchfolders
with a filter:
"filter": { "extensions": { "include": ["mov"] } }
Learn more → Creating a Watchfolder
How does FFmate ensure a file is fully copied before processing?
Each detected file passes through a growth checks: FFmate compares file size across growthChecks
successive scans. Only when the size remains constant does the task start. This prevents half‑copied media from breaking jobs.
Learn more → How File Detection Works
How do I use presets to simplify recurring tasks?
Create a preset (Web UI or /api/v1/presets
) once, then reference its UUID in future tasks or watchfolders using "preset": "<uuid>"
. This keeps command‑lines DRY and centrally managed.
Learn more → Presets
How can I use wildcards to include timestamps in output file names?
Embed placeholders like ${TIMESTAMP_SECONDS}
inside your outputFile
or preset path. FFmate expands them at runtime so clip_${TIMESTAMP_SECONDS}.mp4
becomes clip_1717065600.mp4
.
Learn more → Wildcards
How do I run a custom script before or after transcoding?
Add a preProcessing
or postProcessing
when creating a task or watchfolder:
"preProcessing": { "scriptPath": "/scripts/prepare.sh" },
"postProcessing": { "scriptPath": "/scripts/cleanup.sh" }
FFmate executes them and passes a JSON sidecar with task metadata.
Learn more → Pre and Post Processing
How do I run FFmate on a different port with five concurrent tasks?
ffmate server --port 8080 --max-concurrent-tasks 5 --loglevel warn
Learn more → Server Command Flags
How do I enable detailed debug logs for the task queue?
Start the FFmate server with --debug="queue"
Learn more → Global Flags
Where can I view API docs for FFmate?
Start FFmate and open /swagger
in your browser (e.g., http://localhost:3000/swagger/index.html) to access the OpenAPI UI.
Learn more → Swagger
How do I update FFmate to the latest version?
Run ffmate update
for native installs, or pull the newest Docker image (ghcr.io/welovemedia/ffmate:latest && docker compose up -d
). Homebrew users can brew upgrade ffmate
.
Learn more → Updating FFmate
Where can I get help or report bugs?
Join the Discord community, file issues on GitHub, or reach out via the support links in the docs’ Community & Support page. Feedback on docs is welcome—every page has an “Edit this page” link!
Learn more → Community & Support