All pastes #1610477 Raw Edit

okaeri

public text v1 · immutable
#1610477 ·published 2009-10-10 18:15 UTC
rendered paste body
################################################################################
# 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()
}