How to batch compress multiple videos for discord
- Step 1Sign in to a paid tier — Batch needs Pro (5 files/job) or Pro + Media (50 files/job). On the Free tier the dropzone accepts one file at a time, so you'd run them individually.
- Step 2Drop multiple clips — Drag several videos onto the dropzone, or use Add more to top up the queue toward your tier's batch limit. Each shows its size, duration, and resolution in the file list.
- Step 3Set one Target size for the whole batch — Pick
25(free Discord, 24 MB ceiling) or50(Nitro, 49 MB). Every clip in the queue uses this same target; there's no per-file override — the bitrate still adapts to each clip's own length. - Step 4Press Process N files — The button shows the count. Clips encode one after another (sequential), and a progress card tracks each: queued, processing, done, or error.
- Step 5Download each result — As each clip finishes, a download button appears on its row. Grab them individually — there's no single zip; it's per-file MP4 downloads.
- Step 6Send the batch to Discord — Attach the compressed MP4s. Each is H.264 under your chosen cap, so they all embed inline.
Batch limits by tier
Files-per-job and total size allowance for the video family. Batch (more than one file per job) requires a paid tier.
| Tier | Files per job | Total size allowance | Batch available? |
|---|---|---|---|
| Free | 1 | 1 GB | No — one file at a time |
| Pro | 5 | 10 GB | Yes |
| Pro + Media | 50 | 100 GB | Yes |
| Developer | Unlimited | 100 GB | Yes |
Resize vs compress — pick the right tool
This batch tool changes file size via bitrate, not pixel dimensions. Match your goal to the correct tool.
| Goal | Right tool | What it changes |
|---|---|---|
| Fit each clip under Discord's cap | This tool (Discord compressor) | Bitrate → file size; resolution unchanged |
| Change pixel dimensions (e.g. to 720p) | /video-tools/video-resizer | Width/height in pixels |
| Set an exact kbps target | /video-tools/video-bitrate-set | Explicit video + audio kbps |
| Web-friendly 720p + faststart | /video-tools/web-optimizer | Scales to 720p, H.264, +faststart |
Cookbook
How a mixed queue behaves. Sequential, same target, per-clip bitrate, per-file download.
Five gameplay highlights at target 25
A typical Pro batch: five clips of different lengths, all fit to the free cap. Each gets a bitrate from its own duration, so the short ones look great and the long ones still fit.
Queue (target 25, Pro): clip1.mp4 30s → ~24 MB (video ~6,300 kbps) clip2.mp4 90s → ~24 MB (video ~3,100 kbps) clip3.mp4 15s → ~12 MB (source-limited, stays small) clip4.mp4 180s → ~24 MB (video ~940 kbps) clip5.mp4 45s → ~23 MB (video ~4,340 kbps) Processing: one at a time, in order; download each as it's done
Nitro batch at target 50
Same queue, the 50 target — each clip gets roughly double the bitrate and downloads at ~48 MB.
Queue (target 50, Pro + Media): every clip fit to a 49 MB ceiling 90s clip: video ~6,200 kbps (was ~3,100 at target 25) Result: sharper batch, each under the 50 MB Nitro cap
One bad file in the queue
If a clip can't be probed or runs out of memory, it's marked errored and the batch keeps going — you don't lose the whole run.
Queue of 5: clip1 done · clip2 done clip3 ERROR: Could not determine video duration clip4 done · clip5 done Result: 4/5 done · 1 failed — download the 4, fix clip3 separately
Cancelling mid-batch
The Cancel button stops the queue; clips already finished keep their downloads, the rest are marked cancelled.
Processing 2/5 → press Cancel clip1 done (downloadable) clip2 done (downloadable) clip3, clip4, clip5 → Cancelled Result: keep what's finished, re-run the rest later
Batch isn't a resize — combine with the resizer
If you also need every clip at 720p, resize first, then batch-compress. The Discord compressor only changes bitrate.
Want: all clips at 720p AND under 25 MB 1. /video-tools/video-resizer → 720p each 2. drop the resized clips here, target 25, Process Result: 720p + under-cap MP4s (two passes, two tools)
Edge cases and what actually happens
Free tier — only one file accepted
Batch unavailableOn the Free tier the dropzone takes one file at a time; there's no queue. Upgrade to Pro (5 files/job) or Pro + Media (50) for batch. Until then, compress clips one by one — same result, more clicks.
One clip fails, the rest continue
Partial successEach clip is processed independently in the loop. A failure (unreadable duration, OOM, unsupported source) marks just that row as errored with its message; the batch moves to the next file. The results card shows e.g. 4/5 done · 1 failed.
Expecting a resize, getting a same-resolution file
By designDespite the older 'resize' naming, this tool changes bitrate, not pixel dimensions. Outputs keep their source resolution (except the mobile 720p fallback). For real resizing across a batch, pre-process with the video resizer, then batch-compress here.
Total batch size near the tier cap
Watch the allowanceEach file must be within your per-file limit, and the dropzone caps the count at your tier's batch limit. Pro allows 10 GB total / 5 files; Pro + Media 100 GB / 50 files. A queue of very large sources can also be slow on the software path — hardware encode is far faster.
No single zip download
Per-file downloadsResults are downloaded per clip from each row's button — there's no combine-to-zip option on this tool. For many files, click each as it finishes so you don't lose them on a refresh (state is in-tab only).
Cancelled mid-run
CancelledPressing Cancel aborts the queue from the current clip onward; remaining clips are marked Cancelled. Already-finished clips keep their download buttons. Re-run with the leftover files to finish.
Clips of very different lengths in one batch
Handled per-clipEach clip's bitrate is computed from its own duration against the shared target, so a 15 s clip and a 4 min clip in the same queue both fit correctly — the short one ends up sharp (and possibly well under the cap), the long one soft but compliant.
A clip longer than ~12 minutes in the batch
May exceed capLong clips hit the 200 kbps floor and can overshoot 24 MB (console warning, file still produced). For a clean batch, trim long clips with the lossless trimmer before queueing.
Frequently asked questions
Can I compress several Discord clips at once?
Yes, on a paid tier. Pro processes 5 files per job and Pro + Media 50. Drop them all in, set one target, and they encode sequentially — each fit to the cap by its own duration — with a download button per clip. The Free tier is one file at a time.
Does 'batch resize' actually resize the videos?
No — despite the name, it compresses by bitrate, not by changing pixel dimensions. Each output keeps its source resolution (the only auto-resize is the mobile 720p fallback). If you want every clip at a specific resolution, run the video resizer first, then batch-compress here.
Do all clips in a batch use the same size target?
Yes — you set one Target size (25 or 50) for the whole queue; there's no per-file override. But the bitrate adapts to each clip's length, so mixed-length clips all fit their target individually. A 30 s and a 4 min clip in the same batch each land under the cap.
Are the clips processed in parallel?
No, sequentially — one encode at a time, in queue order. This keeps memory predictable (parallel WASM encodes would blow the heap). The results card shows each clip's status as it progresses through queued → processing → done.
What happens if one clip in the batch fails?
Only that clip is marked errored with its specific message (e.g. unreadable duration or out-of-memory); the batch continues to the next file. You end with something like '4/5 done · 1 failed' and can download the successful ones and fix the failed one separately.
How do I download the results — is there a zip?
No zip — each finished clip has its own download button on its row in the results card. Click them as they complete. State is held in the tab, so download before refreshing or you'll lose the outputs and have to re-run.
Can I cancel a batch partway through?
Yes. The Cancel button stops the queue from the current clip onward; remaining clips are marked Cancelled. Clips that already finished keep their download buttons, so you don't lose completed work.
What are the batch and size limits per tier?
Free: 1 file, 1 GB. Pro: 5 files, 10 GB total. Pro + Media: 50 files, 100 GB. Developer: unlimited files, 100 GB. Each individual file must also be within the per-file limit for your tier.
Is the batch uploaded to a server to process?
No. Every clip is encoded locally in your browser — hardware WebCodecs where available, FFmpeg.wasm otherwise — exactly like the single-file flow. Batching is just a sequential local queue; nothing in it is uploaded.
Can I mix the targets — some clips at 25, some at 50?
Not in one batch; the target applies to the whole queue. To split targets, run two batches: one with target 25 for the free-cap clips, one with target 50 for the Nitro-cap clips.
What if I also want each clip at an exact bitrate?
This tool targets a file size, not a fixed kbps. For an explicit video/audio kbps across clips, use the bitrate setter. To fit a smaller cap than Discord's, the WhatsApp compressor (15 MB) or email compressor (20 MB Outlook) are size-target siblings.
How long does a big batch take?
It depends on the path and total footage. On desktop Chrome/Edge with hardware encode, each clip is fast and a 5-file batch finishes in a couple of minutes for short clips. On the FFmpeg.wasm fallback it's slower per clip; for a large Pro + Media queue, a hardware-encode browser makes a big difference.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.