Gsoap based ONVIF C++ lib: including server and client, support ProfileS and ProfileG, support Event. This lib will be used by http://sourceforge.net/projects/onvifmanager/
Thanks John Blowers for Media PTZ Device Receiver Imaging contributions.
ONVIF C++ lib, support ProfileS
Home Page: https://linkingvision.com/
License: GNU General Public License v3.0
Gsoap based ONVIF C++ lib: including server and client, support ProfileS and ProfileG, support Event. This lib will be used by http://sourceforge.net/projects/onvifmanager/
Thanks John Blowers for Media PTZ Device Receiver Imaging contributions.
In line 363 & 379 of onvifclientmedia.hpp.
The parameter 'profileToken' is not handled. Should be requested to the camera.
I suggest to add the following code to line 379.
SnapshotUriReq.ProfileToken = profileToken;
Some camera do not response correctly without the profileToken.
Hello,
I tried to rum the onvifclientwin32 project but got some error claiming about virtual definitions.
Error C2259 'OnvifClientEventNotify': cannot instantiate abstract class onvifclient c:\devsoap\onvifcpplib\example\client\onvifclientwin32\onvifclient.cpp 69
I tested it with MSVC2015
1>c:\devsoap\onvifcpplib\example\client\onvifclientwin32\onvifclient.cpp(69): error C2259: 'OnvifClientEventNotify': cannot instantiate abstract class
1> c:\devsoap\onvifcpplib\example\client\onvifclientwin32\onvifclient.cpp(69): note: due to following members:
1> c:\devsoap\onvifcpplib\example\client\onvifclientwin32\onvifclient.cpp(69): note: 'int PullPointSubscriptionBindingService::PullMessages(_tev__PullMessages *,_tev__PullMessagesResponse &)': is abstract
virtual int PullMessages(_tev__PullMessages *tev__PullMessages, _tev__PullMessagesResponse *tev__PullMessagesResponse)
{return SOAP_OK;}
What can I do ?
Thanks in advance!
I need develop a server site running on a stream server. should support the descovey, login,ptz,stream ...
Thanks again!
Do you have a plan for an iOS version?
When someone want to change struct soap
attribute, such as soap::connect_timeout
to get a more friendly experience when destination port is closed, there are no means to achieve this, because OnvifClientDevice
class member variable DeviceBindingProxy deviceBindProxy;
is private, and no method to get/set it. I think make these variable protected, and we can then inherit class OnvifClientDevice
to custom soap attribute through DeviceBindingProxy deviceBindProxy;
I do think this will make library more extendable or is there any problem I didn't consider?
Appreciate your answers.
I have 3 Onvif cameras with PTZ. I have written a small demo program that is just using the PTZ ContinuousMove part of your library. It works with one camera. Are there any incompatibility issues known?
The error message of the 2nd cameras is: Detail: The requested profile token ProfileToken does not exist. SOAP 1.2 fault: SOAP-ENV:Sender ["":NoProfile] "No Profile"
Connected with the 3rd camera, the method OnvifClientPTZ::ContinuousMove returns 1 (probably =SOAP_CLI_FAULT)
What could be the matter?
I try to open example/client with Visual Studio 2013
When I Compile the code ,I got error can not open file "onvifcpplib.lib"
I think this lib is missing
Compiling under windows 7 64 bit, I copied libeay32.dll
and libssl32.dll
from 3rdparty\openssl-1.0.1g\lib\
to win32\Debug
directory, the error of libeay32.dll 352 ordinal not found
cames up, and the application stops.
What license should we adhere to if we choose to use this library?
Hi,
I have implemented server side with one thread per each service. Now, i want to get all these services into one thread and listening on the same port.
Is it possible since the soap instance is not shared by the services? If possible, can you provide a small example?
Thanks,
The example code in rapidonvif/onvif/example/example.cpp does not compile. I tried this command but it fails:
arm-linux-gnueabihf-g++ example/example.cpp -o example -Wall -Wextra -Wshadow -Wformat-security -Winit-self -Wmissing-prototypes -O2 -DLINUX -Iinclude -DUSE_WEBSOCKET -I/home/pi/projs/evd/onvif_output/output/raspberry-pi3-32bit/include -I./include -I./include/video -I./src/ -I../3rdparty/live555/BasicUsageEnvironment/include -I../3rdparty/live555/groupsock/include -I../3rdparty/live555/liveMedia/include -I../3rdparty/live555/UsageEnvironment/include -I../3rdparty/live555/live555/include/ -I../3rdparty/civetweb/include/ -DNDEBUG -Os out.linux/build/../3rdparty/civetweb/src/CivetServer.o out.linux/build/src/onvifagentlib.o out.linux/build//src/tinyprocess/process_unix.o out.linux/build/src/tinyprocess/process.o out.linux/build/include/video/h264_bit_reader.o out.linux/build/include/video/h264_parser.o out.linux/build/include/video/h5s_h264_sink.o out.linux/build/include/video/h5slib.o out.linux/build/include/onvifclidevice.pb.o out.linux/build/include/onvifclimedia.pb.o out.linux/build/include/onvifcli.pb.o out.linux/build/include/onvifcliptz.pb.o out.linux/build/../3rdparty/civetweb/src/civetweb.o out.linux/build/example/example.o -lpthread -lm -lrt -ldl -L/home/pi/projs/evd/onvif_output/output/raspberry-pi3-32bit/lib -llive555 -lprotobuf -lssl -lcrypto -lpthread -ldl -lstdc++ -lm -Wl,-Bdynamic -lcrypt
Hi,
When I attempt to run the code from the ReadMe file, a lot of errors show up.
example:
"EVP_CIPHER_CTX' does not name a type"
"'EVP_CIPHER' does not name a type"
I have used only the "onvifclient.hpp" as the header file.
Did I miss out on anything?
Thanks in advance!
Hello,
I made some tests with this library.
There is lot of memory leaks and segfault due to non return value check.
I do not recommand this library on production tools.
Upon running the example program "../output/raspberry-pi2-32bit/bin/onvifagentcli" on a raspberry PI I2
I get the repeated error message:
sh: 1: onvifagent: not found
include/onvifagentlib.hpp 109 onvif Agent process exit !!!
I had some problems getting it to make, but after installing automake tools(not mentioned in the readme) it seemed to finish make after compiling the example program. There were a ton of warnings, mostly about shadowed classes. I also found that "onvifagent.o" was never made. I found no make recipe for it for Linux although there were instructions on how to build it for windows.
An example of how compile ones own program would be nice. A complete g++ command line or a make file which compiles just the files in the current directory. There seems to be a lot of search paths required.
All I need to do is goto a camera's PTZ preset. Can you give an example?
Thanks,
Tom
I have followed the steps for linux build in order on Ubuntu 17.10.
The make command results in this two errors:
g++ -o onvifagent -DLINUX -Os -fPIC -DUSE_WEBSOCKET -DWITH_OPENSSL -DWITH_DOM -DWITH_PURE_VIRTUAL -DWITH_NONAMESPACES src/webserver.o ./lib/linux//libonvifcpplib.a -L/output//lib -g -L../../3rdparty/openssl-linux/ -lprotobuf -lssl -lcrypto -lpthread -ldl -lstdc++ -lm -Wl,-Bdynamic -lcrypt
g++: error: ./lib/linux//libonvifcpplib.a: No such file or directory
Makefile:138: recipe for target 'onvifagent' failed
make[1]: *** [onvifagent] Error 1
make[1]: *** Waiting for unfinished jobs....
g++ -o onvifagentcli -Wall -Wextra -Wshadow -Wformat-security -Winit-self -Wmissing-prototypes -O2 -DLINUX -Iinclude -DUSE_WEBSOCKET -I/output//include -I./include -I./include/video -I./src/ -I../3rdparty/live555//BasicUsageEnvironment/include -I../3rdparty/live555//groupsock/include -I../3rdparty/live555//liveMedia/include -I../3rdparty/live555//UsageEnvironment/include -I../3rdparty/live555//live555/include/ -I../3rdparty/civetweb/include/ -DNDEBUG -Os out.linux/build//../3rdparty/civetweb/src/CivetServer.o out.linux/build//src/onvifagentlib.o out.linux/build//src/tinyprocess/process_unix.o out.linux/build//src/tinyprocess/process.o out.linux/build//include/video/h264_bit_reader.o out.linux/build//include/video/h264_parser.o out.linux/build//include/video/h5s_h264_sink.o out.linux/build//include/video/h5slib.o out.linux/build//include/onvifclidevice.pb.o out.linux/build//include/onvifclimedia.pb.o out.linux/build//include/onvifcli.pb.o out.linux/build//include/onvifcliptz.pb.o out.linux/build//../3rdparty/civetweb/src/civetweb.o out.linux/build//example/example.o -lpthread -lm -lrt -ldl -L/output//lib -llive555 -lprotobuf -lssl -lcrypto -lpthread -ldl -lstdc++ -lm -Wl,-Bdynamic -lcrypt
/usr/bin/ld: cannot find -llive555
/output//lib/libssl.so: file not recognized: File truncated
collect2: error: ld returned 1 exit status
Makefile:148: recipe for target 'onvifagentcli' failed
make[1]: *** [onvifagentcli] Error 1
make[1]: Leaving directory '/home/visionstudio/Documents/Github/rapidonvif/onvif'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2
I tried to install manually live555 library.
Also, I tried to call the command with sudo.
Is this incompatible with ubuntu 17.20 or ubuntu in general?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.