Después de una extensa investigación en Internet, no pude encontrar una fórmula decente para calcular (agregar) códigos de tiempo, por lo que estoy creando mi propio script desde cero.
Hasta ahora puedo obtener un resultado bastante decente, sin embargo, estoy teniendo problemas para explicar los plazos de Drop-Frame. Según lo que aprendí, saltan del cuadro 29 al 02, a menos que sea el décimo (o múltiplos) minutos, en cuyo caso estarán allí los cuadros 00 y 01.
¿Algún consejo sobre cómo implementar esta función?
También cualquier mejora en el script será bienvenida.
global tcSTART
global tcDURATION
global tcFINAL
global frameRATE
on run
set frameRATE to "23.98" -- test frame rate
set tcSTART to "04:03:02:01" -- test Value 1
set tcDURATION to "01:02:03:04" -- teste Value 2
my calcFinalTC()
display dialog tcFINAL
end run
on calcFinalTC()
set FF to (word 4 of tcSTART) + (word 4 of tcDURATION)
set SS to (word 3 of tcSTART) + (word 3 of tcDURATION)
set MM to (word 2 of tcSTART) + (word 2 of tcDURATION)
set HH to (word 1 of tcSTART) + (word 1 of tcDURATION)
if FF ≥ frameRATE then
set FF to (FF - (round (frameRATE)))
set SS to (SS + 1)
end if
if SS ≥ 60 then
set SS to (SS - 60)
set MM to (MM + 1)
end if
if MM ≥ 60 then
set MM to (MM - 60)
set HH to (HH + 1)
end if
if HH > 23 then
display dialog "The timeline can't be larger than 24 hours" buttons {"OK"}
error -128
end if
if the length of ((FF div 1) as string) = 1 then
set FF to "0" & FF
end if
if the length of ((SS div 1) as string) = 1 then
set SS to "0" & SS
end if
if the length of ((MM div 1) as string) = 1 then
set MM to "0" & MM
end if
if the length of ((HH div 1) as string) = 1 then
set HH to "0" & HH
end if
set tcFINAL to HH & ":" & MM & ":" & SS & ":" & FF
end calcFinalTC