AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DirectX Multi-in Streams mit VMR9 und GMFBridge, DSPack

DirectX Multi-in Streams mit VMR9 und GMFBridge, DSPack

Ein Thema von TERWI · begonnen am 17. Jan 2018 · letzter Beitrag vom 19. Jan 2018
Antwort Antwort
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49565
313 Beiträge
 
Delphi 10.3 Rio
 
#1

DirectX Multi-in Streams mit VMR9 und GMFBridge, DSPack

  Alt 17. Jan 2018, 11:44
Moin zusammen !
Hab ein Projekt von vor x-Jahren wieder ausgebuddelt und komme leider auch heute einfach nicht weiter.
Was soll's werden:

Ich möchte gerne div. A/V-Quellen (z.B. DVB-Empf., DVD/BR, Files in div. Typen, Streams aus dem Netz, IP-Kameras [Überwachung], die WEB-Cam u.v.m)nicht nur einzeln, sonder auch zusammen gemischt wiedergeben.
Das funktioniert auch so weit so gut, aber ...

... den 'Mix' hätte ich gerne in einem (1) Video-Window/in einem VMR9 (max. 16 Inputs) gerendert, wo ich ich dann Farbe/Helligkeit/Blende usw., Größe und Position jedes Streams definieren kann. Z. B. ein Mosaic machen und jeweils aktiven Stream (mit Ton) selektieren, ein- und ausblenden kann.

Das funktioniert prinzipiell auch - wenn man alles in einen Graphen knallt.
Hat dann aber das elementare Prob, dass IMediaSeeking nicht funzt und vor allem man nicht einzelne Streams pausieren/stoppen/löschen oder neu erzeugen kann, ohne dass der Graph hängt, blockiert oder absehbar ein Timing-Prob bekommt.

Ich habe mir vor Jahren mal die GMFBridge von Geraint Davies ausgeguckt und dazu die Demo GMFPlay (übersetzung Sebastion Zierer) modifiziert.
Dieses Tool soll es ermöglichen, Streams aus verschiedenen, einzelnen Source-Graphen zum Render-Graph hin zu entkoppeln, so dass eben o.g. Effekte nicht auftreten.

Ich hab das hier alles so weit zusammen, das ich z.B. div. Videos laden und steuern kann.
Alle Source-Graphen und der Renderer-Graph sind korrekt gebaut und befinden sich im Status "Run".
Auch die jeweiligen GMF-Sink-Filter (in Source-Graphen), bzw. GMF-Source-Filter im Render-Graph sind verbunden.

Leider sehe ich immer nur das zuerst geladene Video - egal wie ich Alpha, ZOrder und/oder OutRect der jeweiligen VMR9-Inputs einstelle.

Hat jemand da eine Idee, was ich ggf. noch falsch mache ?
Oder wie es vielleicht anders zu bewerkstelligen wäre ?
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49565
313 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: DirectX Multi-in Streams mit VMR9 und GMFBridge, DSPack

  Alt 19. Jan 2018, 16:10
Nach reichlich Hin- und Hersucherei zu Antworten werde ich irgendwie nicht wirklich fündig.
Gestern nach einem "Da war doch mal was"-Blitz hab ich's in den Abgründnen meiner Source-Allerlei wiedergefunden:
MultiVMR9 aus einem Steinzeit-DirectX-SDK (2002 ?) mit lauffähiger EXE/DLL samt allem Source. In C natürlich.

Das entspricht nahezu exakt dem, was ich mir vorgestellt hatte. Bin mir sicher, dass ich da vor ca, 10 Jahren auch schon mal dran war, aber mangels derzeitigem C-Knoff-Hoff nicht wirklich weitergekommen bin.
Hab mir heute den Source noch mal angsehen: Soooo kompliziert ist das nicht, zumal auch nicht alles übersetzt werden muss, weil schon (im DSPack) vorhanden.

Fazit: Weitere Versuche mit der GMFBridge stelle ich erst mal ein - bis vielleicht mal der passende Tipp eintrudelt.
Die MS-Version mit (beliebig) unabhängigen Einzel-Graphen und einem Fenster mit gemeinsamen Allocator-Prensenter halte ich sogar für effizienter / einfacher.

Werde mich da mal ransetzen und fortlaufend berichten.
Weitere Tipps. Infos & Fragen sind logo immer willkommen.
.... vielleicht hat's ja schon jemand fertig liegen !?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf