# [solved] mpv mit Surround Sound?

## musv

Guten Nachmittag, 

hab grad mal mplayer2 durch mpv2 ersetzt. 

Aber ich krieg ums Verrecken keinen 5.1-Sound hin. An meiner Soundkarte ist per Cinch ein billiges Creative-Soundset angeschlossen. Also ist kein DTS-/AC3-Passthrough. Im mplayer 1 und 2 klappte das problemlos. mpv weigert sich hingegen standhaft. 

Auch die Option "--audio-channels=6" wird ignoriert.

Beispiel: 

```
 mpv --audio-channels=6 22\ Jump\ Street\ \(1080p_DTS\).mkv 

Playing: 22 Jump Street (1080p_DTS).mkv

 (+) Video --vid=1 (h264)

 (+) Audio --aid=1 --alang=ger (*) (dts)

     Audio --aid=2 --alang=eng (dts)

 (+) Subs  --sid=1 --slang=ger (*) 'forced' (dvd_subtitle)

     Subs  --sid=2 --slang=ger 'complete' (dvd_subtitle)

AO: [alsa] 48000Hz stereo 2ch float

VO: [opengl] 1920x800 yuv420p

AV: 00:00:04 / 01:51:56 (0%) A-V: -0.000 Cache:  2s+22149KB
```

Genauer:

```
mpv --audio-channels=6 22\ Jump\ Street\ \(1080p_DTS\).mkv -v

[cplayer] Command line: 'mpv' '--audio-channels=6' '22 Jump Street (1080p_DTS).mkv' '-v'

...

[af] Adding filter lavrresample 

[af] Audio filter chain:

[af]   [in] 48000Hz 5.1(side) 6ch floatp

[af]   [lavrresample] 48000Hz 5.1 6ch floatp

[af]   [out] 48000Hz 5.1 6ch floatp

[af]   [ao] 48000Hz 5.1 6ch floatp

[ao] Trying preferred audio driver 'alsa'

[ao/alsa] requested format: 48000 Hz, 5.1 channels, floatp

[ao/alsa] using device: default

[ao/alsa] using ALSA version: 1.0.28

[ao/alsa] got buffersize=12000 samples

[ao/alsa] got period size 708

[ao/alsa] device buffer: 11328 samples.

[ao/alsa] using soft-buffer of 11328 samples.

[cplayer] AO: [alsa] 48000Hz stereo 2ch float

[cplayer] AO: Description: ALSA audio output

[af] Removing filter lavrresample 

[af] Adding filter lavrresample 

[af] Audio filter chain:

[af]   [in] 48000Hz 5.1(side) 6ch floatp

[af]   [lavrresample] 48000Hz stereo 2ch float

[af]   [out] 48000Hz stereo 2ch float

[af]   [ao] 48000Hz stereo 2ch float

[af] Removing filter lavrresample 

[af] Adding filter lavrresample 

[af] Audio filter chain:

[af]   [in] 48000Hz 5.1(side) 6ch floatp

[af]   [lavrresample] 48000Hz stereo 2ch float

[af]   [out] 48000Hz stereo 2ch float

[af]   [ao] 48000Hz stereo 2ch float
```

Der soll da eigentlich gar nichts resamplen, sondern einfach nur die 6 Kanäle ausgeben. Geht das irgendwie bei mpv?Last edited by musv on Thu Aug 24, 2017 7:11 pm; edited 1 time in total

----------

## Jean-Paul

Welche Version von mpv hast du installiert.

Zwischen mplayer2 und mpv hat sich etwas geändert. Lese unter "Audio output drivers" die Notes und Warnings - auch sonst ist das eine gute Lektüre.

http://mpv.io/manual/master/

----------

## musv

Version 0.8.3 ist installiert.

http://mpv.io/manual/master/#audio-output-drivers

 *mpv.io wrote:*   

> Examples: … 
> 
> --ao=alsa:resample=yes:device=[plughw:0,3] Lets ALSA resample and sets the device-name as first card, fourth device.

 

```
**** Liste der Hardware-Geräte (PLAYBACK) ****

Karte 0: DS [Xonar DS], Gerät 0: Multichannel [Multichannel]

  Sub-Geräte: 1/1

  Sub-Gerät #0: subdevice #0

Karte 0: DS [Xonar DS], Gerät 1: Digital [Digital]

  Sub-Geräte: 1/1

  Sub-Gerät #0: subdevice #0

Karte 1: Intel [HDA Intel], Gerät 0: ID 194a Analog [ID 194a Analog]

  Sub-Geräte: 1/1

  Sub-Gerät #0: subdevice #0
```

