"handheld" camera motion from static source

flay

New Member
Hi all. I've been working with a local venue recording DIY bands using OBS and several NDI-connect handheld cameras. Due to the current "thing", we're trying to keep our staffing for shoots to a minimum. While we intend to keep one incumbent camera person, the rest of the gear will be set up as static.

I'm trying to figure out how to introduce a handheld motion to the static camera footage for any live streams (cutting between static and handheld is a bit jarring IMHO). Presently I can track a "dot on the wall" and re-introduce that handheld camera's motion to anything we post edit, but can't source a way to do it through OBS for streaming.

Ideally we'd create a library of multi-minute looped motion from a 2D track and use as appropriate. So "Slow Song", "Fast Song", "Jim after three beer" etc. Relating the furthest extent of the loaded motion to the level of camera push-in needed would be ideal to automate, perhaps just pre-calculated and embedded into the motion file as metadata.

I have a bit of a background in API's and Python from a previous career (visual effects TD) and would be happy to contribute in any way if such a resource or method does not presently exist. Given the nature of the venue, I'm sure they would agree to share any library of motions we build (in fact I'd insist) as content.

Some(what silly) samples of our work:


Any pointers appreciated!

Cheers,

Christopher
 

plechem

New Member
Did you ever get anywhere with this, Christopher?

I similarly apply camera shake in post, and have been searching for a way to apply movement data in OBS during live music...
 

AaronD

Active Member
I don't know this for sure - I'm not at the rig now to test it - but I think the Advanced Scene Switcher plugin might actually do this now. It's had a random number generator for a long time, for a small list of uses, but it's only recently added mathematical operations and the ability to put the result into almost anything that takes a number. If it'll adjust the Transform of a source (the part I don't know), then it can, in theory at least, simulate camera shake.

Random -> Scale and Offset to suit -> Source Transform

You may also want to put a lowpass filter in that chain, which is not explicitly included but is easy to make:
  1. Filter_out = Filter_out - (Filter_out * x)
  2. Filter_out = Filter_out + (Filter_in * x)
Where x is between 0 and 1. Effectively, you're taking some fraction away from the previous output, and replacing it with the same fraction of the new input. It's also an algebraic rearrangement of an exponential average, or a "1st order IIR lowpass" to use a fancy DSP term. :-)
A bigger fraction (x closer to 1) gives a faster response; smaller (x closer to 0) gives a slower response. Tune as-needed.
 
Top