How can you change the default audio output in VLC to 5.1?

I felt the need to resurrect this as it’s pretty high up on search results and the solution no longer works for v2.0.2—however, I finally found a fix!

  1. Press Ctrl+P to bring up preferences.
  2. At the bottom of the right-hand navigation select the All radio-button under the Show settings area (bottom left of the interface).
  3. Now expand the Audio tree, select Out Modules and select DirectX.
  4. Select your "Output device" and "Speaker configuration" from the drop down menus.
  5. Restart VLC.

This was a bit confusing for me as well. I have 7.1 audio on my system. VLC always defaulted to stereo audio. Then I finally figured it out. You must have your sound cards speaker configuration set to 5.1 or else VLC will not choose the 5.1 track. I thought that 7.1 set for speaker configuration on my sound card would work for anything so the system would play 5.1 or 7.1 if available. But apparently with VLC, and maybe some other programs, your system must match exactly or it will not recognize your settings. This is a feature that the VideoLan team needs to fix. With the advent of 7.1 audio VLC needs to recognize that it can play 5.1 audio on a 7.1 system.


From vlc --longhelp --advanced:

  --force-dolby-surround {0 (Auto), 1 (On), 2 (Off)}
                             Force detection of Dolby Surround

There's also the respective setting in the GUI version of the settings under "Audio->Effects->Dolby Surround". Is has the options "Auto", "On" and "Off".

From what I understand, it should automatically detect whether the source media is surround sound or not.


Much better solution if you want to respect the audio mapping produced by VLC:

  • Using DirectX as explained above in the solution would give an audio mapping like this :

    Stereo audio file:

    main debug: using audio filter module "scaletempo"
    main debug: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz Stereo->Stereo
    main debug: conversion pipeline complete
    main debug: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz Stereo->3F2R/LFE
    main debug: looking for audio converter module matching "any": 12 candidates
    main debug: using audio converter module "trivial_channel_mixer"
    main debug: conversion pipeline complete
    

    5.1 audio file:

    main debug: using audio filter module "scaletempo"
    main debug: conversion: 'a52 '->'f32l' 48000 Hz->48000 Hz 3F2R/LFE->3F2R/LFE
    main debug: looking for audio converter module matching "any": 12 candidates
    main debug: no audio converter modules matched
    main debug: looking for audio converter module matching "any": 12 candidates
    main debug: using audio converter module "a52tofloat32"
    main debug: conversion pipeline complete
    main debug: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz 3F2R/LFE->3F2R/LFE
    main debug: conversion pipeline complete
    
  • Using WaveOut as i'll describe, respects better the audio mapping for stereo content and keep the same mapping as the first solution :

    Stereo audio file:

    main debug: using audio filter module "scaletempo"
    main debug: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz Stereo->Stereo
    main debug: conversion pipeline complete
    main debug: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz Stereo->Stereo
    main debug: conversion pipeline complete
    

    5.1 audio file:

    main debug: using audio filter module "scaletempo"
    main debug: conversion: 'a52 '->'f32l' 48000 Hz->48000 Hz 3F2R/LFE->3F2R/LFE
    main debug: looking for audio converter module matching "any": 12 candidates
    main debug: no audio converter modules matched
    main debug: looking for audio converter module matching "any": 12 candidates
    main debug: using audio converter module "a52tofloat32"
    main debug: conversion pipeline complete
    main debug: conversion: 'f32l'->'f32l' 48000 Hz->48000 Hz 3F2R/LFE->3F2R/LFE
    main debug: conversion pipeline complete
    

Now if someone feel this workaround as a proper solution, you can do it like this :

  1. Press Ctrl+P to bring up preferences.
  2. Go to "Audio" on left (or on top if VLC 3.0.x)
  3. In output, set output module to 'WaveOut audio output', no need to change your speaker configuration as the first solution.
  4. Restart VLC

Hope that will be helpful for someone...