A lightweight, cross-platform desktop app (Electron, SolidJS, TypeScript) to visually mix multiple discrete audio tracks from a recording into one master track while preserving video bit-for-bit (-c:v copy).
Table of Contents
Screen-recording apps often capture mic, game, and chat on separate tracks. Players usually only hear track 1. multimux mixes selected tracks with FFmpeg amix while copying the video stream losslessly.
- Windows 10/11, macOS, or Linux
ffmpegandffprobeon PATH- Node.js + pnpm
pnpm install
pnpm run devUse F12 for the developer console if needed.
- Launch multimux.
- Drag a recording onto the Inlet Port.
- Toggle channels and adjust faders.
- Click Mix & Mux Master.
- Open the output from the completion overlay.
- Drag faders up to
+6.0 dBor down to mute. - Double-click a fader to reset to
0.0 dB.
Under Output Mux Specs, choose AAC or OPUS and a bitrate (128k–320k).
Mute all channels, then mix — multimux uses FFmpeg -an.
pnpm run dev— hot-reload developmentpnpm run build— compile assetspnpm run build:win— Windows installer underdist/
Unlike full re-encodes, multimux:
- Video stream copy (
-c:v copy) — lossless, fast container remux of video packets. - Audio mixdown (
amix) — decode selected tracks, apply volume, mix, encode one stereo master.
Example filter graph (CH1 at 1.0, CH3 at 1.5):
[0:a:0]volume=1.0[a0]; [0:a:2]volume=1.5[a2]; [a0][a2]amix=inputs=2:duration=longest:dropout_transition=0[a]
See CHANGELOG.adoc.
Fork, branch, and open a pull request.
For per-person profile links, prefer all-contributors.
Ryan Johnson — @amdphreak
Project Link: https://github.com/AMDphreak/multimux
Site: https://ryanjohnson.dev