Resource icon

OBS Lua Control Visca-over-IP based cameras 2.5

This is a bugfix release to resolve several issues related to the new action handling introduced in version 2.4:
- Fix double free of scene source (causes corruption like removal of scenes and eventually crashes OBS)
- Safe handling of context variables - repair operation in non-studio mode (issue #15)
- Run stop commands before activation of new scene with same camera, to ensure stop command execution (issue #16)

When version 2.4 is installed, it is highly recommended to immediately update to 2.5!

The action scheme introduced in version 2.4 should now consistently work in normal and studio mode.

Load scene on previewTransition to programTransition back to previewUnload scene on preview
Action Active: Always
On preview exclusive: No
Send start commandSend start commandSend stop commandSend stop command
Action Active: Always
On preview exclusive: Yes
-Send start commandSend stop command-
Action Active: Preview
On preview exclusive: No
Send start command--Send stop command
Action Active: Preview
On preview exclusive: Yes
Action Active: Program
On preview exclusive: N/A
-Send start commandSend stop command-

For details and notes see [README on Github](
This release implements a significant change regarding the handling of start and stop actions on Visca cameras. This fixes issues where start and stop actions were not executed, conditionally executed or incorrectly (superfluous) executed. The new system implements consistent execution. For details and notes see README on GitHub

In addition, this release contains several other fixes:
- Support for preset number up to 254
- Revert of automatic detection of JVC cameras
- Extended testing
- Support for OBS <v28
- Several small fixes
- Improvement of documentation (readme)
A small update release with a bugfix a few additional capabilities:

  • The Pan/Tilt speed increment/decrement hotkey only worked at first press (issue #11).
  • Additional actions were added to the scene actions and hotkeys to stop a pan/tilt/focus/zoom operation. This is specifically useful when triggering commands via external tools such as Companion.
  • Small interface improvements, such as hiding configuration option that are not applicable for the selection action.
  • A 'Custom Command' action is added to the scene actions, to send a custom Visca command (a sequence of hex bytes) to a camera at load or unload of a scene. This enables calling camera-specific functions or commands that are not available in the plugin interface yet.
(release 2.2.1 is a bugfix release for 2.2)
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.