Wie kann ich Audio gleichzeitig an BEIDE Kopfhörerbuchsen und HDMI senden?

12

Ich muss Audio gleichzeitig über HDMI und die 3,5-mm-Kopfhörerbuchse senden. Ich habe nichts dazu finden können. Ist das überhaupt möglich?

Joker327
quelle
Möchten Sie identisches Audio oder zwei verschiedene Audio-Streams abspielen ?
Tremby

Antworten:

7

Keine vollständige Antwort, sondern ein paar Gedanken dazu.

Werfen wir einen Blick auf die Hardwareseite: Schaltpläne sind für den Pi B + leider nicht hilfreich und für den Pi2 nicht verfügbar, daher bleiben wir hier vorerst bei B Rev 2.1.

Der Audioausgang der Kopfhörerbuchse wird von PWM erzeugt. Direkt von den GPIO-Pins 40 und 45 des BCM2835 über einen RC-Tiefpassfilter. (Siehe Schaltpläne , Seite 2.)

Audio über HDMI wird dagegen angeblich digital übertragen. Wikipedia gibt an: "Wenn ein HDMI-Gerät über Audio für digitales Audio verfügt, muss das Basisformat implementiert werden: Stereo-PCM (unkomprimiert)." Tatsächlich wird das zuvor erwähnte PWM-basierte analoge Audio nicht zum HDMI-Anschluss geleitet.

Jetzt haben wir einige alte Neuigkeiten überprüft: analoge Kopfhörer-Buchse vs. digitales HDMI. Aus meiner Sicht sollten diese beiden also auch (quasi) gleichzeitig getrennt und unabhängig voneinander angesprochen werden. Jetzt PulseAudiosollte es möglich sein, von einer Quelle auf mehrere Sound-Hardware-Teile zu streamen. Ich frage mich immer noch, warum es im Internet nichts zu diesem Thema gibt.

Ghanima
quelle
Ich bin damit einverstanden, dass sie separat angesprochen werden sollten. Ich wurde von jemandem gefragt, für den ich an einem Himbeer-Pi arbeite, und sie haben darum gebeten. Ich habe ihnen erklärt, dass ich nicht geglaubt habe, dass dies möglich ist, aber ich müsste es überprüfen mit anderen, die mehr darüber wissen als ich.
Joker327
3

Ich würde es lieben, dasselbe auch zu können. Zumindest versuche ich, mit einigen Ideen, die auf eine mögliche kooperative Entwicklung hoffen, zu diesem Trend beizutragen.

Was mir in den Sinn kommt, ist, dass es möglicherweise zwei Instanzen von Treibermodulen geben könnte (und sollte), die für jeweils eine Signalroute parallel geladen werden. Dies würde jedoch einige Kernel-Modul-Level-Parameter erfordern, wie im folgenden idealen Beispiel, die jeweils ein ALSA-Gerät erzeugen (Nummer 0 für HDMI und 3 für Kopfhörer im Beispiel). Sie könnten dann einen Ton an den einen oder den anderen senden (oder an beide kopieren).

Ich habe versucht, die Quellcode-Homepage des snd_bcm2835-Moduls zu googeln (um die Durchführbarkeit eines einfachen Patches zu bewerten), aber kein Glück (und keine Zeit). Deshalb habe ich fürs Erste aufgegeben. Wenn jemand die Quelle findet und den Link beisteuert, werde ich mich das noch einmal ansehen.

HINWEIS !!! Das Folgende ist nur ein ideales Beispiel für Kernelmodul-Ladebefehle. In der aktuellen Raspberry Pi Software gibt es keine solchen Parameter (AFAIK)!

modprobe snd_bcm2835 out=hdmi alsa=0
modprobe snd_bcm2835 out=ear alsa=3
pmendl
quelle
Hallo und herzlich willkommen! Ich wäre auch daran interessiert, dies zum Laufen zu bringen (naja, um ehrlich zu sein, um es nicht wirklich zu gebrauchen;))
Ghanima