How to bleep out profanity in a video locally
- Step 1Drop your video onto the tool — Open the audio region muter and drag the clip in. Processing runs in your browser via FFmpeg.wasm — the file is never uploaded. MP4, MOV, MKV, WebM, AVI, M4V, and TS are all accepted; you always get an MP4 back.
- Step 2Find the exact in/out times — Scrub your clip in any player and note the start and end of the profanity in seconds. Decimals are fine — Start and End are rounded to three places (e.g.
14.250), so you can be frame-accurate to the millisecond. - Step 3Set Start (s) — Type the start of the region into the Start (s) field. It accepts 0 up to the clip duration. This becomes the lower bound of FFmpeg's
between(t, start, end)window. - Step 4Set End (s) — Type the end into End (s). It must be strictly greater than Start or the tool stops with End time must be after start time. The field is capped at the detected clip duration.
- Step 5Run the bleep (silence) — The tool runs
volume=enable='between(t,START,END)':volume=0, copies the video stream with-c:v copy, and re-encodes the audio to AAC 192k. The picture is untouched; only the audio inside your window goes silent. - Step 6Download and verify — Play the result with headphones across the boundary you set. The cut to silence is hard (no fade). If you have more than one section to handle, feed this MP4 back in and run another pass.
The only two controls (verified against the tool UI)
The options panel for this tool has exactly two numeric fields. There is no beep/tone option, no fade, no waveform scrubber, and no multi-region list — every claim here is checked against the actual client component.
| Control | What it is | Range | Default |
|---|---|---|---|
| Start (s) | Start of the mute region in seconds. Passed to FFmpeg as the lower bound of between(t, start, end). Decimals allowed (rounded to 3 places, e.g. 12.480) | 0 to clip duration | 0 |
| End (s) | End of the mute region in seconds. Upper bound of the between() expression. Must be greater than Start or the tool stops with *End time must be after start time* | 0 to clip duration | 0 |
| Region count | One region per pass. The tool applies a single between(t, start, end) window. To silence several separate sections, run the tool once per section (the output of one pass is the input to the next) | 1 | 1 |
| Replacement | Silence only — the region's volume is set to 0. There is no beep, tone, hum, or audio substitution. The registry note is explicit: silence is the default to avoid copyright on common beep sounds | fixed | silence |
Silence vs. a real bleep — what this tool does
Censorship workflows often assume a 1 kHz bleep tone. This tool produces silence, not a tone. Here's the honest comparison so you can decide if it fits your standard.
| Approach | This tool? | Effect | When it's the right call |
|---|---|---|---|
| Hard silence over the word | Yes — volume 0 for the window | Word becomes a gap of silence | Family channels, classroom edits, most broadcast standards that accept a mute |
| 1 kHz beep tone | No | Tone replaces the word | Game shows / TV that mandate an audible bleep — not produced here; add in an audio editor after export |
| Reverse / scramble the word | No | Word garbled but present | Not supported |
| Cut the word out (shorten clip) | No | Timeline shifts | Use the video-splitter or lossless-trimmer to remove a segment entirely |
What actually happens to your file
Grounded in the FFmpeg command the tool runs. The video stream is copied bit-for-bit; only the audio is touched. For a censor edit the silence is the point; the AAC re-encode of the rest of the track is transparent for dialogue.
| Stage | FFmpeg behaviour | Effect on your file |
|---|---|---|
| Video stream | -c:v copy — the video is stream-copied, never decoded or re-encoded | Zero quality loss on the picture. No generation loss, no re-compression artefacts, frame-identical to the source |
| Audio filter | -af volume=enable='between(t,START,END)':volume=0 — audio plays at full volume everywhere except the region, where volume drops to 0 | Hard silence inside the region; original audio everywhere else |
| Audio re-encode | -c:a aac -b:a 192k — the entire audio track is re-encoded to AAC at 192 kbps, not stream-copied | One transcode pass on the whole track. AAC 192k is transparent for speech/most music, but it is a re-encode, not a copy |
| Container | Output is always written as out_*.mp4 | You always get an .mp4 back, whatever container you fed in (MOV, MKV, WebM, AVI, M4V, TS) |
| Where it runs | FFmpeg.wasm inside your browser tab — no upload | The file never leaves your device. Nothing is sent to a server |
Cookbook
Tight-window timing for censoring spoken profanity. Use decimals — a single word is often under a second.
Silence one swear word
The word lands between 0:08.40 and 0:08.95. A sub-second window mutes just the word.
Start (s): 8.40 End (s): 8.95 -af volume=enable='between(t,8.400,8.950)':volume=0 Result: 0.55 s of silence over the word, rest untouched.
Two profanities, two passes
One pass mutes one window. Censor the first word, download, reload, censor the second.
Pass 1 -> Start 8.4 End 8.95 (download)
Pass 2 -> reload output
Start 21.1 End 21.7 (download)
Both words silenced; picture frame-identical (video copied).Widen the window slightly if the word clips
If you still hear the tail of the word, nudge End out by 0.1–0.2 s. Err slightly wide rather than catching a fragment.
First try: Start 8.40 End 8.90 -> tail audible Second try: Start 8.35 End 9.05 -> clean
Family-channel re-upload
Clean an existing upload for a kid-safe re-post. Mute the profanity, get an MP4, re-upload.
Input: vlog.mp4 Start (s): 134 End (s): 135 Output: out.mp4 (one word silenced) -> re-upload
Keep the picture pristine for a standards review
Broadcast QC will notice a re-encoded picture. Because the video is stream-copied, the muted master is frame-identical to the source.
Video: -c:v copy (no re-encode, QC-clean) Audio: AAC 192k (transparent for dialogue) Only change: silence over the flagged word.
Edge cases and what actually happens
End is less than or equal to Start
RejectedIf End is the same as or earlier than Start, the tool stops immediately with *End time must be after start time. Set both Start and End in the options panel.* Set End to a value strictly greater than Start. A common cause is leaving both at the default 0.
Region runs past the end of the clip
By designThe between(t, start, end) expression simply has no frames to act on past the real end of the audio, so an End value larger than the clip duration silences from Start to the end of the audio and stops. The UI also caps the End field at the detected clip duration, so you normally cannot overshoot.
Audio gets re-encoded even outside the region
ExpectedThe command runs -c:a aac -b:a 192k, which re-encodes the whole audio track, not just the muted window. AAC at 192 kbps is transparent for speech and most music, but if you need a true stream-copy of the untouched audio, this tool is not the right choice — it always does one audio transcode.
Output is MP4 even though you uploaded MOV/MKV/WebM
By designThe tool always writes out_*.mp4. If you need the original container back (for example MKV with multiple tracks), this tool will not preserve it. Use it for the MP4 deliverable, or mute first then remux elsewhere.
Several separate sections to mute
By designEach pass mutes one window. For multiple non-adjacent sections, run the tool repeatedly: mute section 1, download, feed that MP4 back in, mute section 2, and so on. The video is stream-copied each time so the picture never degrades across passes.
You want a beep instead of silence
Not supportedThere is no beep, tone, or audio-replacement control — the region is set to volume 0 (pure silence). The registry note states silence is deliberate to avoid copyright on common beep sounds. If a hard cut to silence is acceptable, this tool is correct; otherwise add a tone in a dedicated audio editor after export.
Two swear words back-to-back
By designIf two words sit close together you can either mute one wide window that covers both, or run two passes for tighter control. A single window is simplest when there's little usable audio between them.
Profanity overlaps wanted dialogue
CaveatMuting is time-based, not word-isolating — if another speaker talks over the profanity in the same window, that audio is silenced too. There is no per-voice isolation. Keep the window as tight as the audio allows.
Very large file on the Free plan
BlockedFree caps a single video at 1 GB. A 1080p hour-long export can exceed that. Pro lifts the cap to 10 GB and Pro-media to 100 GB. Because the video is stream-copied, processing is fast even on large files — the bottleneck is the size cap, not duration.
Variable-frame-rate phone footage
SupportedBecause the video is copied rather than re-encoded, VFR footage from phones and screen recorders passes through untouched. The mute window is keyed to playback time t in seconds, so the silence lands at the same wall-clock position regardless of frame timing.
Frequently asked questions
Does this add a bleep tone over the swear word?
No — it produces silence (volume 0), not a tone. The registry note states silence is the default to avoid copyright on common beep sounds. If your standard requires an audible bleep, add it in an audio editor after exporting the muted MP4.
Will the censored cut look different from the original?
No. The video is stream-copied with -c:v copy, so the picture is frame-identical — there's no re-encode softening that a standards reviewer might catch.
How do I censor several swear words?
Run one pass per word: mute the first, download, reload that MP4, mute the next. The copied video never degrades across passes.
How tight can the window be?
As tight as you like — Start and End accept decimals (rounded to 3 places), so you can mute a sub-second syllable. If you clip the word's tail, nudge End out by 0.1–0.2 s.
Is the footage uploaded?
No. FFmpeg.wasm runs entirely in your browser, so unaired raw footage stays on your device.
What if another person talks over the profanity?
The mute is time-based, so any audio in the window — including overlapping dialogue — is silenced. There's no per-voice isolation; keep the window tight.
Can I just cut the swear word out instead of silencing it?
This tool silences; it doesn't shorten. To remove a segment and close the gap, use the video-splitter or lossless-trimmer.
What format do I get back?
Always MP4, whatever container you uploaded.
Is AAC 192k good enough for broadcast dialogue?
Yes — 192 kbps AAC is transparent for speech. The whole track is re-encoded once, but dialogue is unaffected perceptually.
What if End is before Start?
The tool stops with End time must be after start time. Make End greater than Start.
How big a file can I clean?
Free up to 1 GB; Pro 10 GB; Pro-media and Developer 100 GB. No minutes cap.
Does it fade into the silence?
No — it's a hard cut to silence at both edges. There's no fade control.
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.