Skip to content

ONVIF-device found by ODM, but no stream available #20

@traeu

Description

@traeu

First: Thanks for providing this wonderful tool!

Background/my use-case:

I use a door intercom from Hikvision. The indoor station (DS-KH9510-WTE1) is able to display ONVIF camera streams. For ONVIF-camera-setup, only IP, username and password is needed and it is not possible to manually set a RTSP stream-URL. For my dahua cameras that means the indoor station will always open the cameras main stream, I cannot set it to use a sub-stream.
Problem is, the indoor station can only display streams up to Full-HD.
My dahua cameras are higher resolution and I don't want to reduce the resolution of the main-stream to Full-HD just because of the indoor station's limitation. The best solution would be to use one of the camera's sub-stream that already runs at Full-HD or 720p. But I cannot directly tell the indoor station to use a sub-stream.
It looks like this piece of software provides the perfect solution for my problem.

Unfortunately I have some trouble getting it to work correctly and I don't know where I need to look to fix it.

My setup:
Dahua camera: 10.162.1.11, RSTP-Port 554.
Docker-host in different subnet: 192.168.2.107.
Test-Laptop with ONVIF device manager: 192.168.2.160

My Docker-compose file:
services:
  rtsp-to-onvif:
    image: kulasolutions/rtsp-to-onvif:latest
    hostname: rtsp-to-onvif
    # restart: unless-stopped
    volumes:
      - /home/traeu/onvif-proxy/config.yaml:/onvif.yaml
    network_mode: "host"   
    cap_add:
      - NET_ADMIN
    environment:
      DEBUG: 1
My config.yaml:
onvif:
  - name: Test-Proxycam
    dev: enp0s4
    target:
      hostname: 10.162.1.11
      ports:
        rtsp: 554
        snapshot: 801
    highQuality:
      rtsp: /cam/realmonitor?channel=1&subtype=2&unicast=true&proto=Onvif
      snapshot: /ISAPI/Streaming/Channels/101/picture
      width: 1280
      height: 720
      framerate: 25
      bitrate: 4096
      quality: 4
    ports:
      server: 80
      rtsp: 8554
      snapshot: 8888
    uuid: 0a63da62-f68e-4caa-b531-5ef89dbf336b
    mac: 1A:11:B0:F1:1B:13

I tried to check with ONVIF device manager/ODM and it detects "Test-Proxycam" successfully, but I don't get any stream:

Unbenannt

According to images from google (never used ODM before), there should be an entry for the stream in the right column.
The log-file of the container indicates that it gets a request from ODM, but I am not sure if there are errors hidden in the log or if it looks normal (something with "TypeError: method is not a function", is that OK?).

