glikely

Member
glikely updated PTZ Controls with a new update entry:

OBS PTZ Controls v0.13.0

Another release for you to go and try. The big change in this release is speed ramping on the controls. The speed slider has been removed entirely and the speed of movements starts small, and ramps up the longer the button is held down. This behaviour appears to be more user-friendly, but I would like to have feedback on how it is working.

The other big change is in how a PTZ device is associated with an OBS source. Instead of having to manually name the PTZ device exactly the same as the...

Read the rest of this update entry...
 

EB123

Member
the speed ramping stuff looks good.. unfortunately i cant test anything for a while, but just wanted to mention that it would be great if the user could set a max speed that you ramp up to.. also some curve options would be good to determine take off speeds.. does it ramp down also ? if not that would be good as well... more than anything the ability to set max speed would be most useful..

how does this feature perform so far with cameras ? ive heard vMix developers say that they couldnt add ramp speeds because PTZ motors arent sensitive enough or something ? it would be awesome if PTZ could be made to look less like a security camera and bit more cinematic.. speed ramping is a great start towards that..
 

glikely

Member
the speed ramping stuff looks good.. unfortunately i cant test anything for a while, but just wanted to mention that it would be great if the user could set a max speed that you ramp up to.. also some curve options would be good to determine take off speeds.. does it ramp down also ? if not that would be good as well... more than anything the ability to set max speed would be most useful..
A related issue is that every camera seems to accept a different ranges of distance speeds, so I need to add some options to make those options configurable. Hopefully that will also give you the speed limit you want. Right now the ramp is simply linear from 0 to full speed over 2s, and does not ramp down. If found that so far I want the camera to stop immediately when the button is released, instead of carrying on past the point. The cameras I have (Sony SRG-120DH) have enough inertia and slack that they still carry on a bit anyway.

I‘ve got some prototype gamepad support in my tree from DragonRhythm that may be a more intuitive way to get smooth ramps that aren’t fixed to the 8 button directions.

Another possibility would be to implement pre-recorded sequences of moves that can be played back by a preset.
how does this feature perform so far with cameras ? ive heard vMix developers say that they couldnt add ramp speeds because PTZ motors arent sensitive enough or something ? it would be awesome if PTZ could be made to look less like a security camera and bit more cinematic.. speed ramping is a great start towards that..
So far it works great! The frontend code updates the speed every 100ms which appears to be frequent enough to be responsive. VISCA camera are limited to 32 speeds, which isn’t a lot of resolution, but it seems to be enough. NDI and ONVIF cameras accept floating point speed values, and so may have higher resolution, but I’ve not implemented either of those backends yet. I don’t know the issue the vMix developers may have run into.
 

EB123

Member
A related issue is that every camera seems to accept a different ranges of distance speeds, so I need to add some options to make those options configurable. Hopefully that will also give you the speed limit you want. Right now the ramp is simply linear from 0 to full speed over 2s, and does not ramp down. If found that so far I want the camera to stop immediately when the button is released, instead of carrying on past the point. The cameras I have (Sony SRG-120DH) have enough inertia and slack that they still carry on a bit anyway.
nice... if its possible to have control of max speed that would be great... also any chance to make the time to ramp up configurable ? if you have 2 secs now but the user wants slower they could make it 3 or 4 secs ? with this feature i always envisaged it would be a fairly slow ramp up as user starts to move camera and then a ramp down would be a fairly fast, maybe 1 sec or less.. just enough to remove the jerky security camera look that some PTZ have.. if there is any chance to eventually have both up/down with user configurable settings that would be really great..

the 100ms and 32 steps resolution seems OK (from what i envisage).. also the idea to record sequences would be awesome as well.. would add a lot of creative possibilities... thanks for adding this feature.
 

jswager

New Member
Hello - using obs-ptz and it's working just fine with our Birddog P400. Thank you for the most useful tool!

Is obs-ptz compatible with obs-websocket, such that a command could be set via obs-websocket and execute PTZ commands? The "Preset" commands would be most useful.
 

