De-M-oN
Commander
- Registriert
- Mai 2009
- Beiträge
- 2.740
Versteh das nicht so ganz, kannste das mal genauer erklärenTom Keller schrieb:Nope. Wie schon oben geschrieben: das steht das, was der Renderer an Infos zurück schickt. Beim Haali Renderer ist das halt seine skalierte Auflösung. Öffnest du z.B. ein 320x240 Pixel großes Video, steht dann dort nicht die Hälfte, sondern das Doppelte oder Dreifache (da der Haali dann ja hochskaliert).
Wieso skaliert der überhaupt?
Ist mir bewusst, das Problem war nur, das manche andere Leute ConvertToRGB32 verwenden mussten, weils sonst immer Fehler gab.Das ConvertToRGB32 in der ersten Zeile kann man auch weglassen - es könnte sogar schaden, da Overlay intern IMMER eine Farbraumkonvertierung ins YUV-Format vornimmt. Liegt die AVI z.B. schon in einem YUV-Farbformat vor (z.B. YV12), dann hat man eine doppelte Farbraumkonvertierung (YUV => RGB => YUV). Da diese Konvertierung nicht verlustlos ist, sollte man sich mit mehrfachen Farbraumkonvertierungen besser zurückhalten...
Bei meinen YV12 Videos gings auch immer ohne ConvertToRGB32.
ok gut zu wissen ^^Bei ImageSource empfiehlt sich das Laden inklusive pixel_type="rgb32" Parameter. Das spart das ConvertToRGB32 in der zweiten Zeile und beugt Problemen mit transparenten Bildteilen in der PNG vor.
Das wundert mich jetzt bisschen, weil ich habe das immer so gemacht wie in dem Beispiel, allerdings ohne die ConvertToRGB32s weil ichs ja bei mir nicht brauchte.Ich würde auch die Angabe des fps- ( => Framerate) und end- ( => Länge) Parameters bei ImageSource empfehlen (entweder absolut... oder, wie in meinem Beispiel, übernommen vom Hintergrundvideo). Ansonsten nimmt ImageSource nämlich den Standard: 24fps mit 1000 Frames Länge. Hat das Video eine andere Framerate, klappt das Drüberlegen dann nicht... und nach 1000 Frames ist das Logo dann weg.
Meine Videos sind in 30fps und das Wasserzeichen war immer übers ganze Video, hmm ^^
Das geht über den Mask-Parameter der Overlay-Funktion. Über Mask kann man eine Maske für die Transparenz festlegen:
ShowAlpha() nimmt den Alpha-Kanal der PNG-Datei und zeigt ihn als Graustufenbild an:
Mit Mask=Logo.ShowAlpha() wird dieses Bild als Maske genommen... und schon kann man auch mit Overlay Die Transparenzen des Alpha-Kanals fürs Logo nutzen. Wichtig ist dann aber bei ImageSource zusätzlich der pixel_type="rgb32" Parameter - sonst wird der Alpha-Kanal üblicherweise nicht mit geladen.
Nett zu wissen ^^