Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Autor: Bregor
- # Überarbeiter: Nudelsalat
- # Spezial Thanks: Sir_Max für die guten Ideen
- # Zur benutzung.
- #Import("BauchBinde.avs")
- #v1 = (AviSource("1 (1).avi")
- #Bauchbinde("Castle Hammerwatch", "Intermezzo 1", "logo.png", 2)
- #ChangeFPS(30)
- #ConvertToYV12()
- # Erst das video, dann den ersten Text, dann den zweiten, dann das logo angeben zB: "I:\Fraps\logo.png"
- # oder wie oben wenn im selben ordner. die 2 gibt an wie viele texte übergeben wurden (nur 1 oder 2 möglich!)
- #Import("BauchBinde.avs")
- #v1 = (AviSource("1 (1).avi")
- #Bauchbinde("Castle Hammerwatch", "Intermezzo 1", "logo.png", 2)
- #ChangeFPS(30)
- #ConvertToYV12()
- # Bei lediglich einen text, hinten 1 schreiben, der zweite text wird dann ignorier. zumindest aber "" übergeben!
- # Das logo wird auf 1/5 der breite resized. und die bauchbinde hat eine breite von videoBreite 1/14. mindestens aber
- # 20 pixel (für videos mit Breite unter 280)
- # die parameter in "" sind optional und haben einen Default wert. diese abzuänder würde so aussehen:
- #Import("BauchBinde.avs")
- #AviSource("1 (1).avi")
- #Bauchbinde("Battle 3", "", "sf3-banner.jpg", 1,transparenzgrad=0.85, anzeigedauer=250, duration=50, verhaeltniss_logo=3)
- #ChangeFPS(30)
- #ConvertToYV12()
- Function Bauchbinde(clip video, string text1, string text2, string wasserzeichen, int textanzahl , float "Transparenzgrad", string "schriftart", int "fade", int "anzeigedauer", int "hintergrundfarbe", int "textfarbe", int "startframe", int "duration", int "verhaeltniss_logo")
- {
- Transparenzgrad = Default(Transparenzgrad, 0.7)
- schriftart = Default(schriftart, "Arial")
- fade = Default(fade, 10) ## Ein-/Ausblenden der Bauchbinde (Zahl der Frames)
- anzeigedauer = Default(anzeigedauer, 100) ## so lange wird die Bauchbinde angezeigt (Zahl der Frames)
- hintergrundfarbe = Default(hintergrundfarbe, $1f1f1f) ## Farbe der Bauchbinde
- textfarbe = Default(textfarbe, $FF6633) ## Farbe der Bauchbindenschrift
- startframe = Default(startframe, 25) ## Beginn der Bauchbinden-Animation (Zahl der Frames)
- duration = Default(duration, 25) ## Dauer der Bauchbinden-Animation (Zahl der Frames)
- verhaeltniss_logo = Default(verhaeltniss_logo,5) ## starndart mäßig ist das logo 1/5 der videobreite.
- res_x = video.width ## Videobreite einlesen
- res_y = video.height ## Videohoehe einlesen
- # Waszerzeichenaufbereitung
- logo = ImageSource(wasserzeichen,pixel_type="rgb32") ## Wasserzeichen laden
- logo_width = res_x/verhaeltniss_logo
- logo_height = int(logo.height/(logo.Width()/float(logo_width))) ## logo höhe wird bestimmt
- logo_scaled = LanczosResize(logo, (logo_width), (logo_height)) ## Wasserzeichengröße ändern, wenn man mag
- alpha = logo_scaled.ShowAlpha(pixel_type="rgb32") ## Transparenz-Alpha-Map erstellen
- #Variablendefinition, hier stellt ihr alles ein. Im unteren Teil mit den Befehlen muss eigentlich nichts geändert werden.
- bb_hoehe = res_y < 240 ? 20 : (res_y < 480 ? 30 : (res_y < 720 ? 42 : (res_y < 1080 ? 58 : 70))) ## Hoehe der Bauchbinde ist 1/14 von Video höhe. mindestens aber 20
- bb_abstand = res_y/8 ## Abstand der Bauchbinde vom unteren Rand des Videos
- bb_text_x = logo_scaled.width + 5 ## horizontale Einrückung Bauchbindentext
- bb_text_y = res_y < 240 ? 13 : (res_y < 480 ? 20 : (res_y < 720 ? 30 : (res_y < 1080 ? 42 : 50))) ## vertikale Einrückung Bauchbindentext
- fontsize= res_y < 240 ? 12 : (res_y < 480 ? 18 : (res_y < 720 ? 28 : (res_y < 1080 ? 38 : 44))) ## Schriftgroesze
- schatten = 2 ## Schatten des Bauchbindentextes; Versatz in Pixeln
- wz_x = res_x-(res_x-0) ## x-Versatz des Waszerzeichens (bei 0 --> ganz links)
- wz_y = res_y/8+bb_abstand/2 ## y-Versatz des Waszerzeichens (bei 0 --> ganz unten)
- # Leeren Clip mit der Farbe "Hintergrundfarbe" und der Länge "Anzeigedauer", Breite ist die der Auflösung des Videos und die Höhe wird selbst bestimmt
- clip=Blankclip(length=anzeigedauer, width=res_x, height=bb_hoehe, color=hintergrundfarbe)
- # Die Ein- und Auslaufanimation wird erstellt. Fragt nicht wie das geht, am besten alles so lassen!
- rein=Animate(video, startframe, startframe+duration, "Overlay", clip, res_x*(-1), (res_y - bb_abstand - bb_hoehe), clip, 0,(res_y - bb_abstand - bb_hoehe))
- raus=Animate(video, startframe+duration+textanzahl * int(anzeigedauer) + 1, startframe+2*duration+textanzahl*anzeigedauer, "Overlay", clip, 0, (res_y - bb_abstand - bb_hoehe), clip, res_x,(res_y - bb_abstand - bb_hoehe))
- rein_getrimmt=rein.Trim(0,startframe+duration)
- raus_getrimmt=raus.Trim(startframe+duration+textanzahl*anzeigedauer+2, 0)
- # Bauchbinde erstellen, am besten alles so lassen
- bauchbinde=clip.Trim(0,fade)
- #erster Text wird erstellt
- bauchbinde_text=clip.Trim(0,anzeigedauer).Subtitle(text1,font=Schriftart, x=(bb_text_x+schatten),y=(bb_text_y+schatten), size=fontsize, \
- text_color=$000000, halo_color=$ff000000, align=4).Subtitle(text1,font=Schriftart, x=bb_text_x,y=bb_text_y, size=fontsize, text_color=textfarbe, \
- halo_color=$ff000000, align=4)
- bauchbinde_text2 = textanzahl==2 ? clip.Trim(0,anzeigedauer).Subtitle(text2,font=Schriftart, x=(bb_text_x+schatten),y=(bb_text_y+schatten), size=fontsize, \
- text_color=$000000, halo_color=$ff000000, align=4).Subtitle(text2,font=Schriftart, x=bb_text_x,y=bb_text_y, size=fontsize, text_color=textfarbe, \
- halo_color=$ff000000, align=4) : bauchbinde_text
- # Übergänge zwischen Bauchbinde und Texten einfügen. Übergangszeit wir mit "fade" festgelegt.
- content_bauchbinde=Dissolve(bauchbinde,bauchbinde_text,bauchbinde_text2,bauchbinde,fade)
- # zusammenfügen von Bauchbinde und Text und anschließend dem Logo
- complete = Overlay(video.Trim(startframe+duration+1,startframe+duration+anzeigedauer*textanzahl+1),content_bauchbinde,0,(res_y-bb_abstand - bb_hoehe)) ##Bauchbinde und Text auf Video legen
- complete2= overlay(complete, logo_scaled, x=wz_x,y=(res_y - wz_y - (logo_scaled.height/2)),mask=alpha) ##Logo einfügen, x und Y sind Koordinaten für Logo
- # Rein- und Rausscrollanimation wird angehängt
- Band=rein_getrimmt++complete2++raus_getrimmt
- # Transparenz wird hinzugefügt
- video=video.overlay(band,mode="blend", opacity=Transparenzgrad)
- #Ausgabe
- return video
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement