My goal is to call blender form the command line with a set of arguments to use the built in 2D video stabilization tools.
I have been able to (via the bpy API):
- Get parameters from command line call
- load a new clip
- add a marker (to track)
- position the marker
- 'select' the marker/track (not sure if needed)
This is all possible without relying on bpy.ops
Unfortunately now I need to access the following functionality programmatically:
My main question: I can't find a way to get to that (bpy.ops.clip.stabilize_2d_add()
). I have no idea what context I would need to switch to to make this a valid python call.
At this point I also notice the transition from doing everything in code to having to hunt through the UI workflow for ways to replicate UI functionality. I am wondering if I shouldn't need to call bpy.ops.clip.stabilize_2d_add()
at all and should instead find the underlying functionality?
The part that comes right after this, which is making the stabilized track is completely lost to me as well. Am I going in the wrong direction?
Any help would be greatly appreciated.
override
is hardcoded. How did you get the values you hardcode it to? $\endgroup$, 'active_object': bpy.context.object, 'edit_object': bpy.context.object, 'selected_objects': [helper]
where I set thehelper = bpy.data.objects['Empty']
and then adjustedoverride['selected_objects'] = [helper]
andoverride['active_object'] = helper
... This allowed me to call anotherbpy.ops.anim.keyframe_insert(override, type='Location')
to create a new keyframe via python. $\endgroup$