FilmStrip

Extract film audio for listening. Drop a movie file — FilmStrip scans every audio track, auto-selects English, and exports it as WAV or M4A.

Getting Started

System Requirements

Installation

  1. Download the DMG from the link above
  2. Open the DMG and drag FilmStrip to your Applications folder

Quick Start

  1. Drop a video file onto the FilmStrip window
  2. FilmStrip scans all audio tracks and displays them in the queue
  3. English tracks are auto-selected; if none are found, all tracks are selected
  4. Adjust settings as needed, then click Process
  5. Output is saved to the Desktop (or your configured output folder)

The Interface

Queue

The main area shows the queue of files you've added. Each row shows the file's name, current status, and track information. For files with a single audio track, a compact summary (language · codec · channels) appears as a subtitle. For files with multiple tracks, each track appears as a clickable chip — click a chip to toggle it on or off. English tracks are selected automatically on load; if no language metadata is found, all tracks are selected and an info badge appears on the row.

Settings Panel

All export and processing options live in the settings panel. Toggle it open or closed with the sidebar icon in the toolbar. Settings are locked during processing. Output format, bitrate, and output folder are saved between sessions; audio processing settings (Dialog Guard, High Pass Filter, Level Riding, Loudness Normalization) always start at their defaults on launch.

Toolbar

Output Format

FilmStrip can export to WAV, M4A, or both simultaneously.

Setting Options Description
Format WAV · M4A · Both WAV is uncompressed 24-bit PCM — full quality, large files (roughly 15 MB/min). M4A is AAC-encoded at a selectable bitrate — smaller files with imperceptible quality loss at 192 kbps or higher.
Bitrate 128 · 192 · 256 kbps M4A only. 256 kbps is transparent on virtually all program material. 128 kbps is adequate for casual listening and produces files roughly half the size of 256 kbps. Grayed out when Format is WAV.

Both formats are exported at 44.1 kHz stereo. WAV files use 24-bit depth, which preserves full resolution through any processing applied before export.

Which format to choose? If you plan to do any further processing (editing, EQ, normalization), use WAV — it keeps all the headroom. If you're putting the file straight into a playlist or music library, M4A at 256 kbps produces files that are effectively indistinguishable from WAV and take a fraction of the space. See Choosing a Source Codec in the Theory of Operation for guidance on source material quality.

Dialog Guard

Dialog Guard normalizes the center channel independently before the stereo downmix. It's designed to rescue quiet or inconsistently-mixed dialogue — particularly in older films where the center channel was mixed conservatively relative to the action and effects tracks.

Setting Default Description
Dialog Guard On When enabled on a 5.1 or 7.1 source, splits out the center channel (FC), applies dynamic normalization, and reassembles the multichannel signal before the stereo downmix. Has no effect on stereo or mono source tracks — the setting is silently skipped with no impact on processing time.
Dialog level Normal Three-step picker (Normal / Boost / Strong) that shifts the center-vs-surround balance in the downmix. Boost places dialog ~3 dB above the surrounds; Strong, ~8 dB. Implemented by attenuating the surround coefficients in the pan filter rather than boosting FC, so the brick-wall limiter is not triggered. Loudness normalization restores absolute level. No effect on stereo or mono sources.

Dialog Guard uses a faster-reacting window (about 0.5 seconds) than Level Riding, which lets it catch brief quiet passages — a whispered line in an otherwise loud scene — that a wider window would smooth over. The Dialog level picker is independent of the Dialog Guard toggle: it can lift dialog presence even when Dialog Guard is off. See Dialog Guard in the Theory of Operation for the full technical explanation.

High Pass Filter

The High Pass Filter removes low-frequency content below 80 Hz — subwoofer rumble, LFE fold-in from the stereo downmix, and subsonic hum that would otherwise consume headroom and muddy the output. It runs in the same extraction pass as Dialog Guard and Level Riding, before the stereo downmix.

Setting Default Description
High Pass Filter On Two cascaded 2-pole Butterworth biquad filters at 80 Hz, resulting in a 24 dB/oct rolloff. Removes low-frequency rumble and LFE fold-in without affecting music, sound effects, or dialogue. Safe to leave on for virtually all program material — most meaningful audio content starts well above 80 Hz.

Level Riding

Level Riding uses FFmpeg's dynaudnorm filter to reduce the dynamic range between loud action sequences and quiet dialogue scenes. Higher aggressiveness settings both pull down peaks and boost quiet passages, narrowing the perceived gap between the loudest and quietest moments in a film.

Setting Range / Default Description
Level Riding On / Off · default On Enables dynamic leveling in the extraction pass, after Dialog Guard and before the stereo downmix.
Aggressiveness 1–10 · default 7 Controls how aggressively the filter attenuates peaks and boosts quiet passages. At 1, only the sharpest loud peaks are gently reduced. At 10, up to +20 dB of upward gain is applied to quiet frames. Level 7 is a good general-purpose setting for headphone listening. Grayed out when Level Riding is off.

Aggressiveness Quick Reference

Level Max boost Character
1–2+6–9 dBBarely perceptible. Takes the sharpest edges off very loud peaks.
3–4+12–13 dBLight leveling. Noticeable on wide-range content.
5–6+15–16 dBMedium. Clear leveling; action-dialogue gap starts to close.
7+17 dBDefault. Heavy leveling; dynamic range significantly compressed.
8–10+18–20 dBAggressive. Quiet scenes boosted substantially; ambient noise floor rises.

