Resolve Scripting - how to access multicams?

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

MarcusWolschon

  • Posts: 591
  • Joined: Sun Apr 14, 2013 6:59 pm

Resolve Scripting - how to access multicams?

PostThu Nov 29, 2018 7:08 pm

I finaly found a workaround to get some Resolve Scripting in Python going.
viewtopic.php?f=21&t=78611&p=459047#p459047

Now my first problem...
the API reference in
%ProgramData%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\README.txt
and the examples in that directory list some nice features...
but there is no documented way to list or access Multicams in the current project and they
don't show up as Timelines with
GetTimelineCount() and
GetTimelineByIndex(idx)

What I want to do it to build a clip that shows a video wall of an edited timeline, 2 generators (SMPTE colors and 10mV brightness ramp) and all the camera angles of the multicam that is used in that timeline.
It serves as a reference what alternative cameras angles are available when reviewing an edit remotely.
Up to now we have build these manually and it's a lot of work.


Introspection doesn't seem to be a way to find everything missing in the script readme.
Code: Select all
Py3> from pprint import pprint
Py3> pprint(project)
<PyRemoteObject object at 0x000002956A171E40>


Also: How do you access properties of a TimelineItem (such as transform->zoom and position)?
Offline

MarcusWolschon

  • Posts: 591
  • Joined: Sun Apr 14, 2013 6:59 pm

Re: Resolve Scripting - how to access multicams?

PostThu Nov 29, 2018 7:40 pm

I found this
https://www.steakunderwater.com/wesuckl ... 18f92f5126

and it seems you can do some introspection

Code: Select all
Py3> pprint(resolve.GetHelp('Project'))
('Project Members:\n'
 '  Project:AddRenderJob()\n'
 '  Project:DeleteAllRenderJobs()\n'
 '  Project:DeleteRenderJobByIndex()\n'
 '  Project:GetCurrentRenderFormatAndCodec()\n'
 '  Project:GetCurrentTimeline()\n'
 '  Project:GetMediaPool()\n'
 '  Project:GetName()\n'
 '  Project:GetPresets()\n'
 '  Project:GetRenderCodecs()\n'
 '  Project:GetRenderFormats()\n'
 '  Project:GetRenderJobStatus()\n'
 '  Project:GetRenderJobs()\n'
 '  Project:GetRenderPresets()\n'
 '  Project:GetSetting()\n'
 '  Project:GetTimelineByIndex()\n'
 '  Project:GetTimelineCount()\n'
 '  Project:IsRenderingInProgress()\n'
 '  Project:LoadRenderPreset()\n'
 '  Project:SaveAsNewRenderPreset()\n'
 '  Project:SetCurrentRenderFormatAndCodec()\n'
 '  Project:SetCurrentTimeline()\n'
 '  Project:SetName()\n'
 '  Project:SetPreset()\n'
 '  Project:SetRenderSettings()\n'
 '  Project:SetSetting()\n'
 '  Project:StartRendering()\n'
 '  Project:StopRendering()\n'
 '  ResolveScriptable:Print()\n'
 '  :GetApp()\n'
 '  :GetAttrs()\n'
 '  :GetHelp()\n'
 '  :GetHelpRaw()\n'
 '  :SetAttrs()\n')

Py3> pprint(resolve.GetHelp('Timeline item'))
('Timeline item Members:\n'
 '  Timeline item:AddFusionComp()\n'
 '  Timeline item:AddMarker()\n'
 '  Timeline item:ExportFusionComp()\n'
 '  Timeline item:GetClipColor()\n'
 '  Timeline item:GetDuration()\n'
 '  Timeline item:GetEnd()\n'
 '  Timeline item:GetFlags()\n'
 '  Timeline item:GetFusionCompByIndex()\n'
 '  Timeline item:GetFusionCompByName()\n'
 '  Timeline item:GetFusionCompCount()\n'
 '  Timeline item:GetFusionCompNames()\n'
 '  Timeline item:GetLeftOffset()\n'
 '  Timeline item:GetMarkers()\n'
 '  Timeline item:GetMediaPoolItem()\n'
 '  Timeline item:GetName()\n'
 '  Timeline item:GetRightOffset()\n'
 '  Timeline item:GetStart()\n'
 '  Timeline item:ImportFusionComp()\n'
 '  ResolveScriptable:Print()\n'
 '  :GetApp()\n'
 '  :GetAttrs()\n'
 '  :GetHelp()\n'
 '  :GetHelpRaw()\n'
 '  :SetAttrs()\n')



However no functionality regarding the 2 topics mentioned above seem to be in there. :(
So it's back to manual work.

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 3 guests