# Dolby Surround 5.1 mit Optischem Ausgang

## TheBigK

Hallo, ich habe ein Asus A8n Sli Premium mit Optisch Digitalem Ausgang und ein Dolby 5.1 z5450 von Logitech und möchte nun Filme mit 5.1 schauen.

Ich habe wirklich viel herumprobiert kriege aber keinen reinen 5.1 Sound in Filmen zustande. speaker-test -c6 kann nur die Beiden Frontboxen seperat ansteuern.

Ich habe die gleiche Konstellation in Windows nun ausprobiert und bekomme nun im VLC ein 5.1 Sound heraus. Kann mir jemand erklären, wie ich das unter Linux ebenfalls bewerkstelligen kann? Ich bin kein Linux-Anfänger, bin nur leider mit Alsa nicht so erfahren.

Ich habe versucht, mich an diesen Guide zu richten, jedoch vergeblich. Hat jemand nen Guide, der mir da weiter hilft bzw. wie ich das ganze debugge?

Ihh habe mich ursprünglich an diesen Guide gehalten:

http://gentoo-wiki.com/HOWTO_Dolby_Digital_Out_(AC3,_SPDIF)

----------

## Vortex375

Hallo,

Tatsache ist, dass du viel zu wenig Informationen herausrückst.

Erstmal: Was für ein Chip ist das (steht im alsamixer oben dran) und mit welchem Treiber läuft der?

 *Quote:*   

> Ich habe versucht, mich an diesen Guide zu richten, jedoch vergeblich.

 

Dann wäre es gut zu wissen, was genau nicht funktioniert. Was passiert, wenn du wie im HOWTO die ac3-Wiedergabe mit mplayer testest?

```
mplayer dvd:// -ao alsa:device=spdif -ac hwac3
```

Das "device=spdif" funktioniert bei mir übrigens auch nicht. Poste bitte mal die Ausgabe von cat /proc/asound/pcm und den Inhalt deiner ~/.asoundrc und/oder /etc/asound.conf.

 *Quote:*   

> speaker-test -c6

 

Das ist klar, weil speaker-test keinen ac3-Datenstrom ausspuckt sondern nur normales PCM. Per PCM kannst du über die digitale Verbindung nur zwei Kanäle übertragen.

----------

## pieter_parker

lspci

```

04:02.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)

```

ich habe die feststellung gemacht das bei mir kein surround (mplayer datei -ao alsa -ac hwac3) funktioniert wenn eine andere anwendung die soundkarte in benutzung hat

```

[AO_ALSA] Fehler beim Öffnen der Wiedergabe: Device or resource busy

Kann Audiotreiber/Soundkarte nicht öffnen/initialisieren -> kein Ton

```

da ich immer viele tabs im firefox geoefnet habe versucht die ein oder andere seite durch flashanimationen sound auszugeben oder hat die soundkarte noch in benutzung auch wenn kein sound mehr zuhoeren ist

versuch mal ob es eine veraenderung gibt wenn der firefox geschlossen ist und du surround sound wiedergeben willst

:edit

```

mplayer datei -ao alsa -ac hwac3

MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2008 MPlayer Team

CPU: Intel(R) Core(TM)2 CPU          6320  @ 1.86GHz (Family: 6, Model: 15, Stepping: 6)

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Kompiliert für x86 CPU mit folgenden Erweiterungen: MMX MMX2 SSE SSE2

Spiele datei.

[mkv] Track-ID 1: video (V_MPEG4/ISO/AVC) "video", -vid 0

[mkv] Track-ID 2: audio (A_AC3) "AC3 5.1 @ 640 kbps", -aid 0, -alang eng

[mkv] Werde Video-Track 1 abspielen.

Matroska-Dateiformat erkannt!

VIDEO:  [avc1]  1280x534  24bpp  23.976 fps    0.0 kbps ( 0.0 kbyte/s)

==========================================================================

Öffne Videodecoder: [ffmpeg] FFmpeg's libavcodec codec family

Ausgewählter Videocodec: [ffh264] vfm: ffmpeg (FFmpeg H.264)

==========================================================================

==========================================================================

Erzwungener Audiocodec: hwac3

Öffne Audiodecoder: [hwac3] AC3/DTS pass-through S/PDIF

No accelerated IMDCT transform found

hwac3: switched to AC3, 640000 bps, 48000 Hz

AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)

Ausgewählter Audiocodec: [hwac3] afm: hwac3 (AC3 through S/PDIF)

==========================================================================

AO: [alsa] 48000Hz 2ch ac3 (1 bytes per sample)

Starte Wiedergabe...

VDec: VO wird versucht, auf 1280 x 534 (Bevorzugter Farbraum: Planar YV12) zu setzen.

VDec: Verwende Planar YV12 als Ausgabefarbraum (Nummer 0).

Film-Aspekt ist 2.40:1 - Vorskalierung zur Korrektur der Seitenverhältnisse.

VO: [xv] 1280x534 => 1280x534 Planar YV12

```