dqm

Member
Love this plugin, but need some help. But first, I'm not ready to upgrade to obs 28 yet and I am wondering if versions 12 and 13 are backward compatible.

The slider speed control gives me fits; wondering if you can help. Let my try to explain my difficulty.

I usually need a very slow speed. To that end, I move the slider way down. How far to move it is a guestimate, and if I go too far, I don't get any pan/tilt at all. So, I nudge it upward until I get the slow movement I need. But then I don't have any zoom. If I speed it up enough to get a slow zoom, then the pan/tilt movement is too fast. The continual slider adjustments needed render your dock too difficult for both pannning and zooming. Not to mention multiple cameras that respond to the speed adjustments differently.

I need independent speed controls, preferably remembered across obs restarts.

I understand newer versions have replaced the slider with a ramping mechanism. I suppose it's worth a try, but seems like tuning the ramping response for different needs would be a can of worms.
 

glikely

Member
Love this plugin, but need some help. But first, I'm not ready to upgrade to obs 28 yet and I am wondering if versions 12 and 13 are backward compatible.
Theoretically, the code will build against OBS v27, but I haven't spent any time trying to do so. I'd be happy to take patches that fix build problems against v27.
The slider speed control gives me fits; wondering if you can help. Let my try to explain my difficulty.

I usually need a very slow speed. To that end, I move the slider way down. How far to move it is a guestimate, and if I go too far, I don't get any pan/tilt at all. So, I nudge it upward until I get the slow movement I need. But then I don't have any zoom. If I speed it up enough to get a slow zoom, then the pan/tilt movement is too fast.
The speed slider code in the versions before v0.13 was very buggy, so I'm not surprised it gave you problems. It didn't work well on my system either.
The continual slider adjustments needed render your dock too difficult for both pannning and zooming. Not to mention multiple cameras that respond to the speed adjustments differently.

I need independent speed controls, preferably remembered across obs restarts.

I understand newer versions have replaced the slider with a ramping mechanism. I suppose it's worth a try, but seems like tuning the ramping response for different needs would be a can of worms.
Independent controls are possible, but I've got a few more back-end architecture changes that I need to make before I can start looking at that. However, please give the new version a try. I find the ramped speed mechanism is far more functional that the manual speed control ever was, and it may provide the control you need without doing per camera configuration.
 

glikely

Member
Hello - using obs-ptz and it's working just fine with our Birddog P400. Thank you for the most useful tool!

Is obs-ptz compatible with obs-websocket, such that a command could be set via obs-websocket and execute PTZ commands? The "Preset" commands would be most useful.
It isn't yet. I do want to add that feature, but I haven't spent any time working on it yet.
 

dqm

Member
Theoretically, the code will build against OBS v27, but I haven't spent any time trying to do so. I'd be happy to take patches that fix build problems against v27.

The speed slider code in the versions before v0.13 was very buggy, so I'm not surprised it gave you problems. It didn't work well on my system either.

Independent controls are possible, but I've got a few more back-end architecture changes that I need to make before I can start looking at that. However, please give the new version a try. I find the ramped speed mechanism is far more functional that the manual speed control ever was, and it may provide the control you need without doing per camera configuration.
v.13 installs without error but does not load on obs v27. See attached log.
 

Attachments

  • v13 load failure log.txt
    15.5 KB · Views: 18

DUbstratus

New Member
Hello, I am new to obs and I can’t say thank you enough for the pts plug in. I recently bought a cheap ptz cam for streaming meetings and having the ptz controls really made a difference. I am having an issue with the controls in that I can get all of the corner controls to move the cam (slow fade in that direction until it maxes out) but left right up and down doesn’t work. I was able to configure presets using the settings sliders. This was adequate for our last meeting but I would like to be able to pan live if needed without using the jumpy sliders. Just curious if anyone else has run into this issue? I am using a jimcom jm810 camera VISCA over serial connection (usb) nay insight would be great.
 

toplachi

