Closed boc99 closed 1 year ago
What distro and version are you using? There might be an alternative source to get meson like PIP instead of apt.
Let me know and I could look it up.
Linux mint 21.1 pip 23.0.1 meson 0.61.2-1
Il giorno sab 18 mar 2023 alle ore 00:07 Quedale @.***> ha scritto:
What distro and version are you using? There might be an alternative source to get meson like PIP instead of apt.
Let me know and I could look it up.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1474497400, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZQIGQEOFL5BVPAZCLTW4TVB5ANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
I managed to get it to work. After the scan find the camera No information is reported. I tried with two different cameras
Il giorno sab 18 mar 2023 alle ore 00:07 Quedale @.***> ha scritto:
What distro and version are you using? There might be an alternative source to get meson like PIP instead of apt.
Let me know and I could look it up.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1474497400, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZQIGQEOFL5BVPAZCLTW4TVB5ANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
What are the camera models?
This tool should be compatible with any ONVIF camera that implements WS-Discovery.
This tool is still a WIP and doesn't implement the entire ONVIF specification. For now, it should work NVTs.
Honwywell H4W4PER2 hIKVISION DS-2CD22512F
They are visible on Onvif Manager windows which, unlike OnvifDeviceManager, asks for a user and password
Il giorno sab 18 mar 2023 alle ore 21:23 Quedale @.***> ha scritto:
What are the camera models?
This tool should be compatible with any ONVIF camera that implements WS-Discovery https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwj8xuGSp-b9AhUrlIkEHYjsC3IQFnoECBEQAQ&url=https%3A%2F%2Fwww.onvif.org%2Fwp-content%2Fuploads%2F2016%2F12%2FONVIF_Feature_Discovery_Specification_16.07.pdf&usg=AOvVaw1_SxX2uKThjbQgMHtyBYkM .
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1474982882, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZSU36KKY4NCS65X5ELW4YKSVANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
Thank you for this feedback. The fact that they are discoverable on the official ONVIF Manager on windows confirm they should be compatible. (This eliminates the devices)
Something else to look into is the network configuration. Can you ping the camera's IPs from your linux machine? If you are running it from a VM configured with a NAT NIC, the discovery will be limited to the virtual NAT network. Using a bridged adapter should resolve it in such case.
Could you also provide the application logs?
If everything is configured correctly and nothing shows up in the application logs, capturing messages using wireshark might be helpful.
Looking forward to hear back.
Thanks!
Please note that I personally only worked off open source Onvif camera solution like rpos, since I'm too broke to afford an official Onvif Camera with backchannel. (Backchannel was my focus until I finished it recently)
I'm looking forward to support official devices if you are willing to help out.
HI I'm sure I'm willing to help you My linux machine is real not virtual Even the windows 10 machine is real Ping is ok The difference I noticed : Onvifmanager doesn't ask me to authenticate to the camera That window finds it and asks me to login
Sorry if my english is poor
Il giorno dom 19 mar 2023 alle ore 17:46 Quedale @.***> ha scritto:
Please note that I personally only worked off open source Onvif camera solution like rpos https://github.com/Quedale/rpos, since I'm too broke to afford an official Onvif Camera with backchannel. (Backchannel was my focus until I finished it recently)
I'm looking forward to support official devices if you are willing to help out.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1475317450, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZXWTKJHVNG455LBPQDW44Z6FANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
Thank for the help!
The authentication happens after the device has been discovered. The discovery is unprotected by design. The response message from the camera should contain the "DeviceService" url, which would triggers the authentication.
ONVIF Device Manager on windows uses a different approach than I do. Since you provide the credentials before the discovery, it is capable to retrieving the camera snapshot immediately after the discovery. This approach requires all camera to use the same credentials, which I find is a security risk.
This project uses a different approach where you provide credentials for each individual cameras after the discovery. The discovery will show limited camera details until credentials are provided. Unfortunately I didn't include the ability to save credentials yet, so it has to be entered every time.
A protected device should show up like this after discovery:
After selecting it it should ask for credentials:
After providing the credentials it should finally show the stream (The snapshot not updating is a bug I will fix soon):
That being said, you don't seem to get a response from the camera at all. I will build a Linux Mint 21 machine and test it to see if it blocks it for some reason.
Until then, can you provide the application logs after running at least one scan please?
Note : The screenshot includes my local changes and may look slightly different than what you have.
HI.
This is what I see .
[image: Schermata del 2023-03-21 10-19-26.png]
But it doesn't go further even by clicking on the address
Il giorno mar 21 mar 2023 alle ore 01:56 Quedale @.***> ha scritto:
Thank for the help!
The authentication happens after the device has been discovered. The discovery is unprotected by design. The response message from the camera should contain the "DeviceService" url, which would triggers the authentication.
ONVIF Device Manager on windows uses a different approach than I do. Since you provide the credentials before the discovery, it is capable to retrieving the camera snapshot immediately after the discovery. This approach requires all camera to use the same credentials, which I find is a security risk.
This project uses a different approach where you provide credentials for each individual cameras after the discovery. The discovery will show limited camera details until credentials are provided. Unfortunately I didn't include the ability to save credentials yet, so it has to be entered every time.
A protected device should show up like this after discovery: [image: image] https://user-images.githubusercontent.com/13303174/226494625-4b59ade5-f3d5-4c27-812b-1cea4d4a9c4b.png
After selecting it it should ask for credentials: [image: image] https://user-images.githubusercontent.com/13303174/226494689-5e497242-da2c-499c-9cf6-eb000e676666.png
After providing the credentials it should finally show the stream (The snapshot not updating is a bug I will fix soon): [image: image] https://user-images.githubusercontent.com/13303174/226495106-706dc093-ce98-4afa-b11b-88df9a8336dd.png
That being said, you don't seem to get a response from the camera at all. I will build a Linux Mint 21 machine and test it to see if it blocks it for some reason.
Until then, can you provide the application logs after running at least one scan please?
Note #1 https://github.com/Quedale/OnvifDeviceManager/issues/1: The screenshot includes my local changes and may look slightly different than what you have.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1477140879, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZTHB5HQS2QDXV2BTSLW5D4D3ANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
The picture didn't make it via email apparently.
All I see is this:
[image: Schermata del 2023-03-21 10-19-26.png]
I'll review the authentication call back since I already have a bug to fix there. I didn't work much with protected device yet to make testing easier, but I'll put back the focus on it.
Just a small update that I did find issues in the credentials dialog callback.
I'll try to get it fixed in the next commit since this is essentially breaking the application.
Update: I've identified the issue down to some multi-thread handling of soap pointers. My local workspace is now working as expected. I just need to polish and clean up the code before I commit it.
It should hopefully be ready this week.
Thanks for the patience!
I've added several changes in the last commit which most likely include a fix for your issue. There was a core issue handling multi-threaded soap calls, which caused issues after authentication.
The changes are also included in the subprojects "OnvifSoapLib" and "OnvifDiscoveryLib". For the sake of simplicity you can run the following commands to remove them before rebuilding the project:
rm -rf subprojects/OnvifDiscoveryLib
rm -rf subprojects/OnvifSoapLib
git pull
./autogen.sh %YOUR_CONFIG_PARAMS%
autogen.sh will automatically download, configure and compile missing projects.
Note that OnvifSoapLib takes a while to build from scratch, so alternatively you can find and remove "onvifdisco.pc" and "onvifsoap.pc" instead of removing the entire projects. autogen.sh will pull the latest changes and make an incremental build.
Let me know how that goes!
HI, i removed everything i recompiled Here it stops
lib/libcrypto.a(dso_dlfcn.o): in function dlfcn_unload': dso_dlfcn.c:(.text+0x6b8): undefined reference to
dlclose'
collect2: error: ld returned 1 exit status
make[5]: [Makefile:435: wsdl2h] Errore 1
make[5]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap/wsdl»
make[4]: [Makefile:357: all] Errore 2
make[4]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap/wsdl»
make[3]: [Makefile:828: all-recursive] Errore 1
make[3]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap»
make[2]: [Makefile:456: all] Errore 2
make[2]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap»
make[1]: [Makefile:473: all-recursive] Errore 1
make[1]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8»
make: [Makefile:381: all] Errore 2
Make failed gsoap-2.8
Il giorno mer 29 mar 2023 alle ore 06:08 Quedale @.***> ha scritto:
I've added several changes in the last commit which most likely include a fix for your issue. There was a core issue handling multi-threaded soap calls, which caused issues after authentication.
The changes are also included in the subprojects "OnvifSoapLib https://github.com/Quedale/OnvifSoapLib" and "OnvifDiscoveryLib https://github.com/Quedale/OnvifDiscoveryLib". For the sake of simplicity you can run the following commands to remove them before rebuilding the project:
rm -rf subprojects/OnvifDiscoveryLib rm -rf subprojects/OnvifSoapLib git pull ./autogen.sh %YOUR_CONFIG_PARAMS%
autogen.sh will automatically download, configure and compile missing projects.
Note that OnvifSoapLib takes a while to build from scratch, so alternatively you can find and remove "onvifdisco.pc" and "onvifsoap.pc" instead of removing the entire projects. autogen.sh will pull the latest changes and make an incremental build.
Let me know how that goes!
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1487917246, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZX4QOW65JZE5S2QKTLW6OYSZANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
It looks like you accidentally removed "gsoap-2.8" instead of "OnvifDiscoveryLib" and "OnvifSoapLib". I'm not sure how you got that error the second time, since nothing changed in this project.
What do you mean by i removed everything
?
Hi , in the subproyects directory there are gsoap-2.8 and openssl. I would have expected OnviifSoapLib and OnvifDiscoveryLib but I don't see them SSDs also fail I replaced it
Il giorno mer 29 mar 2023 alle ore 06:08 Quedale @.***> ha scritto:
I've added several changes in the last commit which most likely include a fix for your issue. There was a core issue handling multi-threaded soap calls, which caused issues after authentication.
The changes are also included in the subprojects "OnvifSoapLib https://github.com/Quedale/OnvifSoapLib" and "OnvifDiscoveryLib https://github.com/Quedale/OnvifDiscoveryLib". For the sake of simplicity you can run the following commands to remove them before rebuilding the project:
rm -rf subprojects/OnvifDiscoveryLib rm -rf subprojects/OnvifSoapLib git pull ./autogen.sh %YOUR_CONFIG_PARAMS%
autogen.sh will automatically download, configure and compile missing projects.
Note that OnvifSoapLib takes a while to build from scratch, so alternatively you can find and remove "onvifdisco.pc" and "onvifsoap.pc" instead of removing the entire projects. autogen.sh will pull the latest changes and make an incremental build.
Let me know how that goes!
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1487917246, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZX4QOW65JZE5S2QKTLW6OYSZANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
RIP SSD! :headstone:
That had to potential to wast a lot of your time. At least you found it quickly.
Hi gsoap 2.8.91-2
g++ -I/usr/lib/ssl/include -DWITH_OPENSSL -DWITH_GZIP
-DWSDL2H_IMPORT_PATH="\"/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/build/dist/share/gsoap/WS\""
-g -O2 -L../../gsoap/wsdl -I../../gsoap -I../../gsoap/plugin -o wsdl2h
wsdl2h-wsdl2h.o wsdl2h-wsdl.o wsdl2h-wadl.o wsdl2h-schema.o wsdl2h-types.o
wsdl2h-service.o wsdl2h-soap.o wsdl2h-mime.o wsdl2h-wsp.o wsdl2h-bpel.o
wsdl2h-wsdlC.o wsdl2h-httpda.o wsdl2h-smdevp.o ../../gsoap/libgsoapssl++.a
-L/usr/lib/ssl/lib -lssl -lcrypto -lz -lpthread
/usr/bin/ld:
/home/boc/OnvifDeviceManager/subprojects/openssl/build/dist/lib/../lib/libcrypto.a(dso_dlfcn.o):
in function dlfcn_globallookup': dso_dlfcn.c:(.text+0x17): undefined reference to
dlopen'
/usr/bin/ld: dso_dlfcn.c:(.text+0x2a): undefined reference to dlsym' /usr/bin/ld: dso_dlfcn.c:(.text+0x35): undefined reference to
dlclose'
/usr/bin/ld:
/home/boc/OnvifDeviceManager/subprojects/openssl/build/dist/lib/../lib/libcrypto.a(dso_dlfcn.o):
in function dlfcn_bind_func': dso_dlfcn.c:(.text+0x1b7): undefined reference to
dlsym'
/usr/bin/ld: dso_dlfcn.c:(.text+0x282): undefined reference to dlerror' /usr/bin/ld: /home/boc/OnvifDeviceManager/subprojects/openssl/build/dist/lib/../lib/libcrypto.a(dso_dlfcn.o): in function
dlfcn_load':
dso_dlfcn.c:(.text+0x2f5): undefined reference to dlopen' /usr/bin/ld: dso_dlfcn.c:(.text+0x369): undefined reference to
dlclose'
/usr/bin/ld: dso_dlfcn.c:(.text+0x3a5): undefined reference to dlerror' /usr/bin/ld: /home/boc/OnvifDeviceManager/subprojects/openssl/build/dist/lib/../lib/libcrypto.a(dso_dlfcn.o): in function
dlfcn_pathbyaddr':
dso_dlfcn.c:(.text+0x466): undefined reference to dladdr' /usr/bin/ld: dso_dlfcn.c:(.text+0x4d7): undefined reference to
dlerror'
/usr/bin/ld:
/home/boc/OnvifDeviceManager/subprojects/openssl/build/dist/lib/../lib/libcrypto.a(dso_dlfcn.o):
in function dlfcn_unload': dso_dlfcn.c:(.text+0x6b8): undefined reference to
dlclose'
collect2: error: ld returned 1 exit status
make[5]: [Makefile:435: wsdl2h] Errore 1
make[5]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap/wsdl»
make[4]: [Makefile:357: all] Errore 2
make[4]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap/wsdl»
make[3]: [Makefile:828: all-recursive] Errore 1
make[3]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap»
make[2]: [Makefile:456: all] Errore 2
make[2]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/gsoap»
make[1]: [Makefile:473: all-recursive] Errore 1
make[1]: uscita dalla directory
«/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8»
make: [Makefile:381: all] Errore 2
Make failed gsoap-2.8
Il giorno mer 29 mar 2023 alle ore 14:27 Quedale @.***> ha scritto:
RIP SSD! 🪦
That had to potential to wast a lot of your time. At least you found it quickly.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1488510402, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZUNRHUOE565O45SON3W6QTE5ANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
maybe this is the problem : CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash '/home/boc/OnvifDeviceManager/subprojects/gsoap-2.8/missing' autoheader) aclocal.m4:17: warning: this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.
My version2.69 autoconf
Too sensitive to versions
The subproject gsoap-2.8 wasn't written by me. It's a library I use. I have no control over their dependencies.
That being said, I did build a Linux Mint 21 VM and I have autoconf 2.71 installed from apt. Your distro ins't up-to-date?
That being said, last week you did successfully build gsoap in order to compile the project. I highly doubt this is the cause now. Did you change the environment you are building it on?
The errors that I can see above are:
undefined reference to 'dlerror'
undefined reference to 'dlclose'
undefined reference to 'dlopen'
These symbols should be part of libdl
which should already be installed.
Do you still have libc6-dev
installed?
I rebuilt virtual mint 21 because it was giving me problems with the keyboard stopping working even though I replaced it. using a bluethoot keyboard it didn't show the pin for pairing. I recompiled everything and finally got the binary. I launched it here is what I see. It seems nothing has changed
Il giorno mer 29 mar 2023 alle ore 20:16 Quedale @.***> ha scritto:
The subproject gsoap-2.8 wasn't written by me. It's a library I use. I have no control over their dependencies.
That being said, I did build a Linux Mint 21 VM and I have autoconf 2.71 installed from apt. Your distro ins't up-to-date?
That being said, last week you did successfully build gsoap in order to compile the project. I highly doubt this is the cause now. Did you change the environment you are building it on?
The errors that I can see above are: undefined reference to 'dlerror' undefined reference to 'dlclose' undefined reference to 'dlopen'
These symbols should be part of libdl which should already be installed. Do you still have libc6-dev installed?
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1489082210, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZXOJQKUQRPOTVSY4VTW6R4ANANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
I don't see any screenshot in any of your posts. (It seems picture attachments don't make it through by emails)
Here's how it comes out:
Could you launch the application with the environment variable "GST_DEBUG=3" set and share the application logs?
At this point, I will really need the logs.
I just thought about the fact that this project currently only support H264 stream and AAC audio.
Honwywell H4W4PER2 - Supports H265 and H264 hIKVISION DS-2CD22512F - Supports H264 and MJPEG
If your cams are set to H265 and MJPEG. the player won't be able to render the stream yet. (I will eventually add support for those)
Hi @.***:~/OnvifDeviceManager/dist/bin$ ./onvifmgr EventQueuecreate... EventQueuestart... EventQueuestart... EventQueuestart... EventQueuestart... Using Gstreamer Version : 1.22.0.0 ProbMatchescreate... ProbMatchcreate... GTK Thread Dispatch... Found server ---------------- 1 Prob Match #0 ---------------- OnvifDevicecreate OnvifSoapClientcreate [http://192.168.1.102/onvif/device_service http:// [fe80::4619:b6ff:fe68:e132]/onvif/device_service] Created Device: protocol -- http ip : 192.168.1.102 port -- (null) DEBUG List Record :[0] 192.168.1.102:(null) NSLookup ... 192.168.1.102 ProbMatchesdestroy... ProbMatchdestroy... GTK Thread Dispatch Done... OnvifDevicedevice_createMediaSoap OnvifDevicedevice_getCapabilities OnvifSoapClientcreate [http://192.168.1.102/onvif/Media] OnvifDevicemedia_getSnapshotUri SOAP 1.2 fault SOAP-ENV:Sender ["http://www.onvif.org/ver10/error ":NotAuthorized] "The action requested requires authorization and the sender is not authorized" Detail: [no detail] ERROR : profile index out-of-bounds. GTK Thread Dispatch... GTK Thread Dispatch Done... Failed to get hostname ... Retrieved hostname : (null) switch_ui_page 1 update_details_page 0 No device selected... switch_ui_page 0 OnvifPlayerstop OnvifDevice__media_getStreamUri Error: soap struct state not initialized ERROR : profile index out-of-bounds. set location : (null)
(onvifmgr:1842): GLib-CRITICAL **: 20:46:15.385: g_str_has_prefix: assertion 'str != NULL' failed
(onvifmgr:1842): GStreamer-RTSP-CRITICAL : 20:46:15.385: gst_rtsp_url_parse: assertion 'urlstr != NULL' failed OnvifPlayerplay switch_ui_page 1 update_details_page 0 dev : 192.168.1.102 OnvifPlayerstop Errore di segmentazione (core dump creato) **@.:~/OnvifDeviceManager/dist/bin$ ./onvifmgr GST_DEBUG=3 EventQueuecreate... EventQueuestart... EventQueuestart... EventQueuestart... EventQueuestart... Using Gstreamer Version : 1.22.0.0 ProbMatchescreate... ProbMatchcreate... GTK Thread Dispatch... Found server ---------------- 1 Prob Match #0 ---------------- OnvifDevicecreate OnvifSoapClientcreate [http://192.168.1.102/onvif/device_service http:// [fe80::4619:b6ff:fe68:e132]/onvif/device_service] Created Device: protocol -- http ip : 192.168.1.102 port -- (null) DEBUG List Record :[0] 192.168.1.102:(null) NSLookup ... 192.168.1.102 GTK Thread Dispatch Done... ProbMatchesdestroy... ProbMatchdestroy... OnvifDevicedevice_createMediaSoap OnvifDevice__device_getCapabilities Errore di segmentazione (core dump creato) @.:~/OnvifDeviceManager/dist/bin$
Il giorno gio 30 mar 2023 alle ore 14:32 Quedale @.***> ha scritto:
I don't see any screenshot in any of your posts. (It seems picture attachments don't make it through by emails)
Here's how it comes out: [image: image] https://user-images.githubusercontent.com/13303174/228836043-ac66e4fa-cece-436a-8e09-1f1b43d58b8e.png
Could you launch the application with the environment variable "GST_DEBUG=3" set and share the application logs?
At this point, I will really need the logs.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1490222862, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZSNPPGGXK2YG3ZAHNTW6V4OTANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
Honwywell H4W4PER2 H264 hIKVISION DS-2CD22512F H264
Il giorno gio 30 mar 2023 alle ore 14:40 Quedale @.***> ha scritto:
I just thought about the fact that this project currently only support H264 stream and AAC audio.
Honwywell H4W4PER2 - Supports H265 and H264 hIKVISION DS-2CD22512F - Supports H264 and MJPEG
If your cams are set to H265 and MJPEG. the player won't be able to render the stream yet. (I will eventually add support for those)
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1490233207, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZS7C2UDT6NRUEVZY23W6V5LRANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
EDIT: Sorry I completely missed the log provided. I'll work from this and get back to you.
Okay, I think you get SOAP 1.2 fault SOAP-ENV:Sender ["http://www.onvif.org/ver10/error ":NotAuthorized]
when calling OnvifDevice_get_profiles
which leads to ERROR : profile index out-of-bounds.
.
There is no fallback, in case GetProfiles fails. According to the specs, there is no mention that ProfileToken is a mandatory field in order to make calls like GetSnapshotUri or GetStreamUri.
Let me make some adjustments so that it can use the default profile without needing additional authorization.
Until then, do you know why you don't have the necessary access? (I would like to understand the use-case) Does those camera support multiple profiles?
I also noticed that the port comes out null.
port -- (null)
I didn't handle this scenario and always expected a port. Let me put defaults 80 and 443 in place.
Thanks for this valuable feedback!
And another thing!!
I didn't realize that in the discovery there could be two address within one probe. (IPv4 and IPv6)
OnvifSoapClient__create [http://192.168.1.102/onvif/device_service http:// [fe80::4619:b6ff:fe68:e132]/onvif/device_service]
Thanks again, this is good stuff.
Onvif manager windows
Name HIKVISION DS-2CD2512F-I Onvif version 2.40 Url http://192.168.1.102/onvif/device_service http 80 rtsp 554 resolution 640x480 encoding h264 ONVIF discoverable
Once again I've made changes to OnvifDeviceManager, OnvifDiscoveryLib and OnvifSoapLib.
OnvifDiscoveryLib will now properly handle cameras with multiple IP addresses.
OnvifSoapLib will now attempt to use the default onvif profile if the soap call GetProfiles
fails (This is the reason it didn't work for you)
OnvifDeviceManager will temporarely defaults to the first ProbeMatch XAddr until networking preferences are added.
Here's a better script to pull and compile the subprojects changes. Run the following from the project's top directory:
rm subprojects/OnvifDiscoveryLib/build/dist/lib/pkgconfig/onvifdisco.pc
rm subprojects/OnvifSoapLib/build/dist/lib/pkgconfig/onvifsoap.pc
git pull
./autogen.sh %YOUR_CONFIG_PARAMS%
Only removing the ".pc" files will cause autogen.sh to perform an incremental build.
Let me know how that goes.
Thanks for the time you are putting on this, it is really helpful.
here is the result
OnvifDevicecreate OnvifSoapClientcreate [http://192.168.1.102/onvif/device_service] Created Device: protocol -- http ip : 192.168.1.102 port -- 80 DEBUG List Record :[0] 192.168.1.102:80 NSLookup ... 192.168.1.102 OnvifDevicedevice_createMediaSoap OnvifDevice__device_getCapabilities GTK Thread Dispatch Done... ProbMatchesdestroy... ProbMatchdestroy... OnvifSoapClientcreate [http://192.168.1.102/onvif/Media] OnvifDevicemedia_getSnapshotUri OnvifDevice_get_profiles OnvifDevice_get_profiles ERROR SOAP 1.2 fault SOAP-ENV:Sender ["http://www.onvif.org/ver10/error ":NotAuthorized] "The action requested requires authorization and the sender is not authorized" Detail: [no detail] OnvifDevice__media_getSnapshotUri : profile index out-of-bounds. OnvifDevicemedia_getSnapshotUri ERROR Error: soap struct state not initialized GTK Thread Dispatch... GTK Thread Dispatch Done... Failed to get hostname ... Retrieved hostname : (null) OnvifPlayer__stop
Il giorno ven 31 mar 2023 alle ore 18:10 Quedale @.***> ha scritto:
Once again I've made changes to OnvifDeviceManager https://github.com/Quedale/OnvifDeviceManager, OnvifDiscoveryLib https://github.com/Quedale/OnvifDiscoveryLiband OnvifSoapLib https://github.com/Quedale/OnvifSoapLib.
OnvifDiscoveryLib https://github.com/Quedale/OnvifDiscoveryLibwill now properly handle cameras with multiple IP addresses. OnvifSoapLib https://github.com/Quedale/OnvifDiscoveryLibwill now attempt to use the default onvif profile if the soap call GetProfiles fails (This is the reason it didn't work for you) OnvifDeviceManager https://github.com/Quedale/OnvifDeviceManager will temporarely defaults to the first ProbeMatch XAddr until networking preferences are added.
Here's a better script to pull and compile the subprojects changes. Run the following from the project's top directory:
rm subprojects/OnvifDiscoveryLib/build/dist/lib/pkgconfig/onvifdisco.pc rm subprojects/OnvifSoapLib/build/dist/lib/pkgconfig/onvifsoap.pc git pull ./autogen.sh %YOUR_CONFIG_PARAMS%
Only removing the ".pc" files will cause autogen.sh to perform an incremental build.
Let me know how that goes.
Thanks for the time you are putting on this, it is really helpful.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1492207666, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZU6DUJEXWQ2JT6S4DLW636WJANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
Okay I can see something else wrong.
Since ONVIF doesn't offer an authentication url, each url proceeds to authenticate. In order to create the Media soap, "GetCapabilities" has to be call to retrieve the various URLs. For this reason, I picked "GetCapabilities" has a credentials checkpoint.
It seems that in your case, the camera doesn't actually protect it, so it is accessible and allows the creation of the media soap anonymously. Therefor the application doesn't show you any credential dialog, because it thinks the camera is unprotected.
Let me add a check for "GetStreamURI", which is the most important URL to open the stream.
Hopefully this will do it.
This time, I've made a considerable update to autogen.sh. It will now detect upstream change, pull them and force an incremental build.
So this time, you only need to do this: (No more removing stuff inside subprojects)
git pull
./autogen.sh %YOUR_CONFIG_PARAMS%
Once again, please let me know how that goes!
I managed to reproduce the EXACT same errors as you did, but only under very specific conditions:
This seems to indicate a race condition that only occurs on lower specs since my VM is running very slow. (Some windows 10 issue)
I really can't seem to reproduce this issue on any native hosts I have.
I'll keep digging.
@.:~/OnvifDeviceManager$ ./autogen.sh
%YOUR_CONFIG_PARAMS%
openssl already found.
zlib already found.
gsoap already found.
glib already found.
Recupero di origin in corso
OnvifDiscoveryLib is already up-to-date. Do nothing...
onvifdisco already found.
Recupero di origin in corso
OnvifSoapLib is already up-to-date. Do nothing...
onvifsoaplib already found.
alsa-lib already found.
Gstreamer already installed.
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: %YOUR_CONFIG_PARAMS%
checking for %YOUR_CONFIG_PARAMS%-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking whether make supports nested variables... yes
checking for %YOUR_CONFIG_PARAMS%-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for
gstreamer-1.0 >= 1.20.3
... no
configure: gstreamer >= 1.20.3 not found. - Using latest static libraries
configure: Setting static Gstreamer path
checking build system type... Invalid configuration %YOUR_CONFIG_PARAMS%': machine
%YOUR_CONFIG_PARAMS%-unknown' not recognized
configure: error: /bin/bash ./config.sub %YOUR_CONFIG_PARAMS% failed
@.:~/OnvifDeviceManager$
I'm doing something wrong ?
Il giorno sab 1 apr 2023 alle ore 03:07 Quedale @.***> ha scritto:
Hopefully this will do it.
This time, I've made a considerable update to autogen.sh https://github.com/Quedale/OnvifDeviceManager/blob/main/autogen.sh. It will now detect upstream change, pull them and force an incremental build.
So this time, you only need to do this: (No more removing stuff inside subprojects)
git pull ./autogen.sh %YOUR_CONFIG_PARAMS%
Once again, please let me know how that goes!
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1492770878, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZVNOYPG6ILK624JK3TW655TNANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
What linux do you use? I could make the same PC again I don't like windows i use linux mint . A derivative of ubuntu derived from debian It doesn't exist for Raspberry pity I'm using mint 20.3 with vmware play 17 running mint 21.1
Il giorno sab 1 apr 2023 alle ore 04:24 Quedale @.***> ha scritto:
I managed to reproduce the EXACT same errors as you did, but only under very specific conditions:
- Linux Mint VM inside Virtualbox under Windows 10
- The error may only occur after a fresh boot. (After running it the second time it seems to work fine)
This seems to indicate a race condition that only occurs on lower specs since my VM is running very slow. (Some windows 10 issue)
I really can't seem to reproduce this issue on any native hosts I have.
I'll keep digging.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1492798225, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZXJILHETGINYBW6VKDW66GVFANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
I'm doing something wrong ?
%YOUR_CONFIG_PARAMS%
was meant to be your preferred autoconf parameters.
Something along the line of this:
./autogen.sh --prefix=$(pwd)/dist
What linux do you use?
If you want to test something closer to my setup, I'm currently using Kubuntu 22.04. I know it works fine under my WSL VM running Ubuntu as well.
My current setup currently runs WSL and Virtualbox, leading to very poor VM performance. I'm suspecting this poor performance is the reason I can reproduce it.
At least I managed to reproduce the same issue you got, so I can work from that. I have my suspicions on a particular piece, but troubleshooting this will take a considerable amount of time since the issue occurs randomly for me.
It should be running just as well inside a VM running any popular distro, so I want to fix this.
Can you please try it once more?
I've added several fixed targeting race conditions that I didn't catch without adding artificial delays. I can now run this on a lower than average spec VM running Linux Mint.
Let me know if you have any issues now.
Thanks!
HI, now after pressing scan a padlock with camera ip appears. Pressing on the padlock a login window appears the padlock disappears and the image appears. The Details tab is all SomeName Seems like a good way
Il giorno lun 3 apr 2023 alle ore 05:28 Quedale @.***> ha scritto:
Can you please try it once more?
I've added several fixed targeting race conditions that I didn't catch without adding artificial delays. I can now run this on a lower than average spec VM running Linux Mint.
Let me know if you have any issues now.
Thanks!
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1493592364, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZSG75QF4IP77KXJUPTW7I7WNANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
Sounds like everything is working as expected.
Did the stream start successfully as well?
The details page is still a placeholder, but I can start working on this relatively soon.
The image is on the right a bit small, but it shows
Il giorno lun 3 apr 2023 alle ore 14:35 Quedale @.***> ha scritto:
Sounds like everything is working as expected.
Did the stream start successfully as well?
The details page is still a placeholder, but I can start working on this relatively soon.
— Reply to this email directly, view it on GitHub https://github.com/Quedale/OnvifDeviceManager/issues/1#issuecomment-1494243273, or unsubscribe https://github.com/notifications/unsubscribe-auth/A3X4FZW5JPYJG2E7IPU6PH3W7K7XPANCNFSM6AAAAAAV7CKB64 . You are receiving this because you authored the thread.Message ID: @.***>
The stream will render according to the camera's resolution or the space on available screen. in short, it won't scale up, but it will scale down to fit on screen.
So if you are running a 4K monitor and your camera streams at 640x480, it will look very small.
I'll take that as a possible enhancement to add a scale up option.
Are we good to close this issue?
Ok
Thanks for your help.
Feel free to report additional issues or submit feature requests.
Cheers!
meson.build:1:0: ERROR: Meson version is 0.61.2 but project requires >= 0.62.0 the version is 0.61 the 0.62 does not exist