mpv No Audio: How to Fix It

  • Test mpv without configuration to isolate settings, devices, or media problems.
  • Check mute, volume, audio tracks, backends, and operating system routing.
  • Use verbose logs to pinpoint config, stream, yt-dlp, or output failures.

When mpv plays a video, file, or network stream without audible sound, the cause is usually one of a few things: mpv is muted, the wrong audio track or output device is selected, audio has been disabled in a configuration file, the chosen audio backend cannot initialize, or the media source does not contain a usable audio stream. Scripts, profiles, custom input bindings, yt-dlp integration, and operating system audio routing can also produce the same symptom. The steps below isolate each category without deleting your configuration or changing several unrelated settings at once.

Terminal-based mpv audio test with video playing and a silent speaker indicator.

1. Confirm the Symptom With a Minimal Clean mpv Command

Start by testing a known-good local media file while bypassing your normal mpv configuration. This separates an mpv configuration problem from an operating system, device, or media-file problem.

Open Command Prompt, PowerShell, Terminal, or your preferred shell and run:

mpv --no-config "path/to/test-file.mp4"

Replace the example path with a local file that you know contains working audio. On Windows, a command might look like this:

mpv --no-config "C:\Users\YourName\Videos\test.mp4"

On Linux or macOS, it might look like this:

mpv --no-config "/home/yourname/Videos/test.mp4"

If sound works with --no-config, mpv itself, the file, and the operating system audio path are probably functional. Stop changing system settings. The likely cause is now your mpv.conf, an enabled profile, a script, or a custom input binding.

If the clean test is still silent, try a second local file from a different source. Prefer a simple file with a common audio format such as AAC, MP3, or uncompressed PCM. This helps distinguish a file-specific codec or track problem from a general output problem.

Success means that you hear audio from at least one known-good local file with --no-config. Once that happens, preserve the working command and compare it with your normal launch method instead of making additional broad changes.

1.1 Force a Normal Mute, Volume, and Track State

A clean test can also explicitly reset the most relevant playback properties:

mpv --no-config --mute=no --volume=100 --audio=yes --aid=auto "path/to/test-file.mp4"

This command asks mpv to enable audio, unmute playback, set volume to 100, and select an audio track automatically. If it restores sound, one of those properties was being overridden in your normal session.

Do not increase the volume far beyond a comfortable level. mpv can apply software amplification depending on its settings, so begin at a safe system volume.

2. Check mpv Audio Settings, Tracks, Profiles, and Scripts

2.1 Check the m Key, Volume, and Audio Track Selection

The default m key toggles mute. Press it once while the file is playing and watch for mpv's on-screen mute message. A custom input.conf can change this binding, so the terminal command is a more reliable test when you are unsure.

Also raise mpv's internal volume using the default 9 and 0 keys, or start a test with --volume=100 --mute=no. Confirm that the operating system's application volume is not independently muted.

A file may contain several audio tracks, including commentary, alternate languages, or tracks that your current output setup cannot use as expected. The default # binding cycles audio tracks in a standard mpv configuration. You can also select a track explicitly with:

mpv --aid=1 "path/to/file.mkv"

Track IDs vary by file, so do not assume that ID 1 always exists. Use mpv's on-screen track information, the stats overlay, or terminal output to identify available tracks. Success means mpv displays an active audio track and you hear it. Stop cycling once a working track is selected.

2.2 Look for audio=no and aid=no

Inspect mpv.conf, command aliases, desktop shortcuts, shell functions, and launcher arguments for either of these settings:

audio=no
aid=no

audio=no disables audio output. aid=no prevents selection of an audio track. Comment out the line temporarily or override it from the command line with --audio=yes --aid=auto.

Also look for mute=yes, an unusually low volume value, a forced audio-device, or a forced ao backend. Do not delete the entire configuration folder. Change one relevant line, save the file, and repeat the same test.

2.3 Inspect Input Bindings and Profiles

Search input.conf for commands involving mute, volume, aid, audio, or audio-device. A binding may set mute rather than toggle it, or a script may run a command when a file loads.

Profiles can apply settings only to certain files, protocols, resolutions, or launch commands. Review profile sections in mpv.conf, especially profiles used for HDR, high-bitrate video, streaming, or hardware decoding. Run this command to display a named profile:

mpv --show-profile=PROFILE_NAME

Replace PROFILE_NAME with the profile you invoke. Examine the output for audio-disabling or device-forcing options.

If --no-config works but normal playback does not, temporarily disable only the suspected script or profile. Move one script out of the active scripts directory, test, and restore it if the symptom remains. This controlled approach identifies the cause without destroying a working setup.

2.4 Separate Subtitle, Video, HDR, hwdec, and Screenshot Settings

Subtitle rendering, shaders, HDR tone mapping, screenshot formats, and hardware decoding normally do not disable audio directly. However, a profile or script built around those features may also contain audio options, or severe playback failure may be mistaken for silence.

