Activity for Stephen Rhodes

  • Stephen Rhodes Stephen Rhodes posted a comment on ticket #3

    Hello, Working with Onvif can be a frustrating experience as the standard is not well followed by camera makers. Just out of curiosity, I tested all of my cameras to see the response to the reboot command. Dahua - Success Hikvision - Success Amcrest - Success Axis - Success Foscam - Success Reolink - Success Lorex - Success HiKam - Success Trendnet - Success Utalert - Failure You could randomly select any Onvif parameter and find in this set of cameras at least one that does not properly implement...

  • Stephen Rhodes Stephen Rhodes posted a comment on ticket #3

    Thank you for reaching out, sorry for your troubles. I can pretty much guarantee that this is an issue with the camera. Most cameras have improper implementation of onvif, so it not surprising that some functions don't work properly. As an aside, there is a more developed version of the program on github at https://github.com/sr99622/libonvif that includes a command line program and a GUI program for working with cameras. Best Regards, Stephen

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Taking another look at your screenshot I notice that you are using Amcrest cameras. There are a couple of things that Ovif Device Manager does better with these cameras. One is the time setting regarding Daylight Savings Time. If the camera and the computer have different settings for DST, Amcrest will not respond. I think Onvif Device Manager has a routine that will test the camera with a modified time stamp to check for misalignment between the computer and the camera with regards to DST. You can...

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Hi LH, Thank you so much for your message, I'm sorry to hear of the trouble. My best guess would be that there is some Windows firewall issue that is preventing libonvif from communicating over the network. It may not be immediately obvious as the library uses lower level UDP protocols which may be firewalled separately from standard TCP traffic. Libonvif uses messages which are virtually identical to Onvif Device Manager in most situations, so they should be able to communicate in much the same...

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Hi Kevin, Thank you so much for your kind words, I'm glad you found the library to be useful. If I remember correctly, the fillRTSP command populates the data structure with the necessary tokens so that you can use other commands such as VideoEncoderConfiguration without further initialization. There is an existing copy of the code for libonvif on github if you would like to fork from there. My apologies for the late reply, I hadn't checked the comments for a while. If you need more help, feel free...

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Hi Nathan, Thank you so much for your comment. It looks like you are pretty close, so you have probably figured this out already, my apologies for the late response. I think what you are looking for is the ./configure CPPFLAGS="-I/usr/include/libxml2" setting for the build. You can also get a lot of information from the ./configure --help command which will give you information about the settings needed for the program.

  • Stephen Rhodes Stephen Rhodes modified a comment on discussion General Discussion

    Hi Bruce, Thank you so much for your message, my apologies for the late reply. I have not implemented the event subscriber in the library. It certainly would be possible to add it, as I had gone through the exercise during the development process. The command to subscribe is the same format as for the other ONVIF commands. There are a number of issues with using this feature however, which dissuaded me from incorporating it into the release version. I found that many cameras do not have this feature....

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Hi Bruce, Thank you so much for your message, my apologies for the late reply. I have not implemented the event subscriber in the library. It certainly would be possible to add it, as I had gone through the exercise during the development process. The command to subscribe is the same format as for the other ONVIF commands. There are a number of issues with using this feature however, which dissuaded me from incorporating it into the release version. I found that many cameras do not have this feature....

  • Stephen Rhodes Stephen Rhodes posted a comment on ticket #1

    Hi Kat, If you are interested in recording the stream, you can use the library live555 to do so. The library is very well developed and has a number of good examples. It's a bit quirky so it takes some getting used to, but once you get started it will serve you well. The basic idea is that you supply the RTSP string and the live555 library will manage the connection and stream the raw data to disk. You will need to make a few modifications to the sample program but they are not too hard. Once you...

  • Stephen Rhodes Stephen Rhodes modified a comment on ticket #1

    Hi Kat, Thank you for your message. Admittedly, the documentation for libonvif is a bit sparse. You can find a list of all the functions exported by the library in the header file, onvif.h For the most part, these functions are wrappers around the onvif protocol and will follow the convention set in the wsdl files. For example. getVideoEncoderConfigurationOptions is derived from the media wsdl https://www.onvif.org/ver10/media/wsdl/media.wsdl and uses the same parameters set in there. You will need...

  • Stephen Rhodes Stephen Rhodes posted a comment on ticket #1

    Hi Kat, Thank you for your message. Admittedly, the documentation for libonvif is a bit sparse. You can find a list of all the functions exported by the library in the header file, onvif.h For the most part, these functions are wrappers around the onvif protocol and will follow the convention set in the wsdl files. For example. getVideoEncoderConfigurationOptions is derived from the media wsdl https://www.onvif.org/ver10/media/wsdl/media.wsdl and uses the same parameters set in there. You will need...

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    The issue of cameras responding twice is easily fixed by keeping track of the xaddrs sent by the camera in the main program using libonvif. This is really more of a higher level function which is why it is not addressed by libonvif itself. It's interesting that there is a camera that takes too long to respond. Your approach may be correct, it's hard to tell without testing. I guess if your fix doesn't affect otherwise properly functioning cameras then you should be good to go. Checking for the 169...

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Hi David, Good to hear from you, hope you enjoyed your break. It looks like the axis camera has both a wireless and wired Ethernet connection. The 169 subnet IP address looks to be the unconnected port. Libonvif only checks the first address and uses that one. If you reboot the axis camera in it's current state it should come back with the 10 subnet address as the first address. Give the axis camera a reboot to try that and see if it works. It will probably be worthwhile to add some code to libonvif...

  • Stephen Rhodes Stephen Rhodes modified a comment on discussion General Discussion

    Establishing communication with the cameras is a multi step process, so I guess the first troubleshooting effort would be identifying where in the process the failure is occurring. The first step is the broadcast and response via UDP between the PC and the camera, If the libonvif_test program sees the camera and prompts for the username and password, you know this step has been successful. The next step is for the PC to query the camera for its date and time info. Note that this step does not require...

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Establishing communication with the cameras is a multi step process, so I guess the first troubleshooting effort would be identifying where in the process the failure is occurring. The first step is the broadcast and response via UDP between the PC and the camera, If the libonvif_test program sees the camera and prompts for the username and passord, you know this step has been successful. The next step is for the PC to query the camera for its date and time info. Note that this step does not require...

  • Stephen Rhodes Stephen Rhodes modified a comment on discussion General Discussion

    Hi David, thank you for your message. It's helpful to know the type of camera that you are working with as they all are somewhat different in their implementations. If I have to guess, I would say that it is Axis cameras you are working with. I have seen them repeated on discovery as sometimes they will answer twice to the discovery message. Something I have seen with that camera is that authentication can fail if the Daylight Savings Time setting is not consistent between the camera and the computer....

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    Hi David, thank you for your message. It's helpful to know the type of camera that you are working with as they all are somewhat different in their implementations. If I have to guess, I would say that it is Axis cameras you are working with. I have seen them repeated on discovery as sometimes they will answer twice to the discovery message. Something I have seen with that camera is that authentication can fail if the Daylight Savings Time setting is not consistent between the camera and the computer....

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Discovery

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Discovery

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Discovery

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Discovery

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Discovery

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Rationale

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Home

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Home

  • Stephen Rhodes Stephen Rhodes renamed a wiki page

    PTZ Functions

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Home

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Rationale

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Home

  • Stephen Rhodes Stephen Rhodes created a wiki page

    Rationale

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Discovery

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Home

  • Stephen Rhodes Stephen Rhodes created a wiki page

    Discovery

  • Stephen Rhodes Stephen Rhodes created a wiki page

    PTZ FUNCTIONS

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Home

  • Stephen Rhodes Stephen Rhodes modified a wiki page

    Home

  • Stephen Rhodes Stephen Rhodes posted a comment on discussion General Discussion

    PTZ control is implemented by libonvif. The simplest example would be a gotoPreset call which will position the camera at one of the preset positions. It takes a string argument indicating the position which will usually be a string representation of an integer, e.g. "1", and the camera's OnvifData structure which has been initialized by the discovery function illustrated in the example program. The example commands shown below assume that there is an initialized struct OnvifData *onvif_data int...

1