Skip to content

Releases: jochenwezel/PTZControl

PTZControl2 v2.4.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Jun 15:53

Highlights since v2.4.3.2

This release introduces the new PTZControl2 Windows GUI and rounds out the automation-focused tooling around the fork.

New PTZControl2 GUI for Windows

  • Added PTZControl2, a modern Windows GUI with a larger, clearer control surface for live camera operation.
  • Added light/dark theme support and a polished operator layout for presets, home/default, pan/tilt, and zoom.
  • Added camera slot aliases, preset names, and per-camera movement/compatibility settings.
  • Added optional live preview and a camera monitor window for checking current zoom, pan, tilt, and picture-control values.
  • Added picture controls for supported cameras: brightness, contrast, sharpness, and saturation.
  • Added Windows device display-name rename support with UAC elevation when administrator rights are required.

Better camera handling

  • Improved camera selection display: compact names in the dropdown, full device path in tooltips, and clearer camera information output.
  • Added per-camera compatibility choices between standard UVC controls and Logitech extension controls.
  • Added clearer capability/status feedback when a camera does not support specific actions.

Documentation and packaging

  • Added PTZControl2 documentation with screenshots and a concise overview in the main README.
  • Added PTZControl2 release packages for Windows x64 and x86.
  • Continued shipping classic PTZControl.exe, PTZControlConsole, and the experimental Linux console package.

Release assets

  • PTZControl2-win-x64.zip / PTZControl2-win-x86.zip: new modern Windows GUI.
  • PTZControl-win-x64.zip / PTZControl-win-x86.zip: classic Windows GUI.
  • PTZControlConsole-win-x64.zip / PTZControlConsole-win-x86.zip: command-line automation tool.
  • PTZControlConsole-linux-x64-beta.tar.gz: experimental Linux console build.

PTZControl2 is currently promoted for Windows only. Linux/macOS GUI behavior is not part of the supported release scope yet.

PTZControl v2.4.3.2

Choose a tag to compare

@github-actions github-actions released this 07 Jun 20:34

Changes since v2.4.3.1

This release adds Windows-only DirectShow camera rename support to PTZControlConsole.

DirectShow camera name commands

New commands:

PTZControlConsole get-directshow-camera-name [-c|--camera "NamePart" | -d|--device-path "DevicePath" | -s|--slot 1..3]
PTZControlConsole set-directshow-camera-name -n|--friendlyname "DirectShow Name" [-c|--camera "NamePart" | -d|--device-path "DevicePath" | -s|--slot 1..3] [--acknowledge-warning]

The commands read or write the Windows DirectShow FriendlyName registry value. They do not rename the physical USB device and do not change the Windows Device Manager device name.

set-directshow-camera-name requires administrator rights because it writes to HKLM. Without sufficient rights it fails with a clear console error and a non-zero exit code.

Safety confirmation

The long registry warning is intentionally not printed in normal help output. Instead, the setter shows the warning during execution and asks the user to type YES before writing.

For scripts and automation, use --acknowledge-warning to skip the interactive confirmation explicitly.

Local validation

Validated on a local Logitech HD Webcam C525:

  • get-directshow-camera-name --slot 2 successfully read Logitech HD Webcam C525.
  • set-directshow-camera-name --slot 2 --friendlyname "Logitech HD Webcam C525" --acknowledge-warning reached the registry write path and failed cleanly without administrator rights.
  • Calling the setter without confirmation aborts before the registry write.

Packaging

Release assets keep the explicit architecture naming introduced in v2.4.3.1:

  • PTZControl-win-x64.zip
  • PTZControl-win-x86.zip
  • PTZControlConsole-win-x64.zip
  • PTZControlConsole-win-x86.zip
  • PTZControlConsole-linux-x64-beta.tar.gz

Related issue

PTZControl v2.4.3.1

Choose a tag to compare

@github-actions github-actions released this 07 Jun 19:39

Changes since v2.4.1.2

This release replaces v2.4.3.0 and promotes the console and packaging work from the v2.4.2 preview line into a regular release. It contains all changes made after the last official release v2.4.1.2.

Assets

The release assets now use explicit architecture names. The previous ambiguous PTZControl.zip GUI package is no longer produced.

  • PTZControl-win-x64.zip contains the Windows x64 GUI application. PTZControl.exe is placed directly in the ZIP root.
  • PTZControl-win-x86.zip contains the Windows x86 GUI application. PTZControl.exe is placed directly in the ZIP root.
  • PTZControlConsole-win-x64.zip contains the Windows x64 console application and guided Windows camera test script. The console executable is placed directly in the ZIP root.
  • PTZControlConsole-win-x86.zip contains the Windows x86 console application and guided Windows camera test script. The console executable is placed directly in the ZIP root.
  • PTZControlConsole-linux-x64-beta.tar.gz contains the experimental Linux x64 console application, Linux test script, and Linux installation notes.