container-log:
20:45:19.515 DEBUG NET_SCAN: Found 192.168.2.145 on rtsp2onvif_0 for MAC 1a:11:b0:f1:1b:13
20:45:19.516 DEBUG NET_SCAN: Found 192.168.2.145 on rtsp2onvif_0 for MAC 1a:11:b0:f1:1b:13
20:45:19.516 INFO  
20:45:19.516 INFO  SERVER: Test-Proxycam - HTTP listening on 192.168.2.145:80
20:45:19.518 INFO  PROXY: 8554 --> 10.162.1.11:554
20:45:19.519 INFO  PROXY: 8888 --> 10.162.1.11:801
(node:1) [DEP0044] DeprecationWarning: The `util.isArray` API is deprecated. Please use `Array.isArray()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:1) [DEP0047] DeprecationWarning: The `util.isDate` API is deprecated.  Please use `arg instanceof Date` instead.
20:45:36.064 DEBUG SERVER: Test-Proxycam - Discovery request from 192.168.2.160:63374
20:45:36.129 DEBUG SERVER: Test-Proxycam - Discovery request from 192.168.2.160:63376
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetSystemDateAndTime xmlns="http://www.onvif.org/ver10/device/wsdl"/></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><tds:GetSystemDateAndTimeResponse xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns="http://www.onvif.org/ver10/device/wsdl"><tds:SystemDateAndTime><tds:DateTimeType>NTP</tds:DateTimeType><tds:DaylightSavings>false</tds:DaylightSavings><tds:TimeZone><tds:TZ>UTC+0</tds:TZ></tds:TimeZone><tds:UTCDateTime><tds:Time><tds:Hour>20</tds:Hour><tds:Minute>45</tds:Minute><tds:Second>36</tds:Second></tds:Time><tds:Date><tds:Year>2024</tds:Year><tds:Month>12</tds:Month><tds:Day>21</tds:Day></tds:Date></tds:UTCDateTime><tds:LocalDateTime><tds:Time><tds:Hour>20</tds:Hour><tds:Minute>45</tds:Minute><tds:Second>36</tds:Second></tds:Time><tds:Date><tds:Year>2024</tds:Year><tds:Month>12</tds:Month><tds:Day>21</tds:Day></tds:Date></tds:LocalDateTime><tds:Extension></tds:Extension></tds:SystemDateAndTime></tds:GetSystemDateAndTimeResponse></soap:Body></soap:Envelope>
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>admin</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">ExdbtbPcgJ1AaGbHQ3ajc9gGxSY=</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hyOBhK3qtU6BlZMGCfNFiw4AAAAAAA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2024-12-21T20:45:35.642Z</Created></UsernameToken></Security></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetDNS xmlns="http://www.onvif.org/ver10/device/wsdl"/></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><soap:Fault><soap:Code><soap:Value>SOAP-ENV:Server</soap:Value><soap:Subcode><soap:Value>InternalServerError</soap:Value></soap:Subcode></soap:Code><soap:Reason><soap:Text>TypeError: method is not a function</soap:Text></soap:Reason></soap:Fault></soap:Body></soap:Envelope>
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>admin</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">HdldDojEh3BAzCKknpgPtAqTVjc=</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hyOBhK3qtU6BlZMGCfNFiw0AAAAAAA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2024-12-21T20:45:35.642Z</Created></UsernameToken></Security></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetScopes xmlns="http://www.onvif.org/ver10/device/wsdl"/></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><soap:Fault><soap:Code><soap:Value>SOAP-ENV:Server</soap:Value><soap:Subcode><soap:Value>InternalServerError</soap:Value></soap:Subcode></soap:Code><soap:Reason><soap:Text>TypeError: method is not a function</soap:Text></soap:Reason></soap:Fault></soap:Body></soap:Envelope>
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>admin</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">hEtADmzW2MIpl/CW+96sbvn9cTI=</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hyOBhK3qtU6BlZMGCfNFiw8AAAAAAA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2024-12-21T20:45:35.642Z</Created></UsernameToken></Security></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetDeviceInformation xmlns="http://www.onvif.org/ver10/device/wsdl"/></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><tds:GetDeviceInformationResponse xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns="http://www.onvif.org/ver10/device/wsdl"><tds:Manufacturer>rtsp-2-onvif</tds:Manufacturer><tds:Model>Test-Proxycam</tds:Model><tds:FirmwareVersion>1.0.0</tds:FirmwareVersion><tds:SerialNumber>Test-Proxycam-0000</tds:SerialNumber><tds:HardwareId>Test-Proxycam-1001</tds:HardwareId></tds:GetDeviceInformationResponse></soap:Body></soap:Envelope>
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>admin</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">yNpNxNub6EVMRNDbpt1r8xEayw4=</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hyOBhK3qtU6BlZMGCfNFixAAAAAAAA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2024-12-21T20:45:35.643Z</Created></UsernameToken></Security></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetNetworkInterfaces xmlns="http://www.onvif.org/ver10/device/wsdl"/></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><soap:Fault><soap:Code><soap:Value>SOAP-ENV:Server</soap:Value><soap:Subcode><soap:Value>InternalServerError</soap:Value></soap:Subcode></soap:Code><soap:Reason><soap:Text>TypeError: method is not a function</soap:Text></soap:Reason></soap:Fault></soap:Body></soap:Envelope>
20:45:36.292 DEBUG SERVER: Test-Proxycam - Discovery request from 192.168.2.160:63374
20:45:36.292 DEBUG SERVER: Test-Proxycam - Discovery request from 192.168.2.160:63376
20:45:36.744 DEBUG SERVER: Test-Proxycam - Discovery request from 192.168.2.160:63376
20:45:36.744 DEBUG SERVER: Test-Proxycam - Discovery request from 192.168.2.160:63374
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetSystemDateAndTime xmlns="http://www.onvif.org/ver10/device/wsdl"/></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><tds:GetSystemDateAndTimeResponse xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns="http://www.onvif.org/ver10/device/wsdl"><tds:SystemDateAndTime><tds:DateTimeType>NTP</tds:DateTimeType><tds:DaylightSavings>false</tds:DaylightSavings><tds:TimeZone><tds:TZ>UTC+0</tds:TZ></tds:TimeZone><tds:UTCDateTime><tds:Time><tds:Hour>20</tds:Hour><tds:Minute>49</tds:Minute><tds:Second>46</tds:Second></tds:Time><tds:Date><tds:Year>2024</tds:Year><tds:Month>12</tds:Month><tds:Day>21</tds:Day></tds:Date></tds:UTCDateTime><tds:LocalDateTime><tds:Time><tds:Hour>20</tds:Hour><tds:Minute>49</tds:Minute><tds:Second>46</tds:Second></tds:Time><tds:Date><tds:Year>2024</tds:Year><tds:Month>12</tds:Month><tds:Day>21</tds:Day></tds:Date></tds:LocalDateTime><tds:Extension></tds:Extension></tds:SystemDateAndTime></tds:GetSystemDateAndTimeResponse></soap:Body></soap:Envelope>
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>admin</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">JJX4ych+bw3sp4fOlbS1ThCDXgc=</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hyOBhK3qtU6BlZMGCfNFixEAAAAAAA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2024-12-21T20:49:46.421Z</Created></UsernameToken></Security></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetCapabilities xmlns="http://www.onvif.org/ver10/device/wsdl"><Category>All</Category></GetCapabilities></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><tds:GetCapabilitiesResponse xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns="http://www.onvif.org/ver10/device/wsdl"><tds:Capabilities><tds:Device><tds:XAddr>http://192.168.2.145:80/onvif/device_service</tds:XAddr><tds:Network><tds:IPFilter>false</tds:IPFilter><tds:ZeroConfiguration>false</tds:ZeroConfiguration><tds:IPVersion6>false</tds:IPVersion6><tds:DynDNS>false</tds:DynDNS><tds:Extension><tds:Dot11Configuration>false</tds:Dot11Configuration><tds:Extension></tds:Extension></tds:Extension></tds:Network><tds:System><tds:DiscoveryResolve>false</tds:DiscoveryResolve><tds:DiscoveryBye>false</tds:DiscoveryBye><tds:RemoteDiscovery>false</tds:RemoteDiscovery><tds:SystemBackup>false</tds:SystemBackup><tds:SystemLogging>false</tds:SystemLogging><tds:FirmwareUpgrade>false</tds:FirmwareUpgrade><tds:SupportedVersions><tds:Major>2</tds:Major><tds:Minor>5</tds:Minor></tds:SupportedVersions><tds:Extension><tds:HttpFirmwareUpgrade>false</tds:HttpFirmwareUpgrade><tds:HttpSystemBackup>false</tds:HttpSystemBackup><tds:HttpSystemLogging>false</tds:HttpSystemLogging><tds:HttpSupportInformation>false</tds:HttpSupportInformation><tds:Extension></tds:Extension></tds:Extension></tds:System><tds:IO><tds:InputConnectors>0</tds:InputConnectors><tds:RelayOutputs>1</tds:RelayOutputs><tds:Extension><tds:Auxiliary>false</tds:Auxiliary><tds:AuxiliaryCommands></tds:AuxiliaryCommands><tds:Extension></tds:Extension></tds:Extension></tds:IO><tds:Security><tds:TLS1.1>false</tds:TLS1.1><tds:TLS1.2>false</tds:TLS1.2><tds:OnboardKeyGeneration>false</tds:OnboardKeyGeneration><tds:AccessPolicyConfig>false</tds:AccessPolicyConfig><tds:X.509Token>false</tds:X.509Token><tds:SAMLToken>false</tds:SAMLToken><tds:KerberosToken>false</tds:KerberosToken><tds:RELToken>false</tds:RELToken><tds:Extension><tds:TLS1.0>false</tds:TLS1.0><tds:Extension><tds:Dot1X>false</tds:Dot1X><tds:RemoteUserHandling>false</tds:RemoteUserHandling></tds:Extension></tds:Extension></tds:Security><tds:Extension></tds:Extension></tds:Device><tds:Media><tds:XAddr>http://192.168.2.145:80/onvif/media_service</tds:XAddr><tds:StreamingCapabilities><tds:RTPMulticast>false</tds:RTPMulticast><tds:RTP_TCP>true</tds:RTP_TCP><tds:RTP_RTSP_TCP>true</tds:RTP_RTSP_TCP><tds:Extension></tds:Extension></tds:StreamingCapabilities><tds:Extension><tds:ProfileCapabilities><tds:MaximumNumberOfProfiles>1</tds:MaximumNumberOfProfiles></tds:ProfileCapabilities></tds:Extension></tds:Media></tds:Capabilities></tds:GetCapabilitiesResponse></soap:Body></soap:Envelope>
SERVER: Handling POST on /onvif/device_service
SERVER: <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header><Security s:mustUnderstand="1" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><UsernameToken><Username>admin</Username><Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">FAm7Hq7A9d4l4xE32ufFmYmAoo8=</Password><Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hyOBhK3qtU6BlZMGCfNFixIAAAAAAA==</Nonce><Created xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2024-12-21T20:49:46.450Z</Created></UsernameToken></Security></s:Header><s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><GetCapabilities xmlns="http://www.onvif.org/ver10/device/wsdl"><Category>All</Category></GetCapabilities></s:Body></s:Envelope>
SERVER: Attempting to bind to /onvif/device_service
SERVER: Trying Device from path /onvif/device_service
SERVER: <?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/device/wsdl" xmlns:tns="http://tempuri.org/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tt="http://www.onvif.org/ver10/schema"><soap:Body><tds:GetCapabilitiesResponse xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns="http://www.onvif.org/ver10/device/wsdl"><tds:Capabilities><tds:Device><tds:XAddr>http://192.168.2.145:80/onvif/device_service</tds:XAddr><tds:Network><tds:IPFilter>false</tds:IPFilter><tds:ZeroConfiguration>false</tds:ZeroConfiguration><tds:IPVersion6>false</tds:IPVersion6><tds:DynDNS>false</tds:DynDNS><tds:Extension><tds:Dot11Configuration>false</tds:Dot11Configuration><tds:Extension></tds:Extension></tds:Extension></tds:Network><tds:System><tds:DiscoveryResolve>false</tds:DiscoveryResolve><tds:DiscoveryBye>false</tds:DiscoveryBye><tds:RemoteDiscovery>false</tds:RemoteDiscovery><tds:SystemBackup>false</tds:SystemBackup><tds:SystemLogging>false</tds:SystemLogging><tds:FirmwareUpgrade>false</tds:FirmwareUpgrade><tds:SupportedVersions><tds:Major>2</tds:Major><tds:Minor>5</tds:Minor></tds:SupportedVersions><tds:Extension><tds:HttpFirmwareUpgrade>false</tds:HttpFirmwareUpgrade><tds:HttpSystemBackup>false</tds:HttpSystemBackup><tds:HttpSystemLogging>false</tds:HttpSystemLogging><tds:HttpSupportInformation>false</tds:HttpSupportInformation><tds:Extension></tds:Extension></tds:Extension></tds:System><tds:IO><tds:InputConnectors>0</tds:InputConnectors><tds:RelayOutputs>1</tds:RelayOutputs><tds:Extension><tds:Auxiliary>false</tds:Auxiliary><tds:AuxiliaryCommands></tds:AuxiliaryCommands><tds:Extension></tds:Extension></tds:Extension></tds:IO><tds:Security><tds:TLS1.1>false</tds:TLS1.1><tds:TLS1.2>false</tds:TLS1.2><tds:OnboardKeyGeneration>false</tds:OnboardKeyGeneration><tds:AccessPolicyConfig>false</tds:AccessPolicyConfig><tds:X.509Token>false</tds:X.509Token><tds:SAMLToken>false</tds:SAMLToken><tds:KerberosToken>false</tds:KerberosToken><tds:RELToken>false</tds:RELToken><tds:Extension><tds:TLS1.0>false</tds:TLS1.0><tds:Extension><tds:Dot1X>false</tds:Dot1X><tds:RemoteUserHandling>false</tds:RemoteUserHandling></tds:Extension></tds:Extension></tds:Security><tds:Extension></tds:Extension></tds:Device><tds:Media><tds:XAddr>http://192.168.2.145:80/onvif/media_service</tds:XAddr><tds:StreamingCapabilities><tds:RTPMulticast>false</tds:RTPMulticast><tds:RTP_TCP>true</tds:RTP_TCP><tds:RTP_RTSP_TCP>true</tds:RTP_RTSP_TCP><tds:Extension></tds:Extension></tds:StreamingCapabilities><tds:Extension><tds:ProfileCapabilities><tds:MaximumNumberOfProfiles>1</tds:MaximumNumberOfProfiles></tds:ProfileCapabilities></tds:Extension></tds:Media></tds:Capabilities></tds:GetCapabilitiesResponse></soap:Body></soap:Envelope>

Ofcourse I tested with VLC player that the RTSP stream of the dahua cam is available (rtsp://admin:password@10.162.1.11:554/cam/realmonitor?channel=1&subtype=2&unicast=true&proto=Onvif).

I know that something is working, because when I use VLC to access the RTSP port of the docker container (just rtsp://192.168.2.145:8554), I get prompted for a password and the credentials of my dahua camera work. But I don't know how to check if the proxied RTSP-stream really works, because I don't know the exact RTSP stream path (and ODM doesn't show anything).

I made another test and put go2rtc in between, just to try if that makes any difference and to get a really simple, short RTSP stream path without authentication.
I started go2rtc on another laptop (192.168.2.121) with the following config:

go2rtc-config:
streams:
  dahua_camera:
    - rtsp://admin:password@10.162.1.11/cam/realmonitor?channel=1&subtype=2&unicast=true&proto=Onvif
    
rtsp:
  listen: ":8554"

I checked successfully that VLC can access rtsp://192.168.2.121:8554/dahua_camera.

I then used this config.yaml for this test:

config.yaml for test with go2rtc:
onvif:
  - name: Test-Proxycam
    dev: enp0s4
    target:
      hostname: 192.168.2.121
      ports:
        rtsp: 8554
        snapshot: 801
    highQuality:
      rtsp: /dahua_camera
      snapshot: /ISAPI/Streaming/Channels/101/picture
      width: 1280
      height: 720
      framerate: 25
      bitrate: 4096
      quality: 4
    ports:
      server: 80
      rtsp: 9554
      snapshot: 8888
    uuid: 0a63da62-f68e-4caa-b531-5ef89dbf336b
    mac: 1A:11:B0:F1:1B:13

My hope was that with go2rtc in between, there would be a difference, but the result stayed the same: ODM wasn't able to show a stream.

I also tried to add 192.168.2.145 as ONVIF device to my hikvision indoor station but that results in an error when trying to open the stream.

I also tested different server-ports (8081, 8085) without success.
Because the documentation states that the name should only contain letters, I tried "TestProxycam" instead of "Test-Proxycam", but that also made no difference.

Is it possible that this is a bug, or maybe it is just my config that is wrong or not suitable?
I would love to get some feedback on this and, ofcourse, to get it to work!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions