All pastes #1610478 Raw Edit

Something

public c v1 · immutable
#1610478 ·published 2009-10-10 18:16 UTC
rendered paste body
################################################################################# FastOverlay 0.3c by demi_alucard                                             ################################################################################## Uso:                                                                         ## video    = video principal                                                   ## afx      = video que você deseja dar overlay                                 ## inicio   = inicio do tempo do overlay                                        ## fim      = fim do tempo do overlay (opcional)                                ## Ex: a = AviSource("video.avi")                                               ##     b = AviSource("type00.avi")                                              ##     FastOverlay(a, b, 150, 300)                                              ## Sobrepõe o vídeo type00.avi em cima do video.avi durante o frame 150 ao 300. ## Observações:                                                                 ## - Colocar um valor negativo para 'inicio' cortara o começo do clipe afx      ## - Caso o valor de inicio não seja especificado, inicio assumirá o valor 0.   ## - Caso o valor de fim não seja especificado, fim assumirá o número total de  ## frames de afx. Portanto fim é completamente opcional.                        #################################################################################function FastOverlay(clip video, clip afx, int "inicio", int "fim"){	inicio = default(inicio, 0)	fim    = default(fim, inicio+afx.framecount-1)	# correção para o problema do frame inicial negativo.	aux    = (inicio < 0) ? inicio : 0	inicio = (inicio < 0) ? 0 : inicio	# correção para o problema do video duplicado.	fim    = (fim == 0) ? video.framecount-1  : fim	# correção para o problema do frame 1 levando à metade do vídeo.	antes  = (inicio == 1) ? video.Trim(0, -1) : video.Trim(0, inicio-1)	middle = video.Trim(inicio, fim)	depois = video.Trim(fim+1, 0)	# corta o inicio de type caso inicio seja um número negativo	afx = (aux == 0) ? afx : afx.Trim(Abs(aux), 0)	type = Overlay(middle, afx, mask=afx.ShowAlpha())	return (inicio == 0) ? type++depois : antes++type++depois}################################################################################# FastLayer 0.1a by demi_alucard                                               ################################################################################## Uso:                                                                         ## video    = video principal                                                   ## afx      = video que você deseja dar overlay                                 ## inicio   = inicio do tempo do overlay                                        ## fim      = fim do tempo do overlay (opcional)                                ## Ex: a = AviSource("video.avi")                                               ##     b = AviSource("type00.avi")                                              ##     FastLayer(a, b, 150, 300)                                                ## Sobrepõe o vídeo type00.avi em cima do video.avi durante o frame 150 ao 300. ## Observações:                                                                 ## - Colocar um valor negativo para 'inicio' cortará o começo do clipe afx      ## - Caso o valor de inicio não seja especificado, inicio assumirá o valor 0.   ## - Caso o valor de fim não seja especificado, fim assumirá o número total de  ## frames de afx. Portanto fim é completamente opcional.                        #################################################################################function FastLayer(clip video,\                  clip afx,\                  int "inicio",\                  int "fim"){inicio = default(inicio, 0)fim    = default(fim, inicio+afx.framecount-1)video  = video.ConvertToRGB32()# correção para o problema do frame inicial negativo.aux    = (inicio < 0) ? inicio : 0inicio = (inicio < 0) ? 0 : inicio# correção para o problema do video duplicado.fim    = (fim == 0) ? video.framecount-1  : fim# correção para o problema do frame 1 levando à metade do vídeo.antes  = (inicio == 1) ? video.Trim(0, -1) : video.Trim(0, inicio-1)middle = video.Trim(inicio, fim)depois = video.Trim(fim + 1, 0)# corta o inicio de type caso inicio seja um número negativoafx = (aux == 0) ? afx : afx.Trim(Abs(aux), 0)type = Layer(middle, afx)return (inicio == 0) ? (type++depois).ConvertToYV12()\      : (antes++type++depois).ConvertToYV12()}################################################################################# SideBySide 0.1 by demi_alucard                                               ################################################################################## Uso:                                                                         ## c       = input clip (last)                                                  ## type    = tipo de alinhamento (0)                                            ##             0- Horizontal                                                    ##             1- Vertical                                                      ## filters = seus filtros                                                       ## Ex: SideBySide("""MipSmooth(preset="AnimeHQ").HQDN3d()""")                   #################################################################################function SideBySide(clip c,\                   int "type",\                   string "filters"){assert(strlen(filters) > 0,\"Erro: Você tem que adicionar algum filtro a funcao.")type           = default(type, 0)source         = (type==0) ? c.Crop(0,0,0,Height(c) / 2) :\                c.Crop(0,0,Width(c) / 2,0)source2        = (type==0) ? c.Crop(0,Height(c) / 2,0,0) :\                c.Crop(Width(c) / 2,0,0,0)filtered       = (type==0) ? eval("source2."+filters) :\                eval("source2."+filters)cut            = (type==0) ? StackVertical(source.Subtitle("Antes"),\                filtered.Subtitle("Depois")) : StackHorizontal(source.\                Subtitle("Antes"), filtered.Subtitle("Depois"))line           = (type==0) ? BlankClip(c, height=2, color=$FFFFFF) :\                BlankClip(c, width=2, color=$FFFFFF)final          = (type==0) ? Overlay(cut,line,\                y=(Height(c)/2)-1) :\                Overlay(cut,line,x=(Width(c)/2)-1)return final}################################################################################# FiltrarSecao 0.1 por demi_alucard                                            ################################################################################## Uso:                                                                         ## c           = input clip (last)                                              ## filters     = filtros que serão aplicados na seção                           ## start_frame = frame inicial da seção (0)                                     ## end_frame   = frame final da seção (start_frame)                             #################################################################################function FiltrarSecao(clip c,\                     string "filters",\                     int "start_frame",\                     int "end_frame"){  start_frame = default(start_frame, 0)  end_frame   = default(end_frame, start_frame)  begin = c.Trim(0, start_frame-1)  mid   = c.Trim(start_frame, end_frame)  end   = c.Trim(end_frame+1, 0)  return begin ++ Eval("mid."+filters) ++ end}#################################################################################                                                                              ## LAA - LimitedAntiAliasing por demi_alucard                                   ##                                                                              #################################################################################function LAA(clip clp,\            int "ssw",\            int "ssh",\            bool "edge",\            bool "chroma",\            bool "use_nnedi"){    ox     = clp.width()    oy     = clp.height()    edge   = default(edge, true)    ssw    = default(ssw, 2)    ssh    = default(ssh, 2)    chroma = default(chroma, false)    use_nnedi  = default(use_nnedi, false)    a = clp.isYV12() ? clp : clp.ConvertToYV12()    b = use_nnedi ? a.nnedi(threads=2) : a.LanczosResize(ox*ssw, oy*ssh).TurnLeft()\    .SangNom().TurnRight().SangNom().LanczosResize(ox, oy)    c = a.mt_edge("prewitt").mt_inflate()    d = (edge==false) ? b : mt_merge(a, b, c)    return (chroma==false) ? d : mergechroma(d, a)}#################################################################################                                                                              ## ChromaShiftYV12 by demi_alucard                                              ##                                                                              ## BEWARE: It duplicates the last right/top pixels                              #################################################################################function ChromaShiftYV12(clip c,\                        float "chroma_x",\                        float "chroma_y"){    ox       = c.width()    oy       = c.height()    chroma_x = default(chroma_x, 0)    chroma_y = default(chroma_y, 0)    shift = c.Spline36Resize(-ox, oy, chroma_x, chroma_y, -ox, oy)    return MergeChroma(c, shift)}