Sun Feb 28, 2021 2:16 am
Sander
Just for your info...
I was able to use Timespeed as follows to.
Image1->Transform->TimeSpeed1-> to Merge1
Image2->Transform->TimeSpeed2> to Merge2
Image3->Transform->TimeSpeed3-> to Merge3
and
Background->Merge1->Merge2->Merge3->Media Out.
Here is the .comp file of the Fusion Graph (removed Transforms for clarity)
(due to naming the sequence became
Background->Merge2->Merge1->Merge3->Media Out.
)
{
Tools = ordered() {
TimeSpeed1 = TimeSpeed {
Inputs = {
Delay = Input { Value = 11.1, },
Input = Input {
SourceOp = "MediaIn1",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 413.386, 69.5001 } },
},
MediaIn1 = MediaIn {
CustomData = {
MediaProps = {
MEDIA_FORMAT_TYPE = "JPEG",
MEDIA_HEIGHT = 720,
MEDIA_LAYER_DESC = {
},
MEDIA_MARK_IN = 0,
MEDIA_MARK_OUT = 0,
MEDIA_NAME = "LataMukesh1.jpg",
MEDIA_NUM_FRAMES = 1,
MEDIA_NUM_LAYERS = 0,
MEDIA_PAR = 1,
MEDIA_PATH = "D:/VideoProjs/DilKiNazarse/LataMukesh1.jpg",
MEDIA_SRC_FRAME_RATE = 24,
MEDIA_START_FRAME = 0,
MEDIA_WIDTH = 1280
},
},
Inputs = {
GlobalOut = Input { Value = 359, },
MediaID = Input { Value = "554640f0-f121-40cb-a8b2-ad2f7d79ca57", },
Layer = Input { Value = "", },
ClipTimeEnd = Input { Value = 0, },
HoldLastFrame = Input { Value = 359, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 247.055, 69.5001 } },
},
Merge1 = Merge {
CtrlWZoom = false,
Inputs = {
Background = Input {
SourceOp = "Merge2",
Source = "Output",
},
Foreground = Input {
SourceOp = "TimeSpeed1",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 412.581, 128.837 } },
},
Merge3 = Merge {
Inputs = {
Background = Input {
SourceOp = "Merge1",
Source = "Output",
},
Foreground = Input {
SourceOp = "TimeSpeed2",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 548.582, 128.758 } },
},
Merge2 = Merge {
Inputs = {
Background = Input {
SourceOp = "Background1",
Source = "Output",
},
Foreground = Input {
SourceOp = "MediaIn2",
Source = "Output",
},
PerformDepthMerge = Input { Value = 0, },
},
ViewInfo = OperatorInfo { Pos = { 296.699, 128.758 } },
},
MediaOut1 = MediaOut {
Inputs = {
Index = Input { Value = "0", },
Input = Input {
SourceOp = "Merge3",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 703.954, 127.047 } },
},
Background1 = Background {
Inputs = {
GlobalOut = Input { Value = 359, },
Width = Input { Value = 1920, },
Height = Input { Value = 1080, },
UseFrameFormatSettings = Input { Value = 1, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 185.894, 129.49 } },
},
TimeSpeed2 = TimeSpeed {
Inputs = {
Delay = Input { Value = 42, },
Input = Input {
SourceOp = "MediaIn3",
Source = "Output",
},
},
ViewInfo = OperatorInfo { Pos = { 550.441, 203.379 } },
},
MediaIn2 = MediaIn {
CustomData = {
MediaProps = {
MEDIA_FORMAT_TYPE = "JPEG",
MEDIA_HEIGHT = 165,
MEDIA_LAYER_DESC = {
},
MEDIA_MARK_IN = 0,
MEDIA_MARK_OUT = 0,
MEDIA_NAME = "NutanRaj5.jpg",
MEDIA_NUM_FRAMES = 1,
MEDIA_NUM_LAYERS = 0,
MEDIA_PAR = 1,
MEDIA_PATH = "D:\\VideoProjs\\DilKiNazarse\\NutanRaj5.jpg",
MEDIA_SRC_FRAME_RATE = 24,
MEDIA_START_FRAME = 0,
MEDIA_WIDTH = 250
},
},
Inputs = {
GlobalOut = Input { Value = 359, },
MediaID = Input { Value = "9c4ee458-f232-4964-a688-e55ca9886d9c", },
Layer = Input { Value = "", },
ClipTimeEnd = Input { Value = 0, },
HoldLastFrame = Input { Value = 359, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 298.558, 202.648 } },
},
MediaIn3 = MediaIn {
CustomData = {
MediaProps = {
MEDIA_FORMAT_TYPE = "JPEG",
MEDIA_HEIGHT = 480,
MEDIA_LAYER_DESC = {
},
MEDIA_MARK_IN = 0,
MEDIA_MARK_OUT = 0,
MEDIA_NAME = "NutanRaj3.jpg",
MEDIA_NUM_FRAMES = 1,
MEDIA_NUM_LAYERS = 0,
MEDIA_PAR = 1,
MEDIA_PATH = "D:\\VideoProjs\\DilKiNazarse\\NutanRaj3.jpg",
MEDIA_SRC_FRAME_RATE = 24,
MEDIA_START_FRAME = 0,
MEDIA_WIDTH = 640
},
},
Inputs = {
GlobalOut = Input { Value = 359, },
MediaID = Input { Value = "47e0fd49-2f88-4784-bac4-371f2c5788a7", },
Layer = Input { Value = "", },
ClipTimeEnd = Input { Value = 0, },
HoldLastFrame = Input { Value = 359, },
["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
},
ViewInfo = OperatorInfo { Pos = { 418.464, 204.842 } },
}
}
}
P.S. I could code easily generate this type of .comp file using Windows Powershell, Mako or Perl (taking the Image List and the Length of Music..). It is an option. But your method of Loader/Saver sounds more elegant, resolve-ish, parsimonious and staying within Resolve.
https://www.youtube.com/channel/UCeXBbc4qNkdbNPywhopu1iA