" Ausgewählter Audiocodec: [hwac3] afm: hwac3 (AC3 through S/PDIF) " <- das ist ja soweit richtig

AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)

AO: [alsa] 48000Hz 2ch ac3 (1 bytes per sample)

aber was haben die beiden zeilen zubedeuten ?

----------

## hampelratte

Ich habe mal meine Ergebnisse auf meiner Homepage zusammengefasst. Vll hilft Dir das weiter.

Das Problem, dass immer nur eine Anwendung die Soundkarte nutzen kann, bekommst Du mit dmix in den Griff. Allerdings gibts dann Ärger, wenn z.B. Stereo PCM und DD 5.1 gleichzeitig abgespielt wird, aber in den meisten Fällen ist 5.1 sound ja sowieso mit einem Film verbunden und somit kann man damit leben, da man dann ja nichts anderes macht.

Ich denke mal, dass Du meine .asoundrc so übernehmen kannst. Du musst nur die Gerätenummern ändern. Wie Du die findest, steht ja in der Anleitung.

Gruß

Henrik

----------

## Vortex375

 *Quote:*   

> Das Problem, dass immer nur eine Anwendung die Soundkarte nutzen kann, bekommst Du mit dmix in den Griff.

 

Nein, das bekommst du in diesem Fall nicht. dmix kann kein ac3 mixen. Wenn du ac3-Passthrough verwendest, kann immer nur diese eine Anwendung die Soundkarte benutzen.

Statt dmix empfehle ich übrigens Pulseaudio, das sich nach diesem HowTo ganz einfach einrichten lässt (alle benötigten Pakete sind in portage): http://www.pulseaudio.org/wiki/PerfectSetup

Pulseaudio kann zwar auch (noch) kein ac3 verarbeiten, bietet aber gegenüber dmix zahlreiche Vorteile. Zum Beispiel kannst du die Lautstärke für jedes Programm (und für jeden Kanal) einzeln Regeln oder, wenn du mehrere Soundkarten hast, die Wiedergabe einfach von einer Soundkarte auf die andere verschieben etc. Ich hab zum Beispiel meinen Verstärker der Digital-Ausgang an der Onboard-Karte und meine Kopfhörer an der "richtigen" Soundkarte. Per Pulseaudio kann ich dann bequem zwischen Boxen und Kopfhörer umschalten.

----------

## hampelratte

ich zitiere mich mal selbst:

 *hampelratte wrote:*   

> Allerdings gibts dann Ärger, wenn z.B. Stereo PCM und DD 5.1 gleichzeitig abgespielt wird, aber in den meisten Fällen ist 5.1 sound ja sowieso mit einem Film verbunden und somit kann man damit leben, da man dann ja nichts anderes macht.

 

bei pcm stereo, das ja von den meisten anwendungen kommt, klappt das allerdings einwandfrei. ich denke, es geht ihm (genau wie mir darum), dass er z.b. musik hören kann und wenn er dann im netz surft bei flash seiten trotzdem noch sound hat und nicht erst die musik abstellen und die seite neuladen muss, um dann endlich sound zu haben. nur als ein beispiel. wenn man ac3 passthrough hat, macht man nebenher meistens nichts mehr, weil das in 99,9% aller fälle dann ein film ist und man sich den, denke ich mal, auch anschaut... also kann man es doch mit dmix lösen.

----------

## pieter_parker

ich bin froh wenn ich nichts im firefox von diesen flash animationen mitkriege, zu 90% ist das laestige werbung

.... nochmal zum mplayer

```

AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)

AO: [alsa] 48000Hz 2ch ac3 (1 bytes per sample) 

```

was bedeutet diese meldung

----------

## hampelratte

das mag sein. dank adblock sehe ich aber 90% der werbung nicht mehr. und wenn man dann mal ein flash movie sehen möchte, sagen wir einen screencast oder ähnliches, nervt es schon tierisch, wenn man amarok stoppen und firefox neustarten muss um sound zu haben. hat wohl beides vor- und nachteile.

