Resource icon

OBS Lua Control Visca-over-IP based cameras 2.1

A small update release introducing a few additional capabilities

- Add functions for changing color gain (saturation) and brightness (#8). The color gain can be increased on the fly using assignable shortcut keys, or can be set to a fixed value as scene action.
- Add API commands to libvisca for reset/set/get Color Gain (Saturation) and set/get Brightness.
- Make previously hardcoded pan, tilt, zoom and focus speeds configurable per camera, add shortcuts for live modification (#6)
- Add compatibility for cameras that implement a deviating Visca standard. Sequence numbering is not applied for NewTek PTZ1 NDI camera since that camera does not properly handle message counters.
- Bugfix in queue handling of when ack has not been received yet and multiple items are queued.
- Add unit tests to the repository and configure automating workflows to run unit tests
- Bugfix to repair behavior of backup button and related path controls in the settings dialog that cause a crash on certain OBS builds

In addition, a code cleanup and and class restructuring was applied without functional impact (thanks @CapsAdmin).
A second major release of the Visca over IP control plugin for OBS!

This release contains many and significant changes to the code to enable several new features, completely backward compatible with all previous releases.

Most noticeable is the integration of a nice new feature suggested and initially implemented by user tmimlitch. The current pan, tilt and zoom value of a camera can be retrieved and stored in a scene action, which are recalled when the scene becomes active. This means camera positions can be recalled without the need to configure these in the camera as preset first!

Other changes:
- Implementation of bi-directional communication with the camera to retrieve configuration and settings from the camera.
- Added a hotkey configuration option for temporary suppression of scene action execution (via the global OBS hotkey settings); as long as the hotkey is pressed (down), the actions in a scene are not applied when the scene becomes active.
- The plugin now automatically switches to manual focus mode before one-push-trigger focus, focus to infinity, focus to far or focus to near is activated via a hotkey - manual switch to manual focus is no longer needed.
- Obtain the camera brand, model and firmware for easy listing and identification of the camera in the settings
- The plugin interface has received a cleanup, grouping related items so simplify configuration
- A backup and restore feature for the plugin script settings to easily share camera configurations between OBS installations
- Fixed several resource leaks

To install the update: replace the existing files (obs-visca-control.lua, libvisca.lua, ljsocket.lua) with the files in the zip (see the external download URL). No configuration change is needed, all settings will remain.

For more details and usage instructions, see obs-visca-control on Github.
This release adds several features and contains a significant number of reworks to improve the code quality.

New features:
  • The number of camera configurations that can be stored increased to the arbitrary maximum of 42
  • Add visca support for focus control. The plugin now supports hotkeys for changing the focus (automatic mode (default for most cameras, manual mode, single shot refocus trigger, focus to infinity, focus to near and focus to far). The hotkeys can be assigned via the global OBS configuration
  • Add action delay time to scene settings. When not set (left to 0), the action is immediately executed when the scene becomes active. To delay the action execution, for example to synchronize after completion of a transition, set it to the number of milliseconds to wait. This delay can also be used to run multiple actions in sequence.

Additionally, the online documentation was improved (see obs-visca-control on GitHub).
This release mainly contains changes and small enhancements under the hood.

It fixes one bug: when the Visca port was not modified in the settings, the initial connection failed when the scripts dialog was not opened. The connection is now always correctly setup at startup of OBS.
Stability fixes and new features for the script plugin: support Pan/Tilt and Zoom in scene actions.

This update adds new capabilities for animation actions in the scene configuration dialog (thanks to a user contribution by christinoleo). The actions Pan/Tilt, with configurable direction and speed, and Zoom, also with configurable speed, are now available as action in a scene. This way you can pan the camera over a crowd automatically in a scene. When you switch scenes, the animation is canceled.
In addition, presets can now also be recalled via a hotkey assigned in the OBS Hotkey configuration. This can be used together with animation to position the PTZ camera to the beginning of the animation before starting an animation in a scene.

Small other improvements are a 'debug' checkbox in the settings to easily enable verbose logging to find errors or issues. The connection handling has been addressed. The Power-On and Power-Off actions now explictly close and re-open a connection to the camera. This fixes unreponsive cameras in certain cases.

For more details and usage instructions, see obs-visca-control on Github.
New features for the script plugin: support for PTZOptics and Hotkey actions.

- PTZOptics support: The script settings have two new configuration items: the port and protocol mode. The port defaults to 52381 and can be changed when needed (e.g. to 1259 for a PTZOptics camera). The protocol needs to be set to 'PTZOptics' to make the script talk the Visca dialect of PTZOptics.
- Pan, Tilt & Zoom actions can now be performed using a hotkey (for camera's that support pan, tilt or zoom). The action will start when the key is pressed and stops when the key is released.

For more details and usage instructions, see obs-visca-control on Github.
This updated improves the Visca implementation:
  • Fix for a resource leak; socket connections were not closed, claiming a new connection for every send command.
  • Connections are now re-used for each camera. This also means that the message counter (part of the Visca protocol header) is now used properly.
This updated includes a few enhancements and minor changes to the documentation:
  • The visibility (enabled/disable) of the Visca plugin source is now respected. When the plugin is disabled in a scene, the action is not executed.
  • A new options is added to the source settings of the plugin to run an action on preview only when the camera is not active on program. This prevents accidental changes to the camera as long as it is live for broadcasting.