Console CLI

  • Reworked command-line parsing to use verb-specific CommandLineParser options.
  • Added consistent help output for no arguments, --help, help, --h, and -?.
  • Added stable generated CLI documentation under docs/generated.
  • Added explicit value modes for movement and zoom commands: --mode percent and --mode raw.
  • Added short options while keeping readable long options, for example -c/--camera, -d/--device-path, -s/--slot, -m/--mode, -x/--pan, and -y/--tilt.
  • Removed the redundant list-presets command. Preset name information is now included in cam-device-info; targeted automation should use get-preset-name.

Camera information and metadata

  • Added cam-device-info with device name/path, PTZControl slot, raw min/max/default/step/current values where available, restore target information, and preset name metadata.
  • Added preset friendly-name commands: get-preset-name, set-preset-name, and clear-preset-name.
  • Added camera slot friendly-name commands: get-camera-name, set-camera-name, and clear-camera-name.
  • Added swap-preset-names for reordering preset labels between PTZControl camera slots.
  • Added metadata config transport with config --export and config --import.
  • Windows keeps using the original PTZControl registry metadata for compatibility. Linux/macOS metadata uses JSON files.

Movement, zoom, restore, and presets

  • Added restore-home and restore-default as explicit commands.
  • Removed ambiguous preset 0 usage from the CLI concept; use restore-home instead.
  • Added support for restore-preset 1..8 and save-preset 1..8 through Logitech extension-unit commands.
  • Added percent and raw zoom commands.
  • Added percent and raw absolute/relative move command variants.
  • Added experimental move-seek, which tries to reach an absolute pan/tilt target by reading current raw values, issuing relative movement steps, and checking progress after each correction.

Guided camera tests

  • Added Windows and Linux guided camera test scripts.
  • Test scripts write detailed command, exit code, stdout, stderr, and user feedback to timestamped log files.
  • Test scripts keep the console output focused on the current visible test action and the tester feedback question.
  • Test scripts collect cam-device-info for all detected cameras and then ask which camera should be used for visible movement checks.
  • Test scripts now cover absolute, relative, percent, raw, restore, preset, and experimental move-seek variants.
  • Test scripts include preparation commands before visible checks so the next action is more likely to produce a visible change.

Windows behavior and known validation points

  • move-relative uses the Logitech extension-unit movement path, which is closest to the original PTZControl directional movement model.
  • move-absolute uses standard DirectShow/IAMCameraControl absolute pan/tilt values and still needs validation with a real Logitech PTZ Pro 2.
  • move-seek is experimental and depends on cam-device-info being able to read current raw pan/tilt values on the target camera.
  • DirectShow/IAMCameraControl capability reads can differ between an agent/sandbox process and a normal interactive process. For real camera validation, use the release asset from an interactive shell.
  • Open validation issues include absolute move behavior and preset restore behavior on Windows PTZ Pro 2 hardware.

Linux preview

  • Added a Linux x64 console preview package as .tar.gz.
  • Added Linux installation notes including .NET runtime guidance.
  • Linux currently supports standard V4L2 absolute pan, tilt, and zoom controls where exposed by the camera/driver.
  • Logitech preset/home support on Linux/macOS is not complete yet and remains a future implementation area.

Documentation and project maintenance

  • Added docs/syntax.md and generated example/help documentation.
  • Added NOTICE.md and documented GPL-3.0 attribution for the fork.
  • Added agent guidance to keep CLI docs generated, prefer long options in guided tests, and account for DirectShow sandbox differences during local diagnostics.
  • Updated the release workflow to use explicit GUI architecture assets and ZIP-root executables.

Suggested on-site Windows PTZ Pro 2 test flow

  1. Download and unpack PTZControlConsole-win-x64.zip.
  2. Run PTZControlConsole.exe cam-device-info --camera "PTZ Pro 2" and confirm whether raw current pan/tilt values are available.
  3. Run scripts\test-console-camera-windows.ps1 from the unpacked console folder.
  4. Select the PTZ Pro 2 camera for visible tests.
  5. Complete as much of the guided test as possible and keep the generated timestamped log file for issue analysis.

Relevant commits

  • c430b01 Add console backend abstraction and Linux preview asset
  • 3114ecc Document Linux console preview install
  • 829fca8 Allow console app to roll forward to newer dotnet runtimes
  • f25c330 Implement Linux V4L2 PTZ controls
  • 15b5bbf Package Linux console release as tarball
  • 1e63686 Fix Windows Logitech XU commands
  • 0819532 Add camera device info command
  • 2551bc1 Add explicit value modes for CLI moves
  • 24adcc1 Separate home default and preset restore commands
  • 453437e Add preset name management commands
  • bbdf94a Add preset name lookup command
  • d74dc4b Improve camera info and selection syntax
  • 6457ad0 Add cross-platform metadata config and camera test scripts
  • 17f470e Document CLI syntax and expand camera tests
  • 7394c52 Use verb-specific command line parsing
  • a554c54 Improve CLI help and generated docs
  • 6a06847 Document GPL attribution for fork
  • 3dbac0b Improve guided camera test scripts
  • 783e678 Include preset names in camera info
  • 9769fb6 Remove redundant list-presets command
  • d5d61b0 Add experimental move-seek command
  • 3d28c3f Clarify release asset architecture packaging

PTZControl v2.4.1.2

Choose a tag to compare

@github-actions github-actions released this 02 Jun 23:37

First release of console application