```

…

[af] Audio filter chain:

[af]   [in] 48000Hz 5.1(side) 6ch floatp

[af]   [out] 48000Hz 5.1(side) 6ch floatp

[af]   [ao] 48000Hz 5.1(side) 6ch floatp

[ao] Trying preferred audio driver 'alsa'

[ao/alsa] Setting option 'resample' = 'no' (flags = 0)

[ao/alsa] Setting option 'device' = 'plughw:0,0' (flags = 0)

[ao/alsa] requested format: 48000 Hz, 5.1(side) channels, floatp

[ao/alsa] using device: plughw:0,0

[ao/alsa] using ALSA version: 1.0.28

[ao/alsa] got buffersize=12000 samples

[ao/alsa] got period size 708

[ao/alsa] device buffer: 11328 samples.

[ao/alsa] using soft-buffer of 11328 samples.

[cplayer] AO: [alsa] 48000Hz stereo 2ch float

[cplayer] AO: Description: ALSA audio output

[af] Adding filter lavrresample 

[af] Audio filter chain:

[af]   [in] 48000Hz 5.1(side) 6ch floatp

[af]   [lavrresample] 48000Hz stereo 2ch float

[af]   [out] 48000Hz stereo 2ch float

[af]   [ao] 48000Hz stereo 2ch float

[af] Removing filter lavrresample 

[af] Adding filter lavrresample 

[af] Audio filter chain:

[af]   [in] 48000Hz 5.1(side) 6ch floatp

[af]   [lavrresample] 48000Hz stereo 2ch float

[af]   [out] 48000Hz stereo 2ch float

[af]   [ao] 48000Hz stereo 2ch float
```

 :Shocked: 

Also ab "cplayer" wird irgendwie alles ignoriert, was an Optionen übergeben wurde. Kann mpv überhaupt Multichannel-Soundausgabe?

----------

## Jean-Paul

 *musv wrote:*   

> Kann mpv überhaupt Multichannel-Soundausgabe?

 Hm, laut der Beschreibung ist es sogar automatisch eingeschaltet. 

 *mpv.io wrote:*   

> The new behavior since mpv 0.8.0 always enables multichannel audio, i.e. --audio-channels=auto is the default. 

 

Mal banal gefragt, hörst du was bei  *Quote:*   

> aplay -D plughw:0,0 /pfad/zum/lied.wav

 

Hab hier noch was gefunden, was vielleicht interessant sein könnte

https://github.com/mpv-player/mpv/wiki/ALSA:-Surround-Sound-and-Upmixing

----------

## musv

 *Jean-Paul wrote:*   

> Mal banal gefragt, hörst du was…

 

Dieses Stadium der Fehlersuche kann ich ansich ausschließen. Denn:

```
mplayer $film <--- spielt den in 5.1 ab.

mpv $film     <---- mixt auf Stereo runter, sowohl auto alsa auch o.g. forsiertes 5.1 + resample aus
```

----------

## musv

Über 2 Jahre ist der Thread jetzt alt. Heute hab ich die Lösung gefunden. MPV hat schon echt grausame Optionen.

Irgendwie bin ich durch diese Threads auf die Lösung gekommen:

https://github.com/mpv-player/mpv/issues/3319

http://mailman.alsa-project.org/pipermail/alsa-devel/2016-January/102962.html

https://forum.videohelp.com/threads/384267-MPV-downmix-multichannel-DTS-to-stereo

Problem:

Während mplayer (channels=6) und speaker-test -c6 -Dsurround51 das Mapping ordentlich auf die Reihe kriegen, schafft es MPV aus irgendwelchen unerfindlichen Gründen nicht, das Layout meiner Soundkarte (Xonar DS) auszulesen und geht deshalb einfach mal auf Stereo. 

Mit folgender Zeile hab ich's dann geschafft:

```
mpv -v --audio-device='alsa/surround51:CARD=DS,DEV=0' --audio-channels='5.1(alsa)' --alsa-ignore-chmap "Beliebiger Film (1080p_DTS).mkv"
```

alsa-ignore-chmap: Die wichtigste Option. Damit zwingt man MPV, die Channel-Map nicht vom Alsa-Device auszulesen. Setz ich diese Option nicht, verwendet MPV knallhart Stereo, egal, was ich bei audio-channels angeb.

audio-device: die Liste gibt's mit mpv --audio-device=help. Damit kann man das Layout setzen.

audio-channels: Liste: mpv --audio-channels=help. Per default verwendet MPV hier 5.1(side), wodurch dann bei mir die ganzen Kanäle nicht mehr stimmen.

In der Config sieht das dann bei mir so aus (5.1 analog angeschlossen):

```
vo=vdpau

hwdec=vdpau

fullscreen=yes

alsa-ignore-chmap

audio-device='alsa/surround51:CARD=DS,DEV=0'

audio-channels='5.1(alsa)'

```

Bei meinem HTPC ist ein AVR angeschlossen. Die Ausgabe erfolgt über SPD/IF:

```
vo=vdpau

hwdec=vdpau

fullscreen=yes

audio-device='alsa/iec958:CARD=Intel,DEV=0'

audio-spdif=ac3,dts
```

War ein harter K(r)ampf.

----------

