Advertisement
Guest User

BauchBindeV2

a guest
Feb 21st, 2014
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Autor: Bregor
  2. # Überarbeiter: Nudelsalat
  3. # Spezial Thanks: Sir_Max für die guten Ideen
  4.  
  5. # Zur benutzung.
  6.  
  7. #Import("BauchBinde.avs")
  8. #v1 = (AviSource("1 (1).avi")    
  9. #Bauchbinde("Castle Hammerwatch", "Intermezzo 1", "logo.png", 2)
  10. #ChangeFPS(30)
  11. #ConvertToYV12()
  12.  
  13. # Erst das video, dann den ersten Text, dann den zweiten, dann das logo angeben zB: "I:\Fraps\logo.png"
  14. # oder wie oben wenn im selben ordner. die 2 gibt an wie viele texte übergeben wurden (nur 1 oder 2 möglich!)
  15.  
  16. #Import("BauchBinde.avs")
  17. #v1 = (AviSource("1 (1).avi")    
  18. #Bauchbinde("Castle Hammerwatch", "Intermezzo 1", "logo.png", 2)
  19. #ChangeFPS(30)
  20. #ConvertToYV12()
  21.  
  22. # Bei lediglich einen text, hinten 1 schreiben, der zweite text wird dann ignorier. zumindest aber "" übergeben!
  23.  
  24. # Das logo wird auf 1/5 der breite resized. und die bauchbinde hat eine breite von videoBreite 1/14. mindestens aber
  25. # 20 pixel (für videos mit Breite unter 280)
  26.  
  27. # die parameter in "" sind optional und haben einen Default wert. diese abzuänder würde so aussehen:
  28.  
  29. #Import("BauchBinde.avs")
  30. #AviSource("1 (1).avi")
  31. #Bauchbinde("Battle 3", "", "sf3-banner.jpg", 1,transparenzgrad=0.85, anzeigedauer=250, duration=50, verhaeltniss_logo=3)
  32. #ChangeFPS(30)
  33. #ConvertToYV12()
  34.  
  35. 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")
  36. {
  37.     Transparenzgrad = Default(Transparenzgrad, 0.7)
  38.     schriftart = Default(schriftart, "Arial")
  39.     fade = Default(fade, 10)                                            ## Ein-/Ausblenden der Bauchbinde (Zahl der Frames)
  40.     anzeigedauer = Default(anzeigedauer, 100)                 ## so lange wird die Bauchbinde angezeigt (Zahl der Frames)
  41.     hintergrundfarbe = Default(hintergrundfarbe, $1f1f1f)   ## Farbe der Bauchbinde
  42.     textfarbe = Default(textfarbe, $FF6633)                     ## Farbe der Bauchbindenschrift
  43.     startframe = Default(startframe, 25)                         ## Beginn der Bauchbinden-Animation (Zahl der Frames)
  44.     duration = Default(duration, 25)                               ## Dauer der Bauchbinden-Animation (Zahl der Frames)  
  45.     verhaeltniss_logo = Default(verhaeltniss_logo,5)       ## starndart mäßig ist das logo 1/5 der videobreite.
  46.        
  47.     res_x = video.width                 ## Videobreite einlesen
  48.     res_y = video.height                    ## Videohoehe einlesen
  49.  
  50.     # Waszerzeichenaufbereitung
  51.     logo = ImageSource(wasserzeichen,pixel_type="rgb32")            ## Wasserzeichen laden 
  52.     logo_width = res_x/verhaeltniss_logo
  53.     logo_height = int(logo.height/(logo.Width()/float(logo_width)))   ## logo höhe wird bestimmt
  54.     logo_scaled = LanczosResize(logo, (logo_width), (logo_height)) ## Wasserzeichengröße ändern, wenn man mag
  55.     alpha = logo_scaled.ShowAlpha(pixel_type="rgb32")                  ## Transparenz-Alpha-Map erstellen
  56.    
  57.     #Variablendefinition, hier stellt ihr alles ein. Im unteren Teil mit den Befehlen muss eigentlich nichts geändert werden.
  58.     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
  59.     bb_abstand = res_y/8                                                                                                              ## Abstand der Bauchbinde vom unteren Rand des Videos
  60.     bb_text_x = logo_scaled.width + 5                                                                                             ## horizontale Einrückung Bauchbindentext
  61.     bb_text_y = res_y < 240 ? 13 : (res_y < 480 ? 20 : (res_y < 720 ? 30 : (res_y < 1080 ? 42 : 50)))     ## vertikale Einrückung Bauchbindentext
  62.     fontsize= res_y < 240 ? 12 : (res_y < 480 ? 18 : (res_y < 720 ? 28 : (res_y < 1080 ? 38 : 44)))         ## Schriftgroesze
  63.     schatten = 2                                                                                                                         ## Schatten des Bauchbindentextes; Versatz in Pixeln
  64.     wz_x = res_x-(res_x-0)                                                                                                          ## x-Versatz des Waszerzeichens (bei 0 --> ganz links)
  65.     wz_y = res_y/8+bb_abstand/2                                                                                                ## y-Versatz des Waszerzeichens (bei 0 --> ganz unten)
  66.  
  67.     # 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
  68.     clip=Blankclip(length=anzeigedauer, width=res_x, height=bb_hoehe, color=hintergrundfarbe)
  69.  
  70.     # Die Ein- und Auslaufanimation wird erstellt. Fragt nicht wie das geht, am besten alles so lassen!
  71.     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))
  72.     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))
  73.     rein_getrimmt=rein.Trim(0,startframe+duration)
  74.     raus_getrimmt=raus.Trim(startframe+duration+textanzahl*anzeigedauer+2, 0)
  75.  
  76.     # Bauchbinde erstellen, am besten alles so lassen
  77.     bauchbinde=clip.Trim(0,fade)
  78.  
  79.     #erster Text wird erstellt
  80.     bauchbinde_text=clip.Trim(0,anzeigedauer).Subtitle(text1,font=Schriftart, x=(bb_text_x+schatten),y=(bb_text_y+schatten), size=fontsize, \
  81.     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, \
  82.     halo_color=$ff000000, align=4)
  83.  
  84.     bauchbinde_text2 =  textanzahl==2 ? clip.Trim(0,anzeigedauer).Subtitle(text2,font=Schriftart, x=(bb_text_x+schatten),y=(bb_text_y+schatten), size=fontsize, \
  85.     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, \
  86.     halo_color=$ff000000, align=4) : bauchbinde_text
  87.  
  88.     # Übergänge zwischen Bauchbinde und Texten einfügen. Übergangszeit wir mit "fade" festgelegt.
  89.     content_bauchbinde=Dissolve(bauchbinde,bauchbinde_text,bauchbinde_text2,bauchbinde,fade)
  90.  
  91.     # zusammenfügen von Bauchbinde und Text und anschließend dem Logo
  92.     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
  93.     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
  94.  
  95.     # Rein- und Rausscrollanimation wird angehängt
  96.     Band=rein_getrimmt++complete2++raus_getrimmt  
  97.  
  98.     # Transparenz wird hinzugefügt
  99.     video=video.overlay(band,mode="blend", opacity=Transparenzgrad)
  100.  
  101.     #Ausgabe
  102.     return video
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement