FFmpeg and Slack: What the Official Docs Say About Video Size

Sep 22, 2026

Slack's help centre documents exactly one per-file upload ceiling: "You can add files up to 1GB in size." That sentence sits at the top of Slack's "Add files to Slack" page with no plan-by-plan table beside it — no separate row for Free, Pro, Business+ or Enterprise+.

That one number is easy to work with. The harder part is everything Slack does not publish — whether it re-encodes what you upload, what your own admin may have tightened, and how long the file survives once it is up there. Those are the things that should decide how you compress, so start there rather than with a command.

Look at the file before you re-encode it

ffprobe input.mp4

The output lists the duration and every stream inside the container. That is worth reading first, because the cheapest compression is often not compression at all: if only one part of the file has to change, FFmpeg can pass the rest through untouched.

FFmpeg's documentation calls that streamcopy: "The simplest pipeline in ffmpeg is single-stream streamcopy, that is copying one input elementary stream's packets without decoding, filtering, or encoding them." The payoff is stated in the same section, and it is a guarantee rather than a rule of thumb: "Since there is no decoding or encoding, it is very fast and there is no quality loss."

Two limits come with it, both documented. The first is scope. Streamcopy is "useful for changing the elementary stream count, container format, or modifying container-level metadata" — there is no encoder in the path, so it cannot change the resolution, the codec or the bitrate of a stream it copies. Whatever size reduction you need has to come out of the streams you actually re-encode.

The second is that -map is all-or-nothing: "When -map is used, only user-mapped streams are included in that output file, with one possible exception for filtergraph outputs." Once you start selecting streams by hand, anything you forget to list is dropped without complaint — which is a quiet way to ship a video with the wrong audio track, or no audio at all.

What the FFmpeg docs will and will not settle for you

Encoder settings — which encoder, which quality or bitrate value, which preset — are not something to take from a blog post, this one included. FFmpeg's documentation site says why: "The following documentation is regenerated nightly, and corresponds to the newest FFmpeg revision. Consult your locally installed documentation for older versions." Option names and defaults move between releases, so check the official documentation for the encoder you are using and confirm it against your own build with ffmpeg -h encoder=.... For the rest of our FFmpeg write-ups, see the FFmpeg guides hub.

Aim under the ceiling, not at it

1GB is the documented ceiling, but it is often not the number you should aim at.

Slack's developer documentation lists an error for file uploads called file_upload_size_restricted, described as: "The size of provided file is too large, as the team has restricted uploads of large files." In other words, a workspace can be configured to refuse files well under the documented 1GB. If uploads are failing on a file that is comfortably under the ceiling, that is the mechanism to ask your admin about — the official docs describe the error, not the setting behind it or what values it can take.

There is a second reason to aim low. Slack's documentation does not say whether it re-encodes uploaded video at all, and it does not say whether the size check runs before or after any such step. Discord, by contrast, publishes exactly where its check happens. With no statement from Slack either way, the only safe plan is to treat the file you hand over as the file that gets judged, and to do the shrinking yourself before it leaves your machine.

Try it right here

Runs in your browser. Your file is not uploaded anywhere.

Loading tool…

That runs FFmpeg compiled to WebAssembly inside your browser tab: the file is read from disk, re-encoded locally, and handed back without being uploaded anywhere. It is the right path when you are doing this once, on a machine where you would rather not install anything, or for a recording you would prefer not to hand to a third-party server on the way to Slack. If you want the knobs rather than a preset, the video compressor exposes them.

Variations

Only the video needs shrinking. If the audio track is already small, copy it across with -c:a copy instead of re-encoding it. That is the streamcopy path above, with the documented payoff — fast, and no quality loss on the stream you copied — and the documented catch: your whole size budget then has to come out of the video side.

Nobody needs to see the picture. For a recorded meeting or an interview, the audio alone is a fraction of the size. See extracting audio without re-encoding for the lossless version of that.

Do not archive it first. Slack publishes a list of file types that cannot be added to Slack Connect channels and DMs, and .7z, .gz and .tar are all on it. .mp4, .mov, .mkv and .webm are not. So in a Slack Connect conversation, tarring a big video makes the upload fail where the raw MP4 would have gone through. That restriction applies to Slack Connect channels and DMs specifically, not to every conversation in Slack.

Troubleshooting

The upload is refused and the file is under 1GB. Check the size of the finished file on disk rather than the size you were aiming for. If it really is under the documented ceiling, the file_upload_size_restricted case above is the next thing to raise with an admin.

Uploads fail across the whole workspace. Slack's developer docs also describe storage_limit_reached: "File storage limit has been reached. This occurs when free teams have uploaded 5GB of files." Two limits to keep straight there — 1GB is per file, that 5GB figure is workspace-wide, and it appears in the developer error reference and a 2019 changelog rather than on a current user-facing help page. Treat it as a lead to investigate, not a spec.

The file uploaded but shows no preview. Preview and upload are different rules. Slack documents preview thresholds for images — a preview "will only display inline if it's smaller than 25,000 pixels on the longest side, and less than 45 million pixels total" (both conditions, not either) — and says Office files over 50 MB will not display a preview. Slack's documentation gives no equivalent threshold for video, so do not assume the image numbers apply.

It was fine last quarter and now it is gone. On free workspaces, Slack states: "You can view and search messages and files from the last 90 days… Messages and files more than one year old will be permanently deleted." The 90-day rule hides; the one-year rule deletes. Worse, if a Workspace Owner set retention to delete after 90 days, Slack says that setting "will automatically delete any that become hidden by the message and file limit" — at which point upgrading does not bring them back.

FAQ

What is Slack's file size limit for video? Slack's help centre says "You can add files up to 1GB in size." It gives that number without a plan breakdown, and it does not publish a separate limit for video files. Your workspace may enforce something stricter — check the current limit in Slack's official help centre.

Does Slack compress my video for me? Slack's documentation does not state whether uploaded video is re-encoded, or whether the size check happens before or after. Because nothing official says it will shrink your file, do not build a plan around it — compress to a size you chose.

Why does my upload fail even though the file is under 1GB? Slack's developer docs describe a file_upload_size_restricted error for teams that have "restricted uploads of large files," so an admin-set limit is one possibility. Uploads are also scanned: Slack says files "will be scanned for viruses and other malware, and won't be uploaded if any are detected."

Should I zip the video before sending it? Not for Slack Connect conversations. .7z, .gz and .tar are on Slack's list of file types that cannot be added to Slack Connect channels and DMs, while .mp4 is not. Compressing the video itself is the move that actually helps.

How long is a video I upload to Slack going to stay there? On a free workspace, the last 90 days of files are visible and searchable, and anything more than one year old is permanently deleted. Slack notes that upgrading restores "the remaining 275 days" of hidden history — unless retention was set to delete after 90 days, in which case it is gone.

Can I download a video a colleague posted, from my phone? Not through Slack's documented path. Slack states that on a mobile device "you can only download image files." Getting the video off Slack means using the desktop app.


Slack limits cited from Slack's help centre and developer documentation, checked 16 September 2026. FFmpeg quotes from the official documentation and its documentation index. Hitting the same wall on another chat app? See Discord says your file is too large, or browse all Clapr tools.

Clapr team

Clapr team

FFmpeg and Slack: What the Official Docs Say About Video Size | Clapr Blog