Linux · DaVinci Resolve

Fix DaVinci Resolve's silent AAC audio, automatically

Import a video with AAC audio on Linux and the clip comes in with a completely blank, silent audio track. This installs a background watcher that detects it and fixes it automatically — no manual conversion, no re-importing.

The problem

Not a corrupt file, not a missing codec package. Apple and Microsoft privately licensed AAC decoding for macOS and Windows; that license was never extended to Linux. Every Resolve version, Free and Studio.

flowchart LR
    A["Camera / phone footage
with AAC audio"] --> B["Imported into
DaVinci Resolve on Linux"] B --> C{"No licensed AAC
decoder on Linux"} C --> D["Video: plays fine
Audio: silent, blank track"] style D fill:#3a1518,stroke:#e0685f,color:#fff style A fill:#161a24,stroke:#262b38,color:#e7e9ee style B fill:#161a24,stroke:#262b38,color:#e7e9ee style C fill:#161a24,stroke:#262b38,color:#e7e9ee

The fix

A background service polls Resolve's own scripting API. When it spots AAC audio, ffmpeg re-encodes just the audio track to PCM and Resolve is told to re-read the file.

flowchart LR
    A["You import an
AAC file into Resolve"] --> B["Watcher polls the Media Pool
via Resolve's scripting API"] B --> C{"Audio track is AAC?"} C -->|No| D["Left alone"] C -->|Yes| E["ffmpeg re-encodes just the
audio to PCM"] E --> F["Resolve told to
re-read the fixed file"] F --> G["Audio plays correctly"] style G fill:#123a1f,stroke:#5fd0a3,color:#fff style A fill:#161a24,stroke:#262b38,color:#e7e9ee style B fill:#161a24,stroke:#262b38,color:#e7e9ee style C fill:#161a24,stroke:#262b38,color:#e7e9ee style D fill:#161a24,stroke:#262b38,color:#e7e9ee style E fill:#161a24,stroke:#262b38,color:#e7e9ee style F fill:#161a24,stroke:#262b38,color:#e7e9ee

Video always untouched

Only the audio stream is re-encoded (stream-copy for video) — no quality loss, a few seconds per clip.

You choose what happens to the file

Fix files in place, or write copies to a separate folder that never touches the original. See Settings below.

Settings

Set from the dashboard's Settings card, or by editing ~/.config/davinci-aac-support/config.json. Changes apply on the next poll — no restart.

Default

Convert in place

Overwrites the original file. No extra disk space. The original AAC audio is gone once fixed — permanently, no undo.

Separate directory

Writes the fixed copy to a folder you choose. The original file is never touched — a hard guarantee, regardless of any other setting.

Preserve extra streams — off by default

Some camera files (drones, action cams) carry a non-audio/video stream — usually an embedded timecode track. ffmpeg's standard MP4 muxer can't write that stream back out at all, confirmed directly: it fails even with nothing else being re-encoded. The only way to keep it is switching to the QuickTime muxer, which changes the output file's container brand (mp4/isom → qt, extension unchanged). Opens the same everywhere, but it's a real identity change to the file — off by default for that reason. Video and audio are always kept either way; this setting only affects that one extra stream.

Install

Pick whichever fits your distro.

Option A — .deb Debian, Ubuntu, Mint

  1. Download and install

    davinci-aac-support_1.0-1_all.deb — double-click, or apt install ./davinci-aac-support_1.0-1_all.deb.

  2. Setup opens automatically

    Right after install finishes. If it doesn't, open DaVinci AAC Support from your applications menu — same setup.

    The setup window mid-install, showing live progress

Option B — .zip any other distro

  1. Download and extract

    davinci-aac-support.zip — a plain script and its files, nothing hidden or encoded.

  2. Double-click davinci-aac-support.desktop

    First run of any downloaded executable needs one confirmation — right-click → Allow Launching.

    Right-click Allow Launching on the downloaded file

Option C — terminal

curl -fsSL https://raw.githubusercontent.com/broskisworld/davinci-aac-support/main/install.sh | bash

The one manual step

Resolve's scripting API is off by default — the watcher can't talk to Resolve without it:

Preferences → search "scripting" → External scripting using → Local → Save

DaVinci Resolve Preferences, External scripting using set to Local

The installer waits for this and confirms the connection live.

Requirements

Works with both Free and Studio editions.