ffmpeg and ffprobe to look inside videos that people upload. Publishing does not depend on them: a video without ffmpeg still goes out, but MagicPost cannot check it first.
What ffmpeg is used for
After an upload, the media library shows one of these notes on a video it could not read:
- “This server cannot read video files yet, so the length was not checked and no preview was made. It can still be published.”
- “This video could not be read, so its length was not checked. It may be damaged, or in a format ffmpeg cannot open.”
How MagicPost finds the programs
For each offfmpeg and ffprobe, MagicPost tries these in order and uses the first that exists:
- The path in
FFMPEG_BINARIESorFFPROBE_BINARIESin.env. The value only counts as a path when it contains a/or\. - The copy in
vendor/ffmpeg(ffmpegandffprobe, orffmpeg.exeandffprobe.exeon Windows). If the file is there but not executable, MagicPost tries to make it executable. - A program with that name anywhere on the server’s
PATH.
vendor/ffmpeg is a Linux x86-64 static build, so it runs on most shared and VPS Linux hosts without installing anything. On another system, install ffmpeg yourself and set the two keys:
.env
FFMPEG_THREADS (default 2) and FFMPEG_TEMPORARY_FILES_ROOT. See Environment variables.
What the server must allow
- PHP must be allowed to start programs.
proc_openmust exist and must not appear indisable_functionsinphp.ini. The installer lists it on the Server Requirements step as optional, with a warning if it is off. - The two files must be executable. After uploading with a file manager or unzipping, the executable bit is often lost.
- The files must match the server’s CPU. A build for a different system fails to start.
- The folder must not sit on a volume mounted without permission to run programs.
Check that it works
1
Open System health
Go to Admin → Publishing → Settings and read the System health card. Select Check again after any change.
2
Read the Video processing line
A working setup reads “ffmpeg”, then the version number, then “from” and the path of the program. A problem shows a warning that ends with “Until then videos still publish, but their length is not checked first and they get no preview.”
3
Match the reason to a fix
The text before that sentence tells you what to do. The table below lists each one.
MagicPost runs
ffmpeg -version once to prove the program starts, and keeps that answer for an hour. If you fix a problem that makes the program fail to start and the line does not change, wait up to an hour or clear the cache. See Cache and optimisation.Videos are processed in the background
Image previews are made during the upload. Video analysis runs as a background job on themedia queue, so a new video stays in processing until the scheduler or a queue worker picks it up. If videos never leave that state, the scheduler is not running. See Scheduler and queue problems.
A single video job may run for up to 14 minutes and is tried twice.
Related pages
File storage
Where uploaded videos are saved and which limits apply.
Requirements
PHP version, extensions and functions the server needs.

