A professional, high-performance web application designed to automatically detect and remove silent parts from both audio and video files. Built with a privacy-first approach, 100% of processing runs locally in your browser—your media never leaves your device.
- Zero Cloud Uploads: Audio decoding, video cutting, and file generation take place entirely client-side using Web Audio API and WebAssembly (FFmpeg WASM).
- Offline Capable: Works seamlessly offline once loaded in your browser.
- ⚡ Bulk Audio Processing: Upload single or multiple audio files simultaneously.
- 📊 Real-time Waveform Visualization: View original and trimmed waveform data.
- 🛠️ Precision Silence Parameters:
- Silence Threshold (dB): Custom decibel limit defining silence vs speech.
- Minimum Silence Length (ms): Filter out quick natural pauses.
- Padding (ms): Add buffer around speech to avoid audio clipping.
- 📦 Smart Export: Download individual trimmed
.wavfiles or export the entire queue as a.ziparchive. - 🌐 Supported Formats:
MP3,WAV,M4A,OGG,FLAC,AIFF.
- 🎞️ Batch Video Trimming: Process single clips or entire batches of video files.
- 🔍 Interactive Region Inspector:
- Wavesurfer Waveform: Visual overlay marking silences (Red) and kept speech (Gray).
- Click-to-Jump: Click any silent region on the waveform to sync video player playback.
- Segment Checkboxes: Easily toggle individual silent segments on or off.
- ⚡ Frame-Accurate FFmpeg WASM Engine:
- Fast stream-copy and zero-latency H.264 video trimming.
- Automatic fallback re-encoding for complex containers and non-monotonous DTS timestamps.
- 📦 Video Export: Download individual
.mp4files or package the whole batch into a.zipfile. - 🌐 Supported Formats:
MP4,MOV,WEBM,MKV,AVI.
- Core Framework: React 18 + Vite
- UI Design System: Material UI (MUI v6) with Custom Dark Glassmorphism
- Video Engine:
@ffmpeg/ffmpeg0.12 (WebAssembly Core) - Audio Engine: Browser Web Audio API (
AudioContext, PCM Synthesis) - Waveforms:
wavesurfer.jsv7 with Regions plugin - Archiving:
JSZipfor client-side ZIP packaging
- Node.js (v18 or higher recommended)
npmorpnpm
-
Clone the repository:
git clone https://github.com/PramudithaN/silence-remover.git cd silence-remover -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Build for production:
npm run build
- Select Mode: Choose Audio Silence Remover or Video Silence Remover using the top tab bar.
- Upload: Drag & drop your media files into the drop zone.
- Inspect & Tweak:
- For Audio: Adjust Threshold, Min Silence, and Padding sliders.
- For Video: Review detected silent zones on the interactive waveform, click regions to jump playback, and adjust sliders if needed.
- Process: Click Remove Silence (Audio) or Cut All Videos (Video).
- Download: Export individual processed files or download everything as a
.ziparchive.
This project is open source and available under the MIT License.
- GitHub: github.com/PramudithaN
- LinkedIn: linkedin.com/in/pramuditha-nadun-612b1b204
- Email: pramudithanadun@gmail.com
Developed with ❤️ by Pramuditha Nadun.
