CLI for speeding up long-form talks by removing silence
Project description
Talks Reducer
Talks Reducer shortens long-form presentations by removing silent gaps and optionally re-encoding them to smaller files. The project was renamed from jumpcutter to emphasize its focus on conference talks and lectures.
When CUDA-capable hardware is available the pipeline leans on GPU encoders to keep export times low, but it still runs great on CPUs.
Repository Structure
talks_reducer/— Python package that exposes the CLI and reusable pipeline:cli.pyparses arguments and dispatches to the pipeline.pipeline.pyorchestrates FFmpeg, audio processing, and temporary assets.audio.pyhandles audio validation, volume analysis, and phase vocoder processing.chunks.pybuilds timing metadata and FFmpeg expressions for frame selection.ffmpeg.pydiscovers the FFmpeg binary, checks CUDA availability, and assembles command strings.
requirements.txt— Python dependencies for local development.default.nix— reproducible environment definition for Nix users.CONTRIBUTION.md— development workflow, formatting expectations, and release checklist.AGENTS.md— maintainer tips and coding conventions for this repository.
Example
- 1h 37m, 571 MB — Original OBS video
- 1h 19m, 751 MB — Talks Reducer
- 1h 19m, 171 MB — Talks Reducer
--small
The --small preset applies a 720p video scale and 128 kbps audio bitrate, making it useful for sharing talks over constrained
connections. Without --small, the script aims to preserve original quality while removing silence.
Highlights
- Builds on gegell's classic jumpcutter workflow with more efficient frame and audio processing
- Generates FFmpeg filter graphs instead of writing temporary frames to disk
- Streams audio transformations in memory to avoid slow intermediate files
- Accepts multiple inputs or directories of recordings in a single run
- Provides progress feedback via
tqdm - Automatically detects NVENC availability, so you no longer need to pass
--cuda
Processing Pipeline
- Validate that each input file contains an audio stream using
ffprobe. - Extract audio and calculate loudness to identify silent regions.
- Stretch the non-silent segments with
audiotsmto maintain speech clarity. - Stitch the processed audio and video together with FFmpeg, using NVENC if the GPU encoders are detected.
Recent Updates
- October 2025 — Project renamed to Talks Reducer across documentation and scripts.
- October 2025 — Added
--smallpreset with 720p/128 kbps defaults for bandwidth-friendly exports. - October 2025 — Removed the
--cudaflag; CUDA/NVENC support is now auto-detected. - October 2025 — Improved
--smallencoder arguments to balance size and clarity. - October 2025 — CLI argument parsing fixes to prevent crashes on invalid combinations.
- October 2025 — Added example output comparison to the README.
Quick Start
- Install FFmpeg and ensure it is on your
PATH - Install Talks Reducer with
pip install talks-reducer(this exposes thetalks-reducercommand) - Inspect available options with
talks-reducer --help - Process a recording using
talks-reducer /path/to/video
Requirements
- Python 3 with
numpy,scipy,audiotsm, andtqdm - FFmpeg with optional NVIDIA NVENC support for CUDA acceleration
Contributing
See CONTRIBUTION.md for development setup details and guidance on sharing improvements.
License
Talks Reducer is released under the MIT License. See LICENSE for the full text.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file talks_reducer-0.1.3.tar.gz.
File metadata
- Download URL: talks_reducer-0.1.3.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36503ead87f4f701b6af8b2e166a0ab35da9bb20a7fdd674952bef1fc7211c8d
|
|
| MD5 |
22865a2e523869ade2a1f01835f3dda7
|
|
| BLAKE2b-256 |
2f80fdf6776a239289a9c5259e63158f69dda540a2606872309a9d488fd312ff
|
File details
Details for the file talks_reducer-0.1.3-py3-none-any.whl.
File metadata
- Download URL: talks_reducer-0.1.3-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc5fa9d245003614884af77ee748736a97cbc33372b85914f464898c00b74988
|
|
| MD5 |
0061c53c07a66da58543443ee491de7f
|
|
| BLAKE2b-256 |
f4da40e9891b3a7ee24b751531beeccab9f2c5cf29477148224ebdedf2aadf39
|