Test without custom video processing:

mpv --no-config --hwdec=no "path/to/test-file.mp4"

If sound appears only after disabling hardware decoding, inspect the full terminal output. The actual issue may be a stalled or crashing playback pipeline rather than the audio decoder. Do not permanently disable hardware decoding unless repeated tests show that it is involved.

3. Check the Audio Backend and Output Device

3.1 Inspect ao Backend Selection

mpv uses an audio output driver, identified by the ao option, to communicate with the operating system. A forced backend may be unavailable after an operating system change or when the same configuration is copied to another computer.

List the audio outputs supported by your mpv build:

mpv --ao=help

If your configuration contains an ao=... line, comment it out temporarily and let mpv select an appropriate backend. You can also override a forced setting for a single test by launching with a valid backend shown by --ao=help.

Typical backend names differ by platform and build. Linux installations may expose PipeWire, PulseAudio, or ALSA outputs. Windows builds commonly use Windows audio APIs. macOS uses its native audio facilities. Use the list printed by your own mpv executable rather than copying a backend name that may not be compiled into it.

Success looks like a terminal message indicating that an audio output initialized, followed by audible playback. If automatic selection works, remove the obsolete forced ao setting and stop testing other backends.

3.2 Select the Correct Output Device

List devices recognized through the active audio output:

mpv --audio-device=help

Then test a device using the exact identifier printed by mpv:

mpv --audio-device="DEVICE_IDENTIFIER" "path/to/test-file.mp4"

If a saved device no longer exists, use automatic selection for the test:

mpv --audio-device=auto "path/to/test-file.mp4"

On Windows, open the volume mixer while mpv is playing. Confirm that mpv is not muted and that it is routed to the intended speakers, headphones, HDMI display, USB interface, or Bluetooth device. Reconnecting an HDMI display or headset can change the system default.

On Linux, inspect the active stream in your desktop sound panel or an appropriate PipeWire or PulseAudio control utility. Verify that mpv's stream is not muted or routed to a disconnected sink. If you launch mpv in a container, over SSH, or under a different user session, confirm that it can access the current audio service.

On macOS, check the selected output under System Settings, Sound. Verify that the device is available and its output volume is not muted. If mpv was opened from a different session or launcher, compare it with a direct Terminal launch.

Comparison of local media and online streams feeding separate video and audio tracks into a media player.

4. Check the File, Stream, URL, and External Tools

4.1 Confirm That the Media Contains Audio

Some video files genuinely have no audio stream. Others contain a format or channel layout that fails while another track works. Read mpv's terminal output at startup and look for an audio track entry. If only video and subtitle tracks appear, changing the volume or output device cannot create missing audio.

Test another file before modifying codecs or installing software. Avoid random codec packs. mpv normally relies on its bundled or linked multimedia libraries, and untrusted codec packages can introduce conflicts or security risks.

If one file fails while several others work, the issue is probably limited to that file, its audio track, or its encoding. Select another track if available. If no audio track is listed, obtain a legitimate complete copy from the original source or correct the export settings used to create it.

4.2 Diagnose Online URLs and yt-dlp

When a local file has sound but an online URL does not, first determine whether mpv received a combined audiovisual stream, separate video and audio streams, or video only. Sites can change their delivery methods, and an outdated or unavailable yt-dlp executable can prevent proper stream selection.

Run the URL from a terminal so you can see extraction and track messages:

mpv --no-config "https://example.com/media-url"

Use only URLs you are authorized to access. Do not attempt to bypass DRM or access controls.

If mpv reports that yt-dlp is missing or fails to execute it, verify the executable path and installation using the official yt-dlp project instructions or your trusted package manager. If you set script-opts or a custom executable path, test without that override. Shell quoting matters because characters such as &, ?, spaces, and parentheses may be interpreted by the shell. Put the entire URL in quotes.

If mpv lists video but no audio for the selected online format, test automatic format selection without custom ytdl-format rules. A rule that explicitly requests video-only formats is a common configuration-level explanation.

4.3 Check Network Streams and Playlists

For direct HTTP, HLS, DASH, RTSP, or other network sources, test the exact stream outside a playlist when possible. A playlist entry may point to a video-only rendition, an expired signed URL, or an unavailable audio rendition.

Network filtering, authentication, proxy settings, DNS problems, and server-side errors can interrupt one component of an adaptive stream. Terminal output may show repeated audio-segment failures even while video continues. Compare the result on another authorized network or with a fresh source URL. If local files work and the stream exposes no usable audio track, stop changing local audio devices and investigate the source.

5. Use mpv Logs and Playback Information

5.1 Increase Terminal Detail

Launch the failing item with verbose messages:

mpv --msg-level=all=v "path-or-url"

For a persistent log that is easier to search, use:

