obs-ptz icon indicating copy to clipboard operation
obs-ptz copied to clipboard

Request: Support Datavideo variant of VISCA over TCP protocol

Open bassguy95 opened this issue 2 years ago • 11 comments

Using the latest update of the plugin with OBS 28.1.1 - I add my cameras and try to control them but nothing happens...

I know the IP/port settings are correct as they work fine with Companion, I'm just hoping to get the camera control actually inside OBS,

Cameras being used are DataVideo PTC-150.

As a side note, this feels like a great time to point out that a confirmation of connection to the camera(s), or an error describing the failed connection, would be fantastic. I haven't a clue if the plugin is seeing the camera at all, if the camera is seeing the plugin commands, or if it's some obscure networking or user permissions issue preventing communication altogether.

bassguy95 avatar Feb 27 '23 15:02 bassguy95

Try enabling debug in the settings and open the OBS log to see if theres errors.

normen avatar Feb 27 '23 15:02 normen

Try enabling debug in the settings and open the OBS log to see if theres errors.

10:25:38.612: [obs-ptz] VISCA_over_TCP PTZ Device 2 connected 10:25:38.612: [obs-ptz] [visca-over-tcp/PTZ Device 2] Stale prop list: {zoom_pos,tilt_pos,pan_pos,color_hue,iris_pos,gain_pos,wb_mode,dzoom_pos,vendor_id,camera_id,defog_mode,focus_pos,power_on} 10:25:38.612: [obs-ptz] [visca-over-tcp/PTZ Device 2] --> 81:09:7e:7e:00:ff 10:25:38.612: [obs-ptz] VISCA_over_TCP PTZ Device connected 10:25:38.612: [obs-ptz] [visca-over-tcp/PTZ Device] Stale prop list: {zoom_pos,tilt_pos,pan_pos,color_hue,iris_pos,gain_pos,wb_mode,dzoom_pos,vendor_id,camera_id,defog_mode,focus_pos,power_on} 10:25:38.612: [obs-ptz] [visca-over-tcp/PTZ Device] --> 81:09:7e:7e:00:ff 10:25:38.612: [obs-ptz] VISCA_over_TCP PTZ Device 1 connected 10:25:38.612: [obs-ptz] [visca-over-tcp/PTZ Device 1] Stale prop list: {zoom_pos,tilt_pos,pan_pos,color_hue,iris_pos,gain_pos,wb_mode,dzoom_pos,vendor_id,camera_id,defog_mode,focus_pos,power_on} 10:25:38.612: [obs-ptz] [visca-over-tcp/PTZ Device 1] --> 81:09:7e:7e:00:ff 10:25:40.115: adding 512 milliseconds of audio buffering, total audio buffering is now 512 milliseconds (source: Video Capture Device) 10:25:40.115: 10:25:41.033: adding 21 milliseconds of audio buffering, total audio buffering is now 533 milliseconds (source: Video Capture Device) 10:25:41.033: 10:25:41.757: [obs-ptz] [visca-over-tcp/PTZ Device 1] timeout 10:25:41.757: [obs-ptz] [visca-over-tcp/PTZ Device 1] --> 81:09:7e:7e:00:ff 10:25:41.757: [obs-ptz] [visca-over-tcp/PTZ Device] timeout 10:25:41.757: [obs-ptz] [visca-over-tcp/PTZ Device] --> 81:09:7e:7e:00:ff 10:25:41.757: [obs-ptz] [visca-over-tcp/PTZ Device 2] timeout 10:25:41.757: [obs-ptz] [visca-over-tcp/PTZ Device 2] --> 81:09:7e:7e:00:ff 10:25:42.049: [obs-ptz] [visca-over-tcp/PTZ Device 2] timeout 10:25:42.049: [obs-ptz] [visca-over-tcp/PTZ Device 2] --> 81:09:7e:7e:00:ff 10:25:42.049: [obs-ptz] [visca-over-tcp/PTZ Device] timeout 10:25:42.049: [obs-ptz] [visca-over-tcp/PTZ Device] --> 81:09:7e:7e:00:ff 10:25:42.049: [obs-ptz] [visca-over-tcp/PTZ Device 1] timeout 10:25:42.049: [obs-ptz] [visca-over-tcp/PTZ Device 1] --> 81:09:7e:7e:00:ff 10:25:42.147: [obs-ptz] [visca-over-tcp/PTZ Device 1] timeout 10:25:42.147: [obs-ptz] [visca-over-tcp/PTZ Device 1] --> 81:09:7e:7e:00:ff 10:25:42.147: [obs-ptz] [visca-over-tcp/PTZ Device] timeout 10:25:42.147: [obs-ptz] [visca-over-tcp/PTZ Device] --> 81:09:7e:7e:00:ff 10:25:42.147: [obs-ptz] [visca-over-tcp/PTZ Device 2] timeout 10:25:42.147: [obs-ptz] [visca-over-tcp/PTZ Device 2] --> 81:09:7e:7e:00:ff

