Skip to content

Argus 4 Pro fw 25060601 — connect/auth/identify OK, no stream pull (DESCRIBE 404) #407

@MindCanCHH

Description

@MindCanCHH

Describe the bug

On a Reolink Argus 4 Pro running firmware v3.0.0.4978_25060601 (June 2025), neolink 0.6.3-rc.3 successfully completes discovery, authentication, and model identification, but never starts a stream pull from the camera. The GStreamer RTSP server announces the stream as Available at /argus/main, /argus/Main, /argus/mainStream, …, /argus, but every DESCRIBE to any of those paths returns 404 Not Found — both directly (rtsp://127.0.0.1:18554/...) and via a proxy (go2rtc 1.9.14, which logs wrong response on DESCRIBE).

After the model-identification line, the neolink log goes completely silent — no Building Pipeline, no streaming start, no errors. So the factory is registered with the URL paths but never receives media to describe.

This may be related to #325 (Argus 4 PIR control fails — same camera class, similar partial-implementation symptom).

To Reproduce

  1. HA OS 17.2 (Raspberry Pi 4, aarch64), running the dm82m/hassio-addons neolink-latest add-on (App version 0.1.1, neolink 0.6.3-rc.3, mode rtsp, log debug).

  2. Configuration file (/addon_configs/<slug>_neolink-latest/neolink.toml):

    bind = "0.0.0.0"
    bind_port = 18554
    
    [[cameras]]
    name = "argus"
    username = "admin"
    password = "<redacted>"
    uid = "<redacted>"
    discovery = "local"
    idle_disconnect = true
    push_notifications = false
    print_format = "Human"
    stream = "mainStream"
    
    [cameras.pause]
    on_motion = true
    on_client = true
    timeout = 2.1
  3. Start the add-on. Camera is reached via local UDP broadcast, login succeeds, model and firmware are reported.

  4. From any RTSP client (ffprobe, nc-driven hand-rolled DESCRIBE, go2rtc as upstream proxy), DESCRIBE any of the announced paths.

    $ printf 'DESCRIBE rtsp://127.0.0.1:18554/argus/main RTSP/1.0\r\nCSeq: 1\r\n\r\n' \
        | nc -w 5 127.0.0.1 18554
    RTSP/1.0 404 Not Found
    Cseq: 1
    

Expected behavior

DESCRIBE returns 200 OK with an SDP describing the H.264 (or H.265) stream from the camera, and SETUP/PLAY enable consumption — same flow that works for the older Argus models.

What I've already tried

  • push_notifications = false — silenced the FCM retry storm completely (thanks for the workaround in Registering new push notification token: Error("missing field token", line: 7, column: 1) }) #288). No effect on the stream pull.
  • [cameras.pause] block with on_motion = true, on_client = true, timeout = 2.1. No change.
  • Multiple path variants on DESCRIBE: /argus, /argus/main, /argus/Main, /argus/mainStream, /argus/MainStream, /argus/Mainstream, /argus/mainstream. All return 404 Not Found.
  • Confirmed via netstat that neolink is bound and listening (port 18554 IPv4 localhost, 18555 IPv6 dual-stack).

Sanitized log excerpt (post-restart, clean — push_notifications=false already applied)

[INFO  neolink] Neolink 6e05e7844b5b50f89787d30bffcbbd3471bfcfde release
                neolink version: neolink 0.6.3-rc.3
                neolink mode: rtsp
                neolink log: debug
[INFO  neolink::rtsp] argus: Rtsp Starting
[INFO  neolink::utils] argus: Connecting to camera at UID: <redacted>
[INFO  neolink_core::bc_protocol] argus: Trying local discovery
[INFO  neolink::rtsp] Starting RTSP Server at 0.0.0.0:18554
[DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl
[DEBUG neolink::rtsp::gst::factory] Adding anonymous as permitted user
[DEBUG neolink::rtsp] Path: /argus/main
[DEBUG neolink::rtsp] Path: /argus/Main
[DEBUG neolink::rtsp] Path: /argus/mainStream
[DEBUG neolink::rtsp] Path: /argus/MainStream
[DEBUG neolink::rtsp] Path: /argus/Mainstream
[DEBUG neolink::rtsp] Path: /argus/mainstream
[DEBUG neolink::rtsp] Path: /argus
[DEBUG neolink::rtsp] argus: Preparing at /argus/main, /argus/Main, /argus/mainStream, /argus/MainStream, /argus/Mainstream, /argus/mainstream, /argus
[DEBUG neolink_core::bc_protocol::connection::discovery] Direct connect success at 255.255.255.255:2015
[INFO  neolink_core::bc_protocol] argus: Local discovery success <redacted>
[INFO  neolink::utils] argus: Logging in
[DEBUG neolink_core::bc_protocol::login] Populating abilities
[DEBUG neolink_core::bc_protocol::abilityinfo] Abilities: <AbilityInfo><userName>admin</userName>... (full list available on request)
[INFO  neolink::utils] argus: Connected and logged in
[INFO  neolink::common::camthread] argus: Camera time is already set
[DEBUG neolink::rtsp::gst::factory] Constructing Factor Impl
[DEBUG neolink::rtsp::gst::factory] Adding anonymous as permitted user
[INFO  neolink::rtsp::stream] argus: Available at /argus/main, /argus/Main, /argus/mainStream, /argus/MainStream, /argus/Mainstream, /argus/mainstream, /argus
[INFO  neolink::common::neocam] argus: Model Argus 4 Pro
[INFO  neolink::common::neocam] argus: Firmware Version v3.0.0.4978_25060601
=== complete silence after this line — no further events, including when DESCRIBE arrives ===

The camera reports the streaming subModule as preview_rw, compress_rw, snap_rw, rtsp_rw, streamTable_ro in its abilities (full XML available on request).

Versions

  • NVR software: N/A (direct camera connection)
  • Neolink software: neolink 0.6.3-rc.3 (dm82m/hassio-addons neolink-latest v0.1.1, commit 6e05e784)
  • Reolink camera model and firmware: Argus 4 Pro, v3.0.0.4978_25060601
  • Host: Home Assistant OS 17.2, Raspberry Pi 4 (aarch64), neolink running with host_network: true

Happy to provide additional logs, packet captures, or test patches against this firmware revision.

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