mpv --log-file=mpv.log --msg-level=all=v "path-or-url"

Reproduce the issue briefly, exit mpv, and search the log for terms such as audio, ao, aid, device, error, failed, ytdl, or track. Logs can include file paths, URLs, and other private information, so review and redact them before sharing.

An audio decoder opening successfully does not prove that sound reached the speakers. Look for both an identified audio track and a successfully initialized audio output. Conversely, an explicit message that no audio track exists points back to track selection or the media source.

5.2 Use the Stats Overlay and Track List

During playback, press i to display mpv's statistics overlay in a standard configuration. The overlay can help confirm the selected audio format, channel count, sample rate, synchronization state, and whether playback is progressing. Custom bindings or scripts may alter this key.

You can also use mpv's track list through its on-screen controller, console, JSON IPC client, or property inspection tools. For users automating mpv through IPC, inspect the track-list, aid, mute, volume, audio-device, and audio-params properties. Make sure an external controller is not setting aid to no or muting mpv immediately after file load.

6. Run a Clean Temporary Test Before Permanent Changes

Once you have a likely cause, create a small test sequence and change only one variable at a time:

  1. Play a known-good local file with --no-config.
  2. Explicitly use --mute=no --volume=100 --audio=yes --aid=auto.
  3. Confirm that an audio track appears in terminal output.
  4. Let mpv choose the output device automatically.
  5. Run normal mpv and compare the result.
  6. Re-enable only the required configuration sections, profiles, or scripts one at a time.

If the clean command works and adding one option makes audio disappear, you have found a reproducible configuration conflict. Correct or remove that option and stop. There is no benefit in changing GPU drivers, reinstalling mpv, or altering system services after the responsible setting is known.

If no local file works even with --no-config, focus on terminal errors, the operating system mixer, the selected device, and the available ao backends. A GPU driver update is relevant only when playback itself is failing, freezing, or crashing, not when video runs normally and the audio output alone cannot initialize.

7. Quick Fix Checklist

  • Press m once and verify that mpv reports mute is off.
  • Set a safe audible level with --volume=100 --mute=no.
  • Cycle or explicitly select a valid audio track.
  • Remove or override audio=no and aid=no.
  • Test a known-good local file with --no-config.
  • Test another file to rule out missing or damaged audio.
  • Remove a forced ao backend and allow automatic selection.
  • Run mpv --audio-device=help and choose a valid device.
  • Check the Windows, Linux, or macOS application mixer and output routing.
  • Quote file paths and online URLs correctly in your shell.
  • Disable custom yt-dlp format rules when an online source is video only.
  • Capture a verbose log and look for track or audio-output failures.

8. Frequently Asked Questions

8.1 Why does mpv have video but no sound?

The most common causes are mute being enabled, no audio track being selected, audio=no or aid=no in a configuration, an invalid output device, a failed ao backend, or a file or stream that contains no usable audio. Begin with a known-good local file and --no-config to divide configuration problems from system or media problems.

8.2 Why does --no-config fix mpv audio?

It means the default mpv behavior works, while something loaded from your normal configuration changes the result. Inspect mpv.conf, profiles, scripts, input.conf, launch aliases, and IPC controllers. Search first for mute, volume, audio-track, device, backend, and yt-dlp format settings.

8.3 How do I reset the audio track in mpv?

Launch the file with --aid=auto or cycle tracks using the standard # binding. If no audio tracks are shown, the source may not contain one. If several are shown, select a specific valid track ID with --aid=ID.

8.4 How do I make mpv use the correct speakers or headphones?

Run mpv --audio-device=help, copy the exact identifier for the desired device, and pass it through --audio-device. Also verify operating system routing because Windows, Linux, and macOS can send an individual application to a device different from the system default.

8.5 Can hardware decoding or HDR settings cause no audio?

They do not normally control audio, but a related profile, script, crash, or stalled playback pipeline can make the symptom appear connected. Test with --no-config --hwdec=no. If that works, inspect logs and the profile rather than assuming all hardware decoding is defective.

8.6 Why does a local file have sound but an online URL does not?

That result usually points to extraction, format selection, network delivery, or the source itself. Check terminal output for yt-dlp errors and confirm that the selected online format includes audio. Remove custom video-only format rules, update yt-dlp through a trusted source, and test a fresh authorized URL.


Citations

  1. Official mpv manual covering audio options, tracks, profiles, logging, input bindings, and output devices. (mpv Manual)
  2. Official mpv troubleshooting guidance for configuration, logs, and reproducible tests. (mpv Bug Reports)
  3. Official yt-dlp project documentation and trusted installation information. (yt-dlp)
Cindy, ContentBASE creator assistant

MEET CINDY

Your ContentBASE creator assistant

Cindy helps creators find Canva templates, content ideas, and simple ways to make better social media posts faster.

Want ready-to-use templates? Claim the free Canva bundles or browse the full bundle store.