Jump to content

DVBViewer GE: Audio-Ausgabe A/B direkt anwählen?


Lee181

Recommended Posts

Hallo zusammen,

ich hätte da einen Vorschlag/Wunsch... :)

Ich würde gerne von außen direkt die Wiedergabe über Audio-A oder Audio-B anwählen.

In der Deutsch.lng habe ich als Komandos nur 132=Video-Ausgabe A/B und 133=Audio-Ausgabe A/B gefunden, das sind aber nur Toggles.

Wäre es möglich, z.B. 1331=Audio-Ausgabe A und 1332=Audio-Ausgabe B einzubauen (analog dazu Video)?

Oder noch besser:

Wäre es möglich bzw. sinnvoll, z.B. Video-Fenster 1 und Video-Fenster 2 (gerne auch Radio-Fenster, Vollbild, Desktop-TV, Minimiert) als neue Auto-A/B-Bedingungen einzuführen?

Zum Verständnis hier mein Setup:

Als Rechner ein Intel NUC i3, daran hängen via 2 x HDMI ein TFT-Monitor mit eingebauten Lautsprechern und ein Beamer, dazu via S/PDIF ein Surround-Receiver.

Ich betreibe das ganze in zwei Szenarien: Desktop-Modus oder Heimkino-Modus.

Im Desktop-Modus starte ich den DVBViewer GE mit Video-Fenster 1 (Koordinaten auf TFT-Monitor) und Audio-Ausgabe A via HDMI und den eingebauten Lautsprechern.

Im Heimkino-Modus wird der DVBViewer per Autohotkey-Skript mit Video-Fenster 2 im Vollbild (Koordinaten auf Beamer) gestartet, Audio-Ausgabe B über S/PDIF (USB-Soundkarte) an den Receiver.

Bisher muss ich händisch und wild die Audio-Ausgabe im Skript umbiegen, das funktioniert nicht immer ganz fehlerfrei... :)

Benötigt das sonst noch jemand hier? Griga, was sagst Du dazu?

Link to comment

Wenn du mittels Skript in der Lage bist, vor dem GE-Start Dateien zu manipulieren, könntest du es mit Filtergraph-Presets regeln:

 

http://www.DVBViewer.com/griga/TechInfo.html#Presets

 

d.h. das Skript müsste dafür sorgen, dass von zwei Presets (sagen wir mal Desktop.txt und Heimkino.txt, die der DVBViewer GE aufgrund der Dateiendung nicht berücksichtigen würde) immer das richtige z.B. in eine Datei Preset.fgp kopiert wird.

Link to comment

Die Filtergraph-Presets kenne ich. Ich habe bisher vor dem Start von GE mittels Regex-Replace den Eintrag "AudioB=" ind der Setup.ini jeweils auf 0 oder 1 gesetzt, das schien mir einfacher... :)

 

Beides löst aber das Problem in meinem Setup nicht, wenn ich mal im laufenden Betrieb vom Monitor auf den Beamer wechseln will, oder nur die Audio-Ausgabe umstellen will. Wenn ich das über die Presets regeln würde, müsste ich dann auch jeweils pro Datei-Typ (bzw. Wiedergabe-Gruppe) je ein Preset für Audio A und Audio B setzen und hin und her kopieren.

 

So richtig fail-safe ist halt beides nicht, und ich brauche in jedem Fall ein externes Skript vor dem Start. Daher eben meine Frage, ob Du obige Vorschläge einarbeiten könntest...

 

Dadurch könnte man z.B. auch schlichtweg mit einem Kommandozeilen-Parameter in der Windows-Verknüpfung beim Start vom GE den Audio-Ausgabeweg mitgeben. Als neue Auto-Bedingung könnte man sogar im laufenden Betrieb das Video-Fenster von 1 nach 2 schalten und der Ton würde mitwandern.

Link to comment
Daher eben meine Frage, ob Du obige Vorschläge einarbeiten könntest...

 

Sorry, aber Anpassungen an individuelle Gegebenheiten bei einzelnen Anwendern sind nicht drin.

 

Das Ein/Aus-(Toggle)-Schalter für eine automatisierte Konfiguration problematisch sind, ist mir bewusst. Andererseits besteht die Notwendigkeit, die Funktionsvielfalt mit einer begrenzten Anzahl Bedienungselemente und Action-IDs zu erschließen, damit das Programm nicht zu unübersichtlich wird.

 