See Level Riding: Dynamic Audio Normalizer in the Theory of Operation for a complete parameter table and technical explanation.

Loudness Normalization

Loudness normalization uses a two-pass EBU R128 process to bring the integrated loudness of the output to a target that matches your listening context. Film audio is typically mixed at −27 to −31 LUFS for a calibrated theatrical space; streaming music is normalized to −14 to −16 LUFS. Without normalization, film audio will sound significantly quieter than other content on your device.

Setting Range / Default Description
Loudness Norm On / Off · default On Enables two-pass EBU R128 loudness normalization. Adds processing time proportional to the file's duration — a two-hour film takes roughly twice as long when normalization is on. Off = level riding and peak limiting only.
Target −23 to −14 LUFS · default −18 Integrated loudness target. See table below. Grayed out when Loudness Norm is off.

Choosing a Target

Target Context
−23 LUFS EBU R128 broadcast standard. Quieter than streaming music; appropriate for home theater context or content alongside other film audio.
−18 LUFS Default. Louder than broadcast, quieter than streaming music. Preserves more dynamic headroom than streaming-music targets while remaining comfortable alongside other content.
−16 LUFS Matches Apple Music and Tidal normalization. Dialogue feels natural in a mixed playlist context on most devices.
−14 LUFS Matches Spotify's normalization target. Best if you listen to music on Spotify with normalization enabled.

See Loudness Normalization: EBU R128 in the Theory of Operation for technical detail on the loudness war, K-weighting, and the two-pass process.

Output Folder

Setting Default Description
Output Folder Desktop Where exported files are written. Set a custom path to collect all exports in one place — useful if you process frequently and don't want files accumulating on the Desktop.

Processing Pipeline

Each exported track passes through the following pipeline. Optional stages are skipped if their setting is disabled. The source file is never modified.

  1. Dialog Guard Optional — 5.1 / 7.1 only For 5.1 and 7.1 source tracks, splits the center channel (FC), applies fast-window dynamic normalization (dynaudnorm p=0.88:m=5:g=15 at Normal; m rises to 7 / 9 for Boost / Strong), and reassembles all channels. Silently skipped for stereo and mono sources. Runs in the same ffmpeg pass as extraction with no extra time cost.
  2. High Pass Filter Optional Two cascaded 2-pole Butterworth high-pass filters at 80 Hz (highpass=f=80,highpass=f=80), providing a 24 dB/oct rolloff. Removes subwoofer rumble and LFE content that would otherwise fold into the stereo downmix and consume headroom. Runs in the same extraction pass as Dialog Guard and Level Riding.
  3. Decode, Resample, Downmix, Peak Limit ffmpeg decodes the selected audio stream, downmixes to stereo via an explicit pan filter (FC at unity, surround coefficients scaled per the Dialog level setting), resamples to 44.1 kHz, and applies a brick-wall limiter (alimiter=limit=0.99:attack=5:release=50) to catch inter-sample peaks from channel summation. Output: 24-bit PCM WAV at 44.1 kHz. Stereo sources pass through unchanged except for resampling.
  4. Level Riding Optional Dynamic normalization via dynaudnorm. Runs within the same extraction pass as step 2, after Dialog Guard. Gaussian-smoothed gain changes prevent audible pumping. The Aggressiveness setting controls both the peak target and the maximum upward gain. See Theory of Operation for the full parameter table.
  5. Loudness Analysis Optional First pass of the EBU R128 two-pass process. ffmpeg processes the full WAV from step 2 with the loudnorm filter in measurement mode, writing output to /dev/null. Captures integrated loudness (LUFS), true peak (dBTP), loudness range (LRA), and threshold. Processing time is proportional to the file's duration.
  6. Loudness Normalize Optional Second pass. Applies a single static linear gain to bring the integrated loudness to the target LUFS (linear=true). Preserves the dynamic character of the audio — the output waveform shape is identical to the input, only louder or quieter by a fixed amount. Produces the final WAV.
  7. M4A Encode Optional If M4A output is selected, encodes the final WAV to AAC at the configured bitrate. Runs as a separate final step after all processing is complete. The WAV is always produced first, even when M4A is the only selected output format.

Supported Formats

Input Containers

Any container format that ffprobe can read will work. Common formats:

ExtensionDescription
.mkvMatroska — the standard container for Blu-ray remuxes and rips. Often contains lossless TrueHD or DTS-HD Master Audio.
.mp4MPEG-4 — common for streaming downloads and digital purchases. Usually contains AAC or E-AC3.
.movQuickTime Movie — common for files from Apple devices and Final Cut Pro.
.aviAudio Video Interleave — older format, common for DVD rips and archival content.
.m4viTunes video format. AAC audio.

Source Audio Codecs

FilmStrip can extract any audio codec that ffmpeg supports. When a file contains multiple tracks, prefer the following order for best results:

CodecNotes
AACBest for M4A export — no transcode within the AAC family. Prefer when available.
E-AC3 (Dolby Digital Plus)High bitrate ceiling, widely available on modern rips. Excellent source quality.
TrueHD / DTS-HD MALossless — best possible source quality, common in MKV remuxes from Blu-ray.
AC-3 (Dolby Digital)Older 5.1 format, lower bitrate ceiling. Works well at 448–640 kbps.
DTS CoreCommon in MKV rips; treated the same as E-AC3. No quality advantage to seeking it out.

See Choosing a Source Codec in the Theory of Operation for a detailed discussion.