Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   AlphaBlend macht das Video schwarz (https://www.delphipraxis.net/152492-alphablend-macht-das-video-schwarz.html)

thomas2009 24. Jun 2010 12:19

AlphaBlend macht das Video schwarz
 
Hallo
ich habe ein Video in Form1. Form2 kommt über Form1 drauf als
transparent. leider macht AlphaBlend mein Video schwarz.

Der Code von AlphaBlend liegt in Form2 :
Delphi-Quellcode:
AlphaBlend:=true;
AlphaBlendValue :=1;
Ich verwende den AlphaBlend seit lang und alles war in Ordnung aber
jetzt nicht mehr.
Woran kann das Problem liegen ?

Was mich wundert, das Problem passiert nicht bei jedem PC.

Gibt es eine andere Lösung ausser AlphaBlend um eine Form transparent zu machen ?

himitsu 24. Jun 2010 12:26

AW: AlphaBlend macht das Video schwarz
 
Wenn ein Video per Overlay (oder wie auch immer das heißt) abgspielt wird, dann wird an der gewünschten Position im Programmfenster nur eine "bestimmte" Overlay-Farbe hingemalt.
Das Video wird dabei direkt an die Grafikkarte gesendet und von dieser nur da ausgegeben/angezeigt, wo sich diese Farbe befindet.

Dein AlphaBlend verändert diese Farbe aber, welche bei dir nun zufällig (fast) Schwarz ist, was du auch siehst.
Für das Video fehlt aber nun die Farbe, auf welcher es angezeigt werden soll
und demnach wird es nicht, in die sichtbare Ausgabe der Grafikkarte, eingebaut.

Cyberbob 24. Jun 2010 12:27

AW: AlphaBlend macht das Video schwarz
 
Das Video wird warscheinlich per Overlay auf die Form projeziert. Das bedeutet, dass die Form an der stelle eine bestimmte Farbe hat und alle Pixel mit dieser Farbe dann mit dem Video überlagert werden. Wenn du nun die form transparent machst, veränderst du die Farbe des Pixels und schon wird es nicht mehr erkannt und kein video ist zu sehen!

Du könntest die Videobeschleunigung abschalten, das legt das Video direkt auf diese stelle, allerdings verschlechtert das die Performance

blablab 24. Jun 2010 14:45

AW: AlphaBlend macht das Video schwarz
 
Wenn ich das richtig verstehe willst du die Form komplett durchsichtig. Dann könntest dus ja mit TransparentColor versuchen. Anscheinend funktionierts, allerdings weiß ich nicht ob es das ist was du brauchst...

Cyberbob 24. Jun 2010 14:52

AW: AlphaBlend macht das Video schwarz
 
Was genau willst du machen? Warum ist deine Form2 transparent und über Form1. Vielleicht gibts bessere wege

thomas2009 25. Jun 2010 10:37

AW: AlphaBlend macht das Video schwarz
 
Hallo zusammen,
1. das stimmt, das liegt an das Video selbst und nicht an den Delphi-Code.
Das Video wird mit Windows Media Player gespielt. Windows Media Player spielt das Video in Overlay.

OK, aber was mich wundert ist folgendes :
Das Problem passiert nicht bei alle Videos !!!
Hier sind die Eigenschaften von den Videos

Eigenschaften von dem Video, das OK ist :
Delphi-Quellcode:
Audio encoding mode:   CBR
Video encoding mode:   Quality VBR
Audio codec:   Windows Media Audio 9 Voice
Audio format:    20 kbps, 22 kHz, mono
Video codec:   Windows Media Video 9
Video bit rate:   Quality based
Video size:   Same as video input
Frame rate:   15 fps
Key frame:   20 s
Image quality:   90
Buffer size:   Default
Eigenschaften von dem Video, das Nicht OK ist und bei dem passiert das Problem :
Delphi-Quellcode:
Audio encoding mode:   CBR
Video encoding mode:   CBR
Audience:   291.05 Kbps
Audio codec:   Windows Media Audio 9
Audio format:    32 kbps, 44 kHz, mono CBR
Video codec:   Windows Media Video 9 Screen
Video bit rate:   250 Kbps
Video size:   Same as video input
Frame rate:   10 fps
Key frame:   3 s
Image quality:   100
Buffer size:   Default
Sagt das euch was ?

2. Ach so, warum verwende ich Form2 über Form1 als transparent.
Das Video läuft bei MouseOver, darum habe ich form2 drauf gelegt, damit das Video nicht läuft, wenn der Anwender den Mauszeiger drauf bewegt.

Wir bleiben lieber bei dem Punkt 1. Vielleicht finden wir eine Lösung

Was ist der Unterschied zwischen
Windows Media Video 9 Screen (OK)
und
Windows Media Video 9 Screen (Nicht OK) ?


wikipedia sagt :
http://en.wikipedia.org/wiki/Windows...ws_Media_Video

Cylence 25. Jun 2010 11:17

AW: AlphaBlend macht das Video schwarz
 
Hi,

wenn du mit EnhancedVideoRenderer oder VideoMixingRenderer arbeitest dann gehen Videos transparent. Mit dem Hardwareoverlay Renderer geht das nicht, daran gibts auch nichts zu ändern das ist einfach so.
Wenn Du nun transparentes Video bzw Form mit Video möchtest must du einen anderen Renderer nehmen. Aber wie und ob das mit dem Windows MediaPlayer geht weiß ich nicht. Ansonsten nimm den DSPack

Gruß

tom

thomas2009 25. Jun 2010 11:33

AW: AlphaBlend macht das Video schwarz
 
Zitat:

Zitat von Cylence (Beitrag 1031560)
Hi,

...
Wenn Du nun transparentes Video bzw Form mit Video möchtest ...

tom

Vielleicht verstehst Du mich falsch. Ich möchte das Video nicht transparent machen sondern nur Form2, das ich als Deckel über das Video verwende. Form2 enthält kein Video. Das Video ist in Form1 unter Form2

Cylence 20. Apr 2011 07:55

AW: AlphaBlend macht das Video schwarz
 
das ist das selbe Problem, Transparente Forms gehen nicht über Overlay Videos, bei EVR aber schon. Man sieht zwar die Transparent form im Vordergrund aber das Video im Hintergrund ist an dieser Stelle dann schwarz.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz