################################################################################ # FastOverlay 0.3b 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 : 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.1 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 : 0 inicio = (inicio < 0) ? 0 : inicio # correção para o problema do video duplicado. fim = (fim == 0) ? video.framecount : 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 = Layer(middle, afx) return (inicio == 0) ? (type++depois).ConvertToYV12() \ : (antes++type++depois).ConvertToYV12() }