----------

## Vortex375

 *Quote:*   

> was bedeutet diese meldung

 

Die erste Zeile beschreibt den von mplayer entdeckten Audio-Stream:

```

AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)

         (1)     (2)   (3)   (4)

```

(1) Die Anzahl Samples pro Sekunde

(2) Die Anzahl der Audio-Kanäle. Standardmäßig dekodiert mplayer nur zwei. Für Surround-Sound musst du die Option "-channels 6" anhängen.

(3) Das verwendete Kompressionsformat - hier ac3

(4) die Bitrate des komprimierten Datenstroms

... was das Zeug dahinter bedeutet hab ich keine Ahnung

Die zweite Zeile beschreibt wie das Audio-Signal an die Hardware bzw. den Treiber übergeben wird:

```

AO: [alsa] 48000Hz 2ch ac3 (1 bytes per sample) 

     (1)    (2)    (3) (4)  (5)
```

"AO" steht für Audio-Output

(1) Das verwendete Ausgabe-Plugin - hier "alsa"

(2) Die Anzahl Samples pro Sekunde (diese unterscheidet sich hier nur dann von der oben Angegebenen, wenn die Hardware die Samplerate nicht untersützt. In diesem Fall schaltet mplayer automatisch einen Konverter dazwischen, der die Samplerate entsprechend anpasst)

(3) die Anzahl der Audio-Kanäle

(4) das Ausgabe-Format. Normalerweise ist es ein PCM-Datenstrom - hier ausnahmsweise ac3

(5) das Sample-Format - hier ein Byte also 8 Bit pro Sample

Wenn ansonsten keine Fehlermeldungen angezeigt werden, bedeuten diese Meldungen nur, dass alles in bester Ordnung ist. Falls dein Treiber kein ac3 verträgt würdest du ansonsten eine Fehlermeldung wie "invalid sample format" oder sowas in der Art kriegen.

Außerdem würde dann die Meldung "Audio: no sound" erscheinen.

Nach der mplayer-Ausgabe zu schließen sollte alles in bester Ordnung sein. Wenn du trotzdem keinen Ton hörst, dann musst du vielleicht ein anderes Wiedergabe-Gerät wählen. Alle verfügbaren Wiedergabe-Geräte kannst du mit cat /proc/asound/pcm auflisten.

----------

## pieter_parker

```

00-02: CMI8738-MC6 : C-Media PCI IEC958 : playback 1 : capture 1

00-01: CMI8738-MC6 : C-Media PCI 2nd DAC : playback 1

00-00: CMI8738-MC6 : C-Media PCI DAC/ADC : playback 1 : capture 1

```

sehe ich in /proc/asound/pcm

naja, mich wunderts nur das der mplayer meint das das da nur 2 ch waeren, wobei das 100%tig 6 kanaele sind

----------

## Vortex375

Lies genau, was ich dir geschrieben hab:  :Wink: 

 *Quote:*   

> Standardmäßig dekodiert mplayer nur zwei. Für Surround-Sound musst du die Option "-channels 6" anhängen.
> 
> 

 

Ohne die Option "-channels 6" zeigt er dir immer nur zwei Kanäle an.

Du kannst mal versuchen das Hardware-Gerät direkt anzusprechen. Somit kannst du schonmal ausschließen dass etwa dmix dir dazwischenfunkt.

Oder aber du musst bei deiner Karte das IEC958-Gerät benutzen.

Ich würde einfach mal beide Möglichkeiten ausprobieren:

EDIT: da hat noch was gefehlt  :Very Happy:  "-ac hwac3" muss natürlich auch dazu für die ac3-Ausgabe

```
mplayer -ao alsa:device=hw=0.0 -channels 6 -ac hwac3 <datei>
```

```
mplayer -ao alsa:device=hw=0.2 -channels 6 -ac hwac3 <datei>
```

----------

## pieter_parker

