################################################################################
# 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()
}