is "81:09:7e:7e:00:ff" supposed to be the camera MAC? Because that's not even close to my camera's MACs.

bassguy95 avatar Feb 27 '23 15:02 bassguy95

No, thats a VISCA command.

normen avatar Feb 27 '23 16:02 normen

Are you sure your camera uses VISCA over TCP? Theres also VISCA over UDP.

normen avatar Feb 27 '23 16:02 normen

No, thats a VISCA command.

I admit I’m not very knowledgeable about this side of things.

Are you sure your camera uses VISCA over TCP? Theres also VISCA over UDP.

Yes, I am sure. I already got this VISCA over TCP working with an app called Companion. That works fine, but it needs another window open or tablet use, which is great, but I also want control in OBS for some cases.

With Companion it was as easy as setting the IP of the camera and selecting the port I want to use.

bassguy95 avatar Feb 27 '23 17:02 bassguy95

The plugin appears to be connecting to the TCP port on the camera, but it is not getting any responses, and the connection gets closed immediately. Either something isn't configured right, or the plugin isn't speaking quite the right VISCA dialect for the DataVideo camera.

Do you know how to use Wireshark? If you could get a trace of the TCP messages between Companion and the camera then it would help debug. Also, please attach a full copy of your OBS log file so that I can see the initialisation messages.

I like the suggestion of having visible connection status in the plugin. Please feel free to file a separate issue requesting that feature so that I don't lose track of it.

glikely avatar Mar 01 '23 08:03 glikely

Do you know how to use Wireshark? If you could get a trace of the TCP messages between Companion and the camera then it would help debug. Also, please attach a full copy of your OBS log file so that I can see the initialisation messages.

I'm working within a public school district and I don't think our network admin will take too kindly to me sniffing around with Wireshark, but I can ask.

If it helps at all, Companion is another open source project designed to allow tablet emulation of the streamdeck as well as some interconnectivity options.

Incidentally I also found this plugin while searching for the official DataVideo documentation as I know I've seen it before.

I will update when I get a response from my network admin about allowing the use of Wireshark

2023-03-01 08-22-11.txt

bassguy95 avatar Mar 01 '23 13:03 bassguy95

Go into the settings dialog and click the 'Write to OBS Log' button at the bottom of the configuration page and then attach the OBS log file. I'd like to see the configuration used.

glikely avatar Mar 01 '23 14:03 glikely

My apologies!

2023-03-01 09-16-38.txt

This ought to contain what you need down at the bottom! Also super appreciate the help on this!

bassguy95 avatar Mar 01 '23 14:03 bassguy95

After some digging, it appears that Datavideo implements a variant of the VISCA protocol that isn't the same as other cameras. Datavideo appears to require the length of the packet to be pre-pended to the VISCA command which is not supported by obs-ptz yet. I've changed this issue to a feature request to add in the Datavideo variant

For reference: https://github.com/bitfocus/companion-module-datavideo-visca/blob/f90534679338bab41021add517d0219e71d5a395/index.js#L1305-L1316

glikely avatar Mar 01 '23 15:03 glikely

Thanks for the response! I was about to send over a copy of their actual implementation:

DataVideo PTZ VISCA Commands Rev 2.3

PTC Series VISCA Commands

Hopefully that helps, I wish I could be of more help as my coding skills are about the same level of a 5th grader these days haha.

bassguy95 avatar Mar 01 '23 20:03 bassguy95