Local camera PTZ control via COM1

As the subject suggests, I have a local PTZ camera (it’s a sourced Tandberg PrecisionHD) I can capture and stream video fine via HDMI capture card. but control is seperate, I have it connected on My local COM port an via a software called camerapad but in NCS, I find no way How I can either control directly COM port or via camerapads’ webif (http://localhost:800).

Is there any way how to get control over this “virtual” device?

Thanks
Vik

Sorry, but not possible. Only IP traffic.

Ok, thanks for your quick response, good thing that this software has a webserver and therefore, can be addressed over IP as you suggest.

So how can one make a plugin or preset,for this camera, like the preconfigured ones already in the application? It should be simple, the video images come from a local source and the ptz control can be called via a Webserver. Jus like the existing profiles but two merged together.

Really not possible?

Sorry, but that’s nothing we will look into.
Cameras of today handle all this using the ONVIF standard.
Maybe there are other softwares that can handle this.

good to know that you won’t, I won’t be asking you to do so anymore.
That doesn’t necessary mean that I can’t look into it. Just one more request. does a plugin Exist for VISCA control?

Just an idea.
Create a webpage with embedded html code for the camera hosted on an external web server or the internal NCS web server. Embedd also this VISCA web PTZ controls. Just found this open source VISCA web https://ptzoptics.com/tips-using-ptzoptics-open-source-control-software/

-Henrik

great idea, thanks for thinking outside the box :wink:
would it be possible to embed an external html control on the NCS webserver? Sure I can, I should look into the Webinterface’s source code, Right?

The root directory for the NCS web server is here C:\Program Files\Netcam Studio - 64-bit\WebServer
There are no limitations what I know. When call a webpage just use http://NCS_IP:8100/xx.htm (or xx.html)
Have fun :slight_smile:

I decided not to take that route just yet, as it is not native and would not work from any other client application. Back to the drawing board. My challenge is: combining HDMI video from a usb capture device with PTZ control through Serial Port. and get combined control through preferred NCS. With the help from Duckduckgo, I came up with a few DIY ONVIF Camera solutions, unfortunately none offer PTZ control. There’s a cool Win application worth mentioning that does ONVIF desktop streaming…(DeskCamera) but still no PTZ :frowning:

But then I came across RPOS (short for Raspberry Pi Onvif Server) baking off one of my pi’s was a BreeeZe. With my PTZ cam connected to the usb Videograbber and serial port of the Pi I have successfully built an ONVIF PTZ-camera.
ONVIF-DevMan, automatically picks up the ONVIF protocol and can control all aspect of the camera.
Unfortunately NCS can’t, When I select ONVIF source, The discovery feature finds the Pi and I can add it to the “edit video source” box, but I cannot save the config. I don’t know why that is but I thought it might have something to do with the calling of the ONVIF profiles?

On my Pi, I have Soap logging enabled and I notice an entirely different type of response between NCS and the Pi than between ONVIF-DevMan and the Pi.

Who knows why I cannot connect to this ONVIF camera? I have a chinese ptz dome cam, also here I cannot just press save in the ONVIF tab I must also add rtsp in the custom url, but at least then PTZ works on the dome. If I do the same to the Pi, Whhenever I try to control PTZ, the Pi’s SOAP tells me

web request received : /onvif/PTZ
DeviceService - Calltype : info, Data : Handling POST on /onvif/device_service
DeviceService - Calltype : received, Data : <s:Envelope xmlns:s=“http://www.w3.org/2003/05/soap-envelope” xmlns:a=“WS-Addressing 1.0 Namespace”><s:Header>adminhnQSk8GWCY91YLkqd8D8dZoAhxY=NBxYRTcPkIRVX5VNQ5SxLg==2021-02-18T09:50:27.689Z<a:To s:mustUnderstand=“1”>http://192.168.123.234:8081/onvif/device_service</a:To></s:Header><s:Body xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema”></s:Body></s:Envelope>
DeviceService - Calltype : error, Data : TypeError: Cannot read property ‘output’ of undefined

When you add the camera with the ONVIF tab and login to the camera you should get Profiles to select from. Do you get that?

No I don’t, NCS doesn’t seem to be able to do so whereas ODM can…

I assume you know why this is? :slight_smile:

Read this My IP camera support ONVIF but it do not show up in Netcam Studio

Thanks for the tip, but as I said; it’s not retreiving any profile… I even tried by forcing the profilename (as used in ODM) onto NCS by inserting it straight into server.config

       <SerializableSetting Category="Settings" Description="Token of the selected ONVIF Profile" Id="19" Key="OnvifProfileToken" ValueType="System.String" Visibility="Hidden">
        <ValueSerialized>CurrentProfile</ValueSerialized>

and is accepted but doesn’t do a lot.

Following up on your instructions I’ve also altered the “Unknown/Custom” url’s.

Binding DeviceService to http://192.168.123.234:8081/onvif/device_service
Binding MediaService to http://192.168.123.234:8081/onvif/media_service
Binding PTZService to http://192.168.123.234:8081/onvif/ptz_service
Binding ImagingService to http://192.168.123.234:8081/onvif/imaging_service

Whilst trying out the various paths according to the Pi server, it replies in different ways each time
when I set /onvif/ptz_service I receive:

PTZService - Calltype : info, Data : Attempting to bind to /onvif/ptz_service
PTZService - Calltype : info, Data : Trying PTZ from path /onvif/ptz_service
PTZService received request GetConfigurations

When I try “/onvif/media_service”, I receive errors. same for “/onvif/Imaging_service” and “/onvif/Device_service”, always the same errors:

ImagingService - Calltype : error, Data : TypeError: Cannot read property ‘output’ of undefined

But when I declare only /onvif/ptz, my SOAP responses look a lot cleaner It only says:

web request received : /onvif/ptz
Unfortunately, still without movement :frowning:

Finally I attach the response from the Pi as received first command from ODM and second from NCS, both using the /onvif/ptz_service

From ODM: (success)
>PTZService - Calltype : info, Data : Attempting to bind to /onvif/ptz_service
PTZService - Calltype : info, Data : Trying PTZ from path /onvif/ptz_service
PTZService received request Stop
Continuous PTZ 0 0 0
PTZService - Calltype : replied, Data : <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope” xmlns:i0=“http://www.onvif.org/ver10/ptz/wsdl” xmlns:tns=“http://tempuri.org/” xmlns:tm=“http://microsoft.com/wsdl/mime/textMatching/” xmlns:tptz=“http://www.onvif.org/ver20/ptz/wsdl” xmlns:tt=“http://www.onvif.org/ver10/schema”>soap:Body<tptz:StopResponse xmlns:tptz=“http://www.onvif.org/ver20/ptz/wsdl” xmlns=“http://www.onvif.org/ver20/ptz/wsdl”></tptz:StopResponse></soap:Body></soap:Envelope>
PTZService - Calltype : info, Data : Handling POST on /onvif/ptz_service
PTZService - Calltype : received, Data : <s:Envelope xmlns:s=“http://www.w3.org/2003/05/soap-envelope” xmlns:a=“WS-Addressing 1.0 Namespace”><s:Header>adminCCgpUV/dkFryv2BiPgP2v1hNzDE=R+pzCVh/0gjLo10I3K2e4g==2021-02-19T02:59:06.936Z<a:To s:mustUnderstand=“1”>http://192.168.123.234:8081/onvif/ptz_service</a:To></s:Header><s:Body xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema”></s:Body></s:Envelope>

FROM NCS: (FAIL)

PTZService - Calltype : info, Data : Attempting to bind to /onvif/ptz_service
PTZService - Calltype : info, Data : Trying PTZ from path /onvif/ptz_service
PTZService received request GetConfigurations
PTZService - Calltype : replied, Data : <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap=“http://www.w3.org/2003/05/soap-envelope” xmlns:i0=“http://www.onvif.org/ver10/ptz/wsdl” xmlns:tns=“http://tempuri.org/” xmlns:tm=“http://microsoft.com/wsdl/mime/textMatching/” xmlns:tptz=“http://www.onvif.org/ver20/ptz/wsdl” xmlns:tt=“http://www.onvif.org/ver10/schema”>soap:Body<tptz:GetConfigurationsResponse xmlns:tptz=“http://www.onvif.org/ver20/ptz/wsdl” xmlns=“http://www.onvif.org/ver20/ptz/wsdl”><tptz:PTZConfiguration token=“ptz_config_token_0”><tt:Name xmlns:tt=“http://www.onvif.org/ver10/schema”>PTZ Configuration</tt:Name><tt:UseCount xmlns:tt=“http://www.onvif.org/ver10/schema”>1</tt:UseCount><tt:NodeToken xmlns:tt=“http://www.onvif.org/ver10/schema”>ptz_node_token_0</tt:NodeToken><tt:DefaultAbsolutePantTiltPositionSpace xmlns:tt=“http://www.onvif.org/ver10/schema”>http://www.onvif.org/ver10/tptz/PanTiltSpaces/PositionGenericSpace</tt:DefaultAbsolutePantTiltPositionSpace><tt:DefaultAbsoluteZoomPositionSpace xmlns:tt=“http://www.onvif.org/ver10/schema”>http://www.onvif.org/ver10/tptz/ZoomSpaces/PositionGenericSpace</tt:DefaultAbsoluteZoomPositionSpace><tt:DefaultRelativePanTiltTranslationSpace xmlns:tt=“http://www.onvif.org/ver10/schema”>http://www.onvif.org/ver10/tptz/PanTiltSpaces/TranslationGenericSpace</tt:DefaultRelativePanTiltTranslationSpace><tt:DefaultRelativeZoomTranslationSpace xmlns:tt=“http://www.onvif.org/ver10/schema”>http://www.onvif.org/ver10/tptz/ZoomSpaces/TranslationGenericSpace</tt:DefaultRelativeZoomTranslationSpace><tt:DefaultContinuousPanTiltVelocitySpace xmlns:tt=“http://www.onvif.org/ver10/schema”>http://www.onvif.org/ver10/tptz/PanTiltSpaces/VelocityGenericSpace</tt:DefaultContinuousPanTiltVelocitySpace><tt:DefaultContinuousZoomVelocitySpace xmlns:tt=“http://www.onvif.org/ver10/schema”>http://www.onvif.org/ver10/tptz/ZoomSpaces/VelocityGenericSpace</tt:DefaultContinuousZoomVelocitySpace><tt:DefaultPTZSpeed xmlns:tt=“http://www.onvif.org/ver10/schema”><tt:PanTilt x=“1” y=“1” space=“http://www.onvif.org/ver10/tptz/PanTiltSpaces/GenericSpeedSpace”></tt:PanTilt><tt:Zoom x=“1” space=“http://www.onvif.org/ver10/tptz/ZoomSpaces/ZoomGenericSpeedSpace”></tt:Zoom></tt:DefaultPTZSpeed><tt:DefaultPTZTimeout xmlns:tt=“http://www.onvif.org/ver10/schema”>PT5S</tt:DefaultPTZTimeout></tptz:PTZConfiguration></tptz:GetConfigurationsResponse></soap:Body></soap:Envelope>

1 Like

I’ll be frank,
I had also signaled this behaviour to the developers of the Raspberry Onvif Server. Yesterday evening I was told that there’s a bug in NCS, (I dont know If you had already noticed this Hendrik, and maybe therefore “Liked” this post?)

The problem is a bug in NCS.
They are sending GetProfiles requests to the wrong ONVIF URL.
They are sending GetProfiles to a URL ending /onvif/device_service
But GetProfiles is a Media command and not a Device command and needs to be sent to the URL given by the GetCapabilities command and the Media XADDR .
If NCS fix their bug then I expect it will work fine.

Can you confirm this as a bug, Hendrik? And is there anything I can do to further assist?

Thanks

Hi,
I received an email yesterday and I forward that to our developers for analysis what is wrong.
Thanks,
Henrik

Thank YOU Henrik,

Do you have any information yet on this ? Is it something that can be fixed, and if so, is there a roadmap for the next release?

Any update on this matter?

Bump…

Is there any news?

It’s in the proces!
A standard is not always a standard.