Version 2.11.0

Batch Noise Removal & Audio Extraction for macOS

Batch queue updates for macOS video work, including noise removal, audio extraction, progress tracking, and safer processing.

✨ New Features

Batch Noise Removal for macOS

The Noise Removal utility has been completely rebuilt from a single-file workflow into a robust batch queue system. Professional video editing workflows demand efficiency, so we’ve brought the consistency of the Portrait Box straight to your audio enhancement process.

  • Queue multiple files: Effortlessly add audio or video files via the file picker or simply drag-and-drop from Finder on macOS. It supports all essential formats including WAV, MP3, OGG, FLAC, MP4, MKV, MOV, AVI, and WEBM.
  • Strength presets: Fine-tune your audio with precision using Gentle (40 dB), Balanced (70 dB), and Aggressive (100 dB) presets, giving you total control over how much of the background noise floor is suppressed.
  • Post-filter toggle: Enable an optional second denoising pass for an even cleaner result, giving your audio a professional studio-grade finish. Note that this may slightly affect voice naturalness.
  • Per-file progress tracking: Keep an eye on your workflow with our milestone-based progress bar showing extraction, denoising, and remuxing for each individual item.
  • Advanced stop controls: Safely stop processing after the current file finishes, or stop immediately without corrupting your queue.
  • Collision-safe output management: Output files are named {stem}_denoised.{ext}, and a numbered suffix (_2, _3, etc.) is appended if the file already exists.

Batch Audio Extraction

The Extract Audio utility has also received a massive upgrade, now fully rebuilt as a powerful batch queue with extensive configurable output formats. Whether you’re captioning videos or lifting audio for a podcast, extracting dialogue is faster than ever.

  • Queue multiple videos: Speed up your video editing pipeline by adding multiple video files via the file picker or drag-and-drop.
  • Quality presets: Set sample rate and channel layout with presets designed for creators:
    • Transcription: 16 kHz, mono WAV, perfect for Whisper/AI-ready captioning (our previous default).
    • Podcast: 44.1 kHz, stereo, optimized for crisp voice recordings and interviews.
    • Production: 48 kHz, stereo, maintaining the highest quality for DAW import and lossless editing.
  • Flexible Output formats: Choose the ideal container independently of your quality preset:
    • WAV: Lossless PCM for uncompromised fidelity.
    • MP3: Lossy 192 kbps for a smaller footprint and wide compatibility.
    • FLAC: Lossless compression, offering a smaller file size than WAV with absolutely zero quality loss.
  • Real FFmpeg progress integration: Monitor processing in real-time with a per-file progress bar driven directly by FFmpeg’s time position.
  • Collision-safe safety nets: Files are safely named {stem}_{preset}.{ext} with automatic numbered suffixes on conflict.

Portrait Box — Instant Cancellation

We value your time and resources, so we’ve significantly improved how the Portrait Box handles interruptions.

  • Cancelling portrait box processing now immediately kills the FFmpeg process under the hood and securely deletes the incomplete output file. This ensures absolutely no partial artifacts or corrupted files are left on your macOS disk.
  • A dedicated “Stop immediately” / “Stop after current” dropdown has been proactively added to the batch process button for complete command over your workflow.

🔧 Internals

  • Introduced src/features/batch-queue/, a reusable batch queue system (useBatchQueue, BatchQueue, BatchItem, BatchProcessButton). It is shared across all three utility pages and accepts validExtensions and filePickerLabel options per feature.
  • The remove_noise Tauri backend command has been expanded, gaining file_id, attenuation_limit, and post_filter parameters. It now smoothly emits denoise-progress { file_id, progress } events instead of basic plain text status strings, powering an intuitive user interface.
  • The extract_audio Tauri command now safely handles file_id, sample_rate, channels, codec, output_format, bitrate, and output_suffix parameters. Progress reporting has been upgraded to emit extraction-progress { file_id, progress } instead of a bare float, and the output path is intelligently derived from the stem and suffix rather than unsafely appending to the full input path.
  • In our Rust backend, the PortraitBoxState struct accurately tracks the active FFmpeg child process allowing clean cancellation. To prevent zombie processes, the process is also killed automatically if you securely exit the app.
Local Mac workflow

Keep the edit on your Mac.

Choose a license to record, clean, caption, and export without moving private footage into a browser editor.