Member
I am very eager to test this version with speed ramping, unfortunately I don't have the time yet aside from I am still not upgrading to OBS28.
The face tracking plugin seems to have this feature, which looks more like a natural movement than my hands controlling the camera thru the keyboard, but that is as long as I keep the camera not too far from my subject.

Another good feature that might also be a challenge to implement is to able to move the camera diagonally by combining the vertical and horizontal keyboard shortcuts simultaneously
 

dqm

Member
Yes, that is expected. The released binaries only works with v28 or later.
How did I miss that??? My time is probably better spent migrating to V28, anyway...just hesitating because some plugins are not supported yet.
The preset list does need a lot of work. Right now they are fixed to camera presets, but I want to store presets locally on the controller end so that predefined sets can be saved/restored, and so that I can get thumbnails of the scene when the preset is stored.

If by "storing the presets locally" you mean storing the coordinates, I urge caution. Users must then manage two preset schemes that are immensely challenging to keep in sync. It also adds difficulty to workflow integration with other PTZ control mechansisms, for example, sources that position the camera when a scene is activated.
 

z0mgitsjared

New Member
Thanks for the plugin, I got a Tenveo NV20A cam and I've connected it via serial to usb to a computer, but the PTZ controls are moving it twice as much as I expect. One click on the zoom in/out results in it moving 2x, so zooming in from 2x to 4x or 8x to 10x. Moving in any direction has the same result, it moves about twice as much as it does with the camera's original remote.

This is with v0.13, I haven't tried a previous version yet to see if this is something new with that version. Is there any place we can configure how far the camera travels?

No rush, my work around in the meantime is to use the camera remote to position the camera and then save it as a preset. Not the best but it'll get us through week to week.
 

feee

New Member
I have inadvertently adjusted live PTZ camera many times, so I welcomed the lock out for live PTZ but I do missed not been able to quickly adjust the live PTZ when needed. May I request a hotkey pressed in order to move the live PTZ slowly.

Thank you
 

dqm

Member
Ah, I understand now. I’ll experiment with that, but it is a little complex to do well because a camera may be in multiple scenes, and it won’t be clear which one should be selected to preview.
It would be fairly trivial to add a "preferred scene" setting to the device configuration. That said, the real complextity would be distinguishing between a click to simply change cameras and one to also issue the scene change so that OBS "follows" the change.
 

dqm

Member
I understand that you've previously contemplated starting with an empty preset list that can be maintained similar to the Scene and Source lists. This would allow fewer/more presets and flexible ordering. While I upvote that idea, I'd like to propose taking it to the next level.

What I had in mind was refactoring the preset list as an "action" list, supporting multiple action types, each action type configurable with the supporting values it needs. Calling a preset would, of course, be one action type, supported by a configurable preset number. A second action type, which sort of drives this proposal, would be calling a scene, supported by the scene name. Given the complexity with which scenes can be constructed, this would be an enormously powerful feature. For example, it would enable camera changes with transitions from the ptz control pad. (Confession: calling raw presets without transititons to mask gross camera movements is too risky for my workflow.)

One can imagine other action types with potential for lots of extensibility. Think about an action type that issues a generic camera command, configurable in the settings. Or many OBS commands, for that matter (though I urge caution about getting too distant from camera control). Down the road, one could even support a multi-step action type--one that issues a sequence of actions, similar to what Stream Deck and Companion support.

Finally, think about the relationship between an item in a device's action list and the action that it invokes. In its simplest form (as with presets now), it's 1-1. In other words, each item invokes a single action and that action is associated with a single item. With the mult-action feature mentioned above, that relationship becomes 1-many: one item invokes multiple actions, but each action is still associated with only one item in the list. The most robust design is many-many. That means separating device settings from action settings in your underlying configuration structure. Then, the same action can be used for multiple devices. For example, an action for "call preset 1", could be assigned to any or all cameras. Or, invoked in other ways--like by assigning it to one of the buttons under direction arrows. FWIW, the relationship between Scenes and Sources follows that design principle.
 
Top