Ich würde überlegen, ob sich das Problem nicht mit zwei parallelen DVBViewer-GE installation lösen lässt, jede für einen der beiden Zwecke passend konfiguriert.

Link to comment

Nujaa, ich fände es ja vermessen, eben "nur für mich" diese Änderung zu fordern. Das muss wirklich nicht sein!

 

Ich hatte nur gehofft, dass vielleicht noch mehr User davon profitieren würden bzw. es kein großer Aufwand wäre.

 

Das effektivste und am breitesten (für noch viel mehr Szenarien und User) verwendbare wäre eben die die verschiedenen Fenstermodi als neue Auto-A/B-Optionen einzuführen, finde ich.

 

Eine parallele Installation löst mein Problem auch nicht. Glaub mir, ich habe alle Möglichkeiten mit Hausmitteln durchgespielt, bevor ich mich an das Forum bzw. Dich gewendet habe...

 

Trotzdem danke nochmals an dieser Stelle für dieses cooles Stück Software und für Deinen Support!

Edited by Lee181
Link to comment

 

Als Rechner ein Intel NUC i3, daran hängen via 2 x HDMI ein TFT-Monitor mit eingebauten Lautsprechern und ein Beamer, dazu via S/PDIF ein Surround-Receiver.

 

Ich habe in etwa die gleiche Konfig. Ich verwende PlaybackDevice. Das kann man aus einem Script aufrufen. Als Parameter übergibt man einen Index, welcher dem Audio-Gerät entspricht, welches Windows defaultmäßig verwendet. Der 'Default DirectSound Renderer' verwendet das dann.

 

Ich ändere zusätzlich noch die ffdshow Konfiguration im selben Script (2.0 für HDMI Audio vs. 5.1 für analoge Ausgabe).

Link to comment

 

Ich habe in etwa die gleiche Konfig. Ich verwende PlaybackDevice. Das kann man aus einem Script aufrufen. Als Parameter übergibt man einen Index, welcher dem Audio-Gerät entspricht, welches Windows defaultmäßig verwendet. Der 'Default DirectSound Renderer' verwendet das dann.

 

Ich ändere zusätzlich noch die ffdshow Konfiguration im selben Script (2.0 für HDMI Audio vs. 5.1 für analoge Ausgabe).

 

Wieder was gelernt. Klingt vielversprechend für die Lösung meiner Audioausgabe Anforderungen. Hast Du mal einen Link, wo erklärt ist, wie man die ffdshow Config per Script anpasst?

Link to comment

Aus dem EG Plugin für ffdshow:

 

 

class SetPreset(eg.ActionWithStringParameter):
class text:
name = "Set Preset"
parameterDescription = "Preset Name:"

def __call__(self, preset):
try:
hwnd = FindWindow(FFDSHOW_REMOTE_CLASS, None)
except:
raise self.Exceptions.ProgramNotRunning

cds = COPYDATASTRUCT()
cds.dwData = COPY_SETACTIVEPRESET
cds.lpData = cast(c_wchar_p(preset), PVOID)
cds.cbData = (len(preset) + 1)*2
return SendMessage(hwnd, WM_COPYDATA, eg.messageReceiver.hwnd, addressof(cds))

Edited by nuts
Link to comment

AudioSwitch funktioniert auch, anstatt PlaybackDevice. Da kann man sogar noch die Geräte auflisten usw.

 

Mit der ffdshow Konfig mache ich das so...

 

(1) Konfiguration im ffdshow UI vornehmen

(2) ffdshow Audio Konfig in der Registry (regedit) als .reg Datei exportieren [HKEY_CURRENT_USER\Software\GNU\ffdshow_audio]

(3) Reg Datei aus Script importieren:

Set oShell = CreateObject("Wscript.Shell")
sRegFile = "D:\configs\ffdshow_audio_5.1.Reg"
oShell.Run "regedit.exe /s " & Chr(34) & sRegFile & Chr(34), 0, True

Das wiederhole ich dann für jede Konfig. Die entsprechenden Reg Dateien werden dann in den Scripts aufgerufen, die mir die entsprechende Umgebung einrichten.

 

Ich setze die Konfig also quasi Offline, sprich vor eine Anwendung startet, die ffdshow verwendet. Die Lösung von nuts kann die Konfig wohl aktiv ändern, während ffdshow läuft, meine ist dafür sehr einfach :P .

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...