```

mplayer -ao alsa:device=hw=0.0 -channels 6 datei

MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2008 MPlayer Team

CPU: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (Family: 6, Model: 23, Stepping: 6)

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Kompiliert für x86 CPU mit folgenden Erweiterungen: MMX MMX2 SSE SSE2

Spiele datei.

TS-Dateiformat erkannt!

VIDEO H264(pid=4113) AUDIO A52(pid=4352) NO SUBS (yet)!  PROGRAM N. 1

FPS seems to be: 23.976000

==========================================================================

Öffne Videodecoder: [ffmpeg] FFmpeg's libavcodec codec family

Ausgewählter Videocodec: [ffh264] vfm: ffmpeg (FFmpeg H.264)

==========================================================================

==========================================================================

Öffne Audiodecoder: [liba52] AC3 decoding with liba52

Using SSE optimized IMDCT transform

Using MMX optimized resampler

AUDIO: 48000 Hz, 6 ch, s16le, 640.0 kbit/13.89% (ratio: 80000->576000)

Ausgewählter Audiocodec: [a52] afm: liba52 (AC3-liba52)

==========================================================================

AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)

Starte Wiedergabe...

VDec: VO wird versucht, auf 1920 x 1080 (Bevorzugter Farbraum: Planar YV12) zu setzen.

VDec: Verwende Planar YV12 als Ausgabefarbraum (Nummer 0).

Film-Aspekt ist 1.78:1 - Vorskalierung zur Korrektur der Seitenverhältnisse.

VO: [xv] 1920x1080 => 1920x1080 Planar YV12

```

```

mplayer -ao alsa:device=hw=0.2 -channels 6 datei

qMPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2008 MPlayer Team

CPU: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (Family: 6, Model: 23, Stepping: 6)

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Kompiliert für x86 CPU mit folgenden Erweiterungen: MMX MMX2 SSE SSE2

Spiele datei.

TS-Dateiformat erkannt!

VIDEO H264(pid=4113) AUDIO A52(pid=4352) NO SUBS (yet)!  PROGRAM N. 1

FPS seems to be: 23.976000

==========================================================================

Öffne Videodecoder: [ffmpeg] FFmpeg's libavcodec codec family

Ausgewählter Videocodec: [ffh264] vfm: ffmpeg (FFmpeg H.264)

==========================================================================

==========================================================================

Öffne Audiodecoder: [liba52] AC3 decoding with liba52

Using SSE optimized IMDCT transform

Using MMX optimized resampler

AUDIO: 48000 Hz, 6 ch, s16le, 640.0 kbit/13.89% (ratio: 80000->576000)

Ausgewählter Audiocodec: [a52] afm: liba52 (AC3-liba52)

==========================================================================

AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)

Starte Wiedergabe...

VDec: VO wird versucht, auf 1920 x 1080 (Bevorzugter Farbraum: Planar YV12) zu setzen.

VDec: Verwende Planar YV12 als Ausgabefarbraum (Nummer 0).

Film-Aspekt ist 1.78:1 - Vorskalierung zur Korrektur der Seitenverhältnisse.

VO: [xv] 1920x1080 => 1920x1080 Planar YV12

```

"-ao alsa:device=hw=0.0 -channels 6" oder "-ao alsa:device=hw=0.2 -channels 6" laesst das ganze anders aussehen !

mplayer erkennt das 6 kanaele da sind -> "AUDIO: 48000 Hz, 6 ch, s16le, 640.0 kbit/13.89% (ratio: 80000->576000) "

aber es erscheint nichts mehr "..pass-through S/PDIF.. " ist das richtig ?

..

```

Öffne Audiodecoder: [hwac3] AC3/DTS pass-through S/PDIF

...

Ausgewählter Audiocodec: [hwac3] afm: hwac3 (AC3 through S/PDIF)

```

->

```

mplayer -ao alsa -ac hwac3 datei

MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2008 MPlayer Team

CPU: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (Family: 6, Model: 23, Stepping: 6)

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Kompiliert für x86 CPU mit folgenden Erweiterungen: MMX MMX2 SSE SSE2

Spiele datei.

TS-Dateiformat erkannt!

VIDEO H264(pid=4113) AUDIO A52(pid=4352) NO SUBS (yet)!  PROGRAM N. 1

FPS seems to be: 23.976000

==========================================================================

Öffne Videodecoder: [ffmpeg] FFmpeg's libavcodec codec family

Ausgewählter Videocodec: [ffh264] vfm: ffmpeg (FFmpeg H.264)

==========================================================================

==========================================================================

Erzwungener Audiocodec: hwac3

Öffne Audiodecoder: [hwac3] AC3/DTS pass-through S/PDIF

No accelerated IMDCT transform found

hwac3: switched to AC3, 640000 bps, 48000 Hz

AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)

Ausgewählter Audiocodec: [hwac3] afm: hwac3 (AC3 through S/PDIF)

==========================================================================

AO: [alsa] 48000Hz 2ch ac3 (1 bytes per sample)

Starte Wiedergabe...

VDec: VO wird versucht, auf 1920 x 1080 (Bevorzugter Farbraum: Planar YV12) zu setzen.

VDec: Verwende Planar YV12 als Ausgabefarbraum (Nummer 0).

Film-Aspekt ist 1.78:1 - Vorskalierung zur Korrektur der Seitenverhältnisse.

VO: [xv] 1920x1080 => 1920x1080 Planar YV12

```

.. die audio spur soll so unveraendert wie moeglich zum avr gelangen !

----------

## Vortex375

 *Quote:*   

> aber es erscheint nichts mehr "..pass-through S/PDIF.. " ist das richtig ? 

 

Sorry, aber mein Post oben hatte einen Fehler drin.

Du musst natürlich sowohl "-channels 6" als auch "-ac hwac3" angeben, damit es klappt. Ich hab die Befehlszeile oben verbessert, probiers einfach nochmal aus.

----------

## pieter_parker

.. irgendwie laeuft es immer noch nicht wie es sein sollte

```

mplayer -ao alsa:device=hw=0.0 -channels 6 -ac hwac3 datei

MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2008 MPlayer Team

CPU: Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz (Family: 6, Model: 23, Stepping: 6)

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Kompiliert für x86 CPU mit folgenden Erweiterungen: MMX MMX2 SSE SSE2

Spiele datei

TS-Dateiformat erkannt!

VIDEO H264(pid=4113) AUDIO A52(pid=4352) NO SUBS (yet)!  PROGRAM N. 1

FPS seems to be: 23.976000

==========================================================================

Öffne Videodecoder: [ffmpeg] FFmpeg's libavcodec codec family

Ausgewählter Videocodec: [ffh264] vfm: ffmpeg (FFmpeg H.264)

==========================================================================

==========================================================================

Erzwungener Audiocodec: hwac3

Öffne Audiodecoder: [hwac3] AC3/DTS pass-through S/PDIF

No accelerated IMDCT transform found

hwac3: switched to AC3, 640000 bps, 48000 Hz

AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)

Ausgewählter Audiocodec: [hwac3] afm: hwac3 (AC3 through S/PDIF)

==========================================================================

[AO_ALSA] alsa-lib: conf.c:3843:(parse_args) Unknown parameter AES0

[AO_ALSA] alsa-lib: conf.c:3969:(snd_config_expand) Parse arguments error: No such file or directory

[AO_ALSA] alsa-lib: pcm.c:2144:(snd_pcm_open_noupdate) Unknown PCM hw:0,0,AES0=6

AO: [alsa] 48000Hz 2ch ac3 (1 bytes per sample)

Starte Wiedergabe...

VDec: VO wird versucht, auf 1920 x 1080 (Bevorzugter Farbraum: Planar YV12) zu setzen.

VDec: Verwende Planar YV12 als Ausgabefarbraum (Nummer 0).

Film-Aspekt ist 1.78:1 - Vorskalierung zur Korrektur der Seitenverhältnisse.

VO: [xv] 1920x1080 => 1920x1080 Planar YV12

```

"Öffne Audiodecoder: [hwac3] AC3/DTS pass-through S/PDIF" zeigt er an

aber jetzt sind es wieder 2 ch "AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)"

ist das ein fehler bei alsa, oder immer noch ein bedienungsfehler meinerseits ?

----------

## Vortex375

Tatsache, dann steht bei mir auch wieder "2ch" dran. Ist mir noch gar nicht aufgefallen.  :Smile: 

Er scheint aber trotzdem 6-Kanal Ton auszugeben. Zumindest hab ich auf allen Lautsprechern Ton und der Verstärker mixt das Signal ja normalerweise nicht mehr nachträglich, wenn er nen ac3-Datenstrom kriegt.

Ich werde das nochmal überprüfen.

----------

## pieter_parker

wie funktioniert es denn nun _richtig_ den surround sound unveraendert ueber den optisch digitalen ausgang zum avr rauszusenden ?

----------

## Vortex375

Also bei mir klappt es so:

```
mplayer -channels 6 -ac hwac3
```

mplayer zeigt zwar "2ch" an, aber der Verstärker kriegt trotzdem 6 Kanäle rein. Ich denke, dass mplayer das Signal bei passthrough auch gar nicht beeinflussen kann. Die Option "-channels 6" kann man sich also vermutlich auch sparen, da die ac3-Datenspur sowieso unverändert ausgegeben wird.

----------

