AlexxIT / go2rtc

Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc.
https://github.com/AlexxIT/Blog
MIT License
3.75k stars 304 forks source link

Reolink Video Doorbell discussion #331

Open luisiam opened 1 year ago

luisiam commented 1 year ago

The latest FW 1859 enables 2-way audio via ONVIF profile T. I checked with Happytimesoft ONVIF client and 2-way audio works. Is there any chance to get it working in go2rtc?

Output from info page

{
  "producers": [
    {
      "type": "RTSP active producer",
      "url": "rtsp://192.168.10.21//",
      "remote_addr": "192.168.10.21:554",
      "user_agent": "go2rtc/1.3.1",
      "medias": [
        "video, recvonly, H.264 High 5.1",
        "audio, recvonly, MPEG4-GENERIC/16000"
      ],
      "receivers": [
        "96 H264, bytes=129455539, senders=1",
        "97 MPEG4-GENERIC/16000, bytes=1984536, senders=1"
      ],
      "recv": 132603331
    },
    {
      "type": "RTSP passive producer",
      "url": "rtsp://localhost:8554/fb75e35d718d1e0379580b00d5fcc0e7",
      "remote_addr": "127.0.0.1:43364",
      "user_agent": "ffmpeg/go2rtc",
      "medias": [
        "audio, recvonly, OPUS/48000/2"
      ],
      "receivers": [
        "96 OPUS/48000/2, bytes=2800207, senders=1"
      ],
      "recv": 2949215
    }
  ],
  "consumers": [
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://localhost:8554/doorbell_test?audio",
      "remote_addr": "127.0.0.1:43354",
      "user_agent": "go2rtc/ffmpeg",
      "medias": [
        "audio, sendonly, ANY"
      ],
      "senders": [
        "96 MPEG4-GENERIC/16000, bytes=1984536, receivers=1"
      ],
      "send": 2046072
    },
    {
      "type": "WebRTC/WebSocket async passive consumer",
      "remote_addr": "tcp4 prflx 192.168.10.183:65337 related :0",
      "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62",
      "medias": [
        "video, sendonly, VP8, RTX, VP9, H264, AV1, RED, ULPFEC, FLEXFEC-03",
        "audio, recvonly, OPUS/48000/2, RED/48000/2, G722/8000, PCMU/8000, PCMA/8000, CN/8000, TELEPHONE-EVENT/48000, TELEPHONE-EVENT/8000",
        "audio, sendonly, OPUS/48000/2, RED/48000/2, G722/8000, PCMU/8000, PCMA/8000, CN/8000, TELEPHONE-EVENT/48000, TELEPHONE-EVENT/8000"
      ],
      "receivers": [
        "111 OPUS/48000/2, bytes=812126, senders=0"
      ],
      "senders": [
        "96 H264, bytes=124447151, receivers=1",
        "96 OPUS/48000/2, bytes=2679873, receivers=1"
      ],
      "recv": 1054116,
      "send": 128596160
    }
  ]
}
NickM-27 commented 1 year ago

You need to enable trace logs for rtsp and send that here, looks like they changed the rtsp format from what I saw back in February

new one is here:

2023-04-04 07:17:04.634469822  07:17:04.634 TRC [rtsp] client response:
2023-04-04 07:17:04.634475702  RTSP/1.0 200 OK
2023-04-04 07:17:04.634477612  Cseq: 2
2023-04-04 07:17:04.634479202  Content-Type: application/sdp
2023-04-04 07:17:04.634480422  Content-Length: 758
2023-04-04 07:17:04.634482002  Content-Base: rtsp://192.168.50.151/Preview_01_main/
2023-04-04 07:17:04.634483572  Date: Tue, Apr 04 2023 13:17:04 GMT
2023-04-04 07:17:04.634484802  
2023-04-04 07:17:04.634485962  v=0
2023-04-04 07:17:04.634487332  o=- 1680614126554766 1 IN IP4 192.168.0.3
2023-04-04 07:17:04.634488652  s=Session streamed by "preview"
2023-04-04 07:17:04.634489802  t=0 0
2023-04-04 07:17:04.634491192  a=tool:BC Streaming Media v202210012022.10.01
2023-04-04 07:17:04.634493802  a=type:broadcast
2023-04-04 07:17:04.634495082  a=control:*
2023-04-04 07:17:04.634496262  a=range:npt=now-
2023-04-04 07:17:04.634549673  a=x-qt-text-nam:Session streamed by "preview"
2023-04-04 07:17:04.634551473  m=video 0 RTP/AVP 96
2023-04-04 07:17:04.634553103  c=IN IP4 0.0.0.0
2023-04-04 07:17:04.634554283  b=AS:8192
2023-04-04 07:17:04.634555563  a=rtpmap:96 H264/90000
2023-04-04 07:17:04.634557983  a=range:npt=now-
2023-04-04 07:17:04.634559843  a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKAoAPGQ,aO48sA==
2023-04-04 07:17:04.634591183  a=recvonly
2023-04-04 07:17:04.634592854  a=control:track1
2023-04-04 07:17:04.634594304  m=audio 0 RTP/AVP 97
2023-04-04 07:17:04.634595474  c=IN IP4 0.0.0.0
2023-04-04 07:17:04.634596774  b=AS:8192
2023-04-04 07:17:04.634598124  a=rtpmap:97 MPEG4-GENERIC/16000
2023-04-04 07:17:04.634599884  a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
2023-04-04 07:17:04.634626834  a=recvonly
2023-04-04 07:17:04.634628414  a=control:track2
2023-04-04 07:17:04.634629784  m=audio 0 RTP/AVP 8
2023-04-04 07:17:04.634631014  a=control:track3
2023-04-04 07:17:04.634632324  a=rtpmap:8 PCMA/8000
2023-04-04 07:17:04.634633754  a=sendonly
2023-04-04 07:17:04.638836907  07:17:04.638 TRC [rtsp] client request:
2023-04-04 07:17:04.638839357  DESCRIBE rtsp://192.168.50.151:554/Preview_01_main RTSP/1.0
2023-04-04 07:17:04.638840717  Accept: application/sdp
2023-04-04 07:17:04.638842067  User-Agent: go2rtc/1.3.1
2023-04-04 07:17:04.638843257  CSeq: 3
savage7 commented 1 year ago

@NickM-27 Is this the log you mean? I traced with Home assitant when opening the links.html in the go2rtc web ui.

2023-04-06 12:42:14.231 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.226 TRC [rtsp] client request:
2023-04-06 12:42:14.231 DEBUG (webrtc) [custom_components.webrtc.utils] DESCRIBE rtsp://192.168.1.128:554/h264Preview_01_main RTSP/1.0
2023-04-06 12:42:14.231 DEBUG (webrtc) [custom_components.webrtc.utils] Accept: application/sdp
2023-04-06 12:42:14.231 DEBUG (webrtc) [custom_components.webrtc.utils] User-Agent: go2rtc/1.2.0
2023-04-06 12:42:14.232 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 4
2023-04-06 12:42:14.232 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="bb3a00ecb74d14032862f0c4658acec3", uri="rtsp://192.168.1.128:554/h264Preview_01_main", response="2a9d069d5a28641ffa4513e0a7cdf1e1"
2023-04-06 12:42:14.232 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.232 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.269 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.269 TRC [rtsp] client response:
2023-04-06 12:42:14.270 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 12:42:14.270 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Base: rtsp://192.168.1.128/Preview_01_main/
2023-04-06 12:42:14.270 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Type: application/sdp
2023-04-06 12:42:14.270 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 4
2023-04-06 12:42:14.271 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Length: 689
2023-04-06 12:42:14.271 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 10:42:14 GMT
2023-04-06 12:42:14.271 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.271 DEBUG (webrtc) [custom_components.webrtc.utils] v=0
2023-04-06 12:42:14.272 DEBUG (webrtc) [custom_components.webrtc.utils] o=- 1680777518721511 1 IN IP4 192.168.1.128
2023-04-06 12:42:14.272 DEBUG (webrtc) [custom_components.webrtc.utils] s=Session streamed by "preview"
2023-04-06 12:42:14.272 DEBUG (webrtc) [custom_components.webrtc.utils] t=0 0
2023-04-06 12:42:14.272 DEBUG (webrtc) [custom_components.webrtc.utils] a=tool:BC Streaming Media v202210012022.10.01
2023-04-06 12:42:14.273 DEBUG (webrtc) [custom_components.webrtc.utils] a=type:broadcast
2023-04-06 12:42:14.273 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:*
2023-04-06 12:42:14.273 DEBUG (webrtc) [custom_components.webrtc.utils] a=range:npt=now-
2023-04-06 12:42:14.273 DEBUG (webrtc) [custom_components.webrtc.utils] a=x-qt-text-nam:Session streamed by "preview"
2023-04-06 12:42:14.273 DEBUG (webrtc) [custom_components.webrtc.utils] m=video 0 RTP/AVP 96
2023-04-06 12:42:14.273 DEBUG (webrtc) [custom_components.webrtc.utils] c=IN IP4 0.0.0.0
2023-04-06 12:42:14.274 DEBUG (webrtc) [custom_components.webrtc.utils] b=AS:8192
2023-04-06 12:42:14.274 DEBUG (webrtc) [custom_components.webrtc.utils] a=rtpmap:96 H264/90000
2023-04-06 12:42:14.274 DEBUG (webrtc) [custom_components.webrtc.utils] a=range:npt=now-
2023-04-06 12:42:14.274 DEBUG (webrtc) [custom_components.webrtc.utils] a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKAoAPGQ,aO48sA==
2023-04-06 12:42:14.274 DEBUG (webrtc) [custom_components.webrtc.utils] a=recvonly
2023-04-06 12:42:14.274 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:track1
2023-04-06 12:42:14.274 DEBUG (webrtc) [custom_components.webrtc.utils] m=audio 0 RTP/AVP 97
2023-04-06 12:42:14.275 DEBUG (webrtc) [custom_components.webrtc.utils] c=IN IP4 0.0.0.0
2023-04-06 12:42:14.275 DEBUG (webrtc) [custom_components.webrtc.utils] b=AS:8192
2023-04-06 12:42:14.275 DEBUG (webrtc) [custom_components.webrtc.utils] a=rtpmap:97 MPEG4-GENERIC/16000
2023-04-06 12:42:14.275 DEBUG (webrtc) [custom_components.webrtc.utils] a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
2023-04-06 12:42:14.275 DEBUG (webrtc) [custom_components.webrtc.utils] a=recvonly
2023-04-06 12:42:14.275 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:track2
2023-04-06 12:42:14.276 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.276 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.269 TRC [rtsp] client request:
2023-04-06 12:42:14.276 DEBUG (webrtc) [custom_components.webrtc.utils] SETUP rtsp://192.168.1.128/Preview_01_main/track1 RTSP/1.0
2023-04-06 12:42:14.276 DEBUG (webrtc) [custom_components.webrtc.utils] Transport: RTP/AVP/TCP;unicast;interleaved=0-1
2023-04-06 12:42:14.276 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 5
2023-04-06 12:42:14.276 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="bb3a00ecb74d14032862f0c4658acec3", uri="rtsp://192.168.1.128/Preview_01_main/track1", response="098055c0972907cef37370c48286c95e"
2023-04-06 12:42:14.276 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.277 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.310 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.309 TRC [rtsp] client response:
2023-04-06 12:42:14.310 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 12:42:14.310 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 5
2023-04-06 12:42:14.310 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 10:42:14 GMT
2023-04-06 12:42:14.310 DEBUG (webrtc) [custom_components.webrtc.utils] Transport: RTP/AVP/TCP;unicast;destination=192.168.1.131;source=192.168.1.128;interleaved=0-1
2023-04-06 12:42:14.310 DEBUG (webrtc) [custom_components.webrtc.utils] Session: A7361AC6;timeout=65
2023-04-06 12:42:14.311 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.311 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.311 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.309 TRC [rtsp] client request:
2023-04-06 12:42:14.311 DEBUG (webrtc) [custom_components.webrtc.utils] SETUP rtsp://192.168.1.128/Preview_01_main/track2 RTSP/1.0
2023-04-06 12:42:14.311 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 6
2023-04-06 12:42:14.311 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="bb3a00ecb74d14032862f0c4658acec3", uri="rtsp://192.168.1.128/Preview_01_main/track2", response="1dfacc9d98cd09c1029cfefe2e05dbaf"
2023-04-06 12:42:14.312 DEBUG (webrtc) [custom_components.webrtc.utils] Session: A7361AC6
2023-04-06 12:42:14.312 DEBUG (webrtc) [custom_components.webrtc.utils] Transport: RTP/AVP/TCP;unicast;interleaved=2-3
2023-04-06 12:42:14.312 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.312 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.318 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.316 TRC [rtsp] client response:
2023-04-06 12:42:14.318 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 12:42:14.318 DEBUG (webrtc) [custom_components.webrtc.utils] Session: A7361AC6;timeout=65
2023-04-06 12:42:14.318 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 6
2023-04-06 12:42:14.318 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 10:42:14 GMT
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] Transport: RTP/AVP/TCP;unicast;destination=192.168.1.131;source=192.168.1.128;interleaved=2-3
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.317 TRC [rtsp] client request:
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] PLAY rtsp://192.168.1.128/Preview_01_main/ RTSP/1.0
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 7
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="bb3a00ecb74d14032862f0c4658acec3", uri="rtsp://192.168.1.128/Preview_01_main/", response="7a4525bc6ebf9cdb3608d6952052b38a"
2023-04-06 12:42:14.319 DEBUG (webrtc) [custom_components.webrtc.utils] Session: A7361AC6
2023-04-06 12:42:14.320 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.320 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 12:42:14.371 DEBUG (webrtc) [custom_components.webrtc.utils] 12:42:14.371 TRC [rtsp] client response:
2023-04-06 12:42:14.372 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 12:42:14.372 DEBUG (webrtc) [custom_components.webrtc.utils] Rtp-Info: url=rtsp://192.168.1.128/Preview_01_main/track1;seq=57080;rtptime=2825565026,url=rtsp://192.168.1.128/Preview_01_main/track2;seq=35231;rtptime=7176368,url=rtsp://192.168.1.128/Preview_01_main/track3;seq=0;rtptime=0
2023-04-06 12:42:14.372 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 7
2023-04-06 12:42:14.372 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 10:42:14 GMT
2023-04-06 12:42:14.372 DEBUG (webrtc) [custom_components.webrtc.utils] Range: npt=0.000-
2023-04-06 12:42:14.372 DEBUG (webrtc) [custom_components.webrtc.utils] Session: A7361AC6
NickM-27 commented 1 year ago

No, the log I mean is the log I posted above.

savage7 commented 1 year ago

Where can I find the log?

NickM-27 commented 1 year ago

My bad looks like those logs are them, but they don't show the third audio track like mine do. Maybe you didn't copy all of them?

savage7 commented 1 year ago

ah ok now I get it, this log seams to be complete, it contains a third audio track:

2023-04-06 15:10:19.291 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:19.291 TRC [rtsp] client request:
2023-04-06 15:10:19.292 DEBUG (webrtc) [custom_components.webrtc.utils] TEARDOWN rtsp://192.168.1.128/Preview_01_main/ RTSP/1.0
2023-04-06 15:10:19.292 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 7
2023-04-06 15:10:19.292 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="9a2ca58906f04a0ca5cca246245e789a", uri="rtsp://192.168.1.128/Preview_01_main/", response="7f2597d27c0faa6c83c7ac7ea2dcbacf"
2023-04-06 15:10:19.292 DEBUG (webrtc) [custom_components.webrtc.utils] Session: C6411A82
2023-04-06 15:10:19.292 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:19.292 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.418 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.418 TRC [rtsp] client request:
2023-04-06 15:10:22.418 DEBUG (webrtc) [custom_components.webrtc.utils] DESCRIBE rtsp://192.168.1.128:554/h264Preview_01_main RTSP/1.0
2023-04-06 15:10:22.419 DEBUG (webrtc) [custom_components.webrtc.utils] Accept: application/sdp
2023-04-06 15:10:22.419 DEBUG (webrtc) [custom_components.webrtc.utils] Require: www.onvif.org/ver20/backchannel
2023-04-06 15:10:22.419 DEBUG (webrtc) [custom_components.webrtc.utils] User-Agent: go2rtc/1.2.0
2023-04-06 15:10:22.419 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 1
2023-04-06 15:10:22.419 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.419 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.426 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.424 TRC [rtsp] client response:
2023-04-06 15:10:22.427 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 401 Unauthorized
2023-04-06 15:10:22.427 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 1
2023-04-06 15:10:22.427 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:10:22 GMT
2023-04-06 15:10:22.427 DEBUG (webrtc) [custom_components.webrtc.utils] Www-Authenticate: Digest realm="BC Streaming Media", nonce="b293fa071333d64dfff845119f852285"
2023-04-06 15:10:22.427 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.427 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.427 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.424 TRC [rtsp] client request:
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] DESCRIBE rtsp://192.168.1.128:554/h264Preview_01_main RTSP/1.0
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] Accept: application/sdp
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] Require: www.onvif.org/ver20/backchannel
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] User-Agent: go2rtc/1.2.0
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 2
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="b293fa071333d64dfff845119f852285", uri="rtsp://192.168.1.128:554/h264Preview_01_main", response="b5ae1e7f8b3ec7d540fa80107164c374"
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.428 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.465 TRC [rtsp] client response:
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 2
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:10:22 GMT
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Type: application/sdp
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Length: 760
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Base: rtsp://192.168.1.128/Preview_01_main/
2023-04-06 15:10:22.466 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] v=0
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] o=- 1680777518721511 1 IN IP4 192.168.1.128
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] s=Session streamed by "preview"
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] t=0 0
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] a=tool:BC Streaming Media v202210012022.10.01
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] a=type:broadcast
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:*
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] a=range:npt=now-
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] a=x-qt-text-nam:Session streamed by "preview"
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] m=video 0 RTP/AVP 96
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] c=IN IP4 0.0.0.0
2023-04-06 15:10:22.467 DEBUG (webrtc) [custom_components.webrtc.utils] b=AS:8192
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] a=rtpmap:96 H264/90000
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] a=range:npt=now-
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKAoAPGQ,aO48sA==
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] a=recvonly
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:track1
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] m=audio 0 RTP/AVP 97
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] c=IN IP4 0.0.0.0
2023-04-06 15:10:22.469 DEBUG (webrtc) [custom_components.webrtc.utils] b=AS:8192
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] a=rtpmap:97 MPEG4-GENERIC/16000
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] a=recvonly
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:track2
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] m=audio 0 RTP/AVP 8
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:track3
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] a=rtpmap:8 PCMA/8000
2023-04-06 15:10:22.470 DEBUG (webrtc) [custom_components.webrtc.utils] a=sendonly
2023-04-06 15:10:22.471 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.469 TRC [rtsp] client request:
2023-04-06 15:10:22.471 DEBUG (webrtc) [custom_components.webrtc.utils] DESCRIBE rtsp://192.168.1.128:554/h264Preview_01_main RTSP/1.0
2023-04-06 15:10:22.471 DEBUG (webrtc) [custom_components.webrtc.utils] Accept: application/sdp
2023-04-06 15:10:22.471 DEBUG (webrtc) [custom_components.webrtc.utils] User-Agent: go2rtc/1.2.0
2023-04-06 15:10:22.471 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 3
2023-04-06 15:10:22.471 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.471 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.477 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.476 TRC [rtsp] client response:
2023-04-06 15:10:22.477 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 401 Unauthorized
2023-04-06 15:10:22.479 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 3
2023-04-06 15:10:22.480 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:10:22 GMT
2023-04-06 15:10:22.481 DEBUG (webrtc) [custom_components.webrtc.utils] Www-Authenticate: Digest realm="BC Streaming Media", nonce="2e6b810a56be3f4701db8104611d8ac6"
2023-04-06 15:10:22.482 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.483 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.477 TRC [rtsp] client request:
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] DESCRIBE rtsp://192.168.1.128:554/h264Preview_01_main RTSP/1.0
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] Accept: application/sdp
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] User-Agent: go2rtc/1.2.0
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 4
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="2e6b810a56be3f4701db8104611d8ac6", uri="rtsp://192.168.1.128:554/h264Preview_01_main", response="d575f15ace2a2ec305c023e3226ac01c"
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.484 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.517 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.514 TRC [rtsp] client response:
2023-04-06 15:10:22.517 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 15:10:22.517 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Base: rtsp://192.168.1.128/Preview_01_main/
2023-04-06 15:10:22.517 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Type: application/sdp
2023-04-06 15:10:22.517 DEBUG (webrtc) [custom_components.webrtc.utils] Content-Length: 689
2023-04-06 15:10:22.517 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 4
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:10:22 GMT
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] v=0
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] o=- 1680777518721511 1 IN IP4 192.168.1.128
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] s=Session streamed by "preview"
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] t=0 0
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] a=tool:BC Streaming Media v202210012022.10.01
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] a=type:broadcast
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:*
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] a=range:npt=now-
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] a=x-qt-text-nam:Session streamed by "preview"
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] m=video 0 RTP/AVP 96
2023-04-06 15:10:22.518 DEBUG (webrtc) [custom_components.webrtc.utils] c=IN IP4 0.0.0.0
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] b=AS:8192
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=rtpmap:96 H264/90000
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=range:npt=now-
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKAoAPGQ,aO48sA==
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=recvonly
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:track1
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] m=audio 0 RTP/AVP 97
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] c=IN IP4 0.0.0.0
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] b=AS:8192
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=rtpmap:97 MPEG4-GENERIC/16000
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
2023-04-06 15:10:22.519 DEBUG (webrtc) [custom_components.webrtc.utils] a=recvonly
2023-04-06 15:10:22.520 DEBUG (webrtc) [custom_components.webrtc.utils] a=control:track2
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.514 TRC [rtsp] client request:
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] SETUP rtsp://192.168.1.128/Preview_01_main/track1 RTSP/1.0
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] Transport: RTP/AVP/TCP;unicast;interleaved=0-1
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 5
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="2e6b810a56be3f4701db8104611d8ac6", uri="rtsp://192.168.1.128/Preview_01_main/track1", response="a3887d5b28622703977559d691ce93b8"
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.521 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.556 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.556 TRC [rtsp] client response:
2023-04-06 15:10:22.557 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 15:10:22.557 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 5
2023-04-06 15:10:22.557 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:10:22 GMT
2023-04-06 15:10:22.557 DEBUG (webrtc) [custom_components.webrtc.utils] Transport: RTP/AVP/TCP;unicast;destination=192.168.1.131;source=192.168.1.128;interleaved=0-1
2023-04-06 15:10:22.557 DEBUG (webrtc) [custom_components.webrtc.utils] Session: 36AEED49;timeout=65
2023-04-06 15:10:22.557 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.557 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.558 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.558 TRC [rtsp] client request:
2023-04-06 15:10:22.558 DEBUG (webrtc) [custom_components.webrtc.utils] PLAY rtsp://192.168.1.128/Preview_01_main/ RTSP/1.0
2023-04-06 15:10:22.558 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 6
2023-04-06 15:10:22.558 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="2e6b810a56be3f4701db8104611d8ac6", uri="rtsp://192.168.1.128/Preview_01_main/", response="d0b744717d0b657e22d8448efe7b93d9"
2023-04-06 15:10:22.558 DEBUG (webrtc) [custom_components.webrtc.utils] Session: 36AEED49
2023-04-06 15:10:22.558 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.558 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.611 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:22.611 TRC [rtsp] client response:
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 6
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:10:22 GMT
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] Range: npt=0.000-
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] Session: 36AEED49
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] Rtp-Info: url=rtsp://192.168.1.128/Preview_01_main/track1;seq=43823;rtptime=1574432495,url=rtsp://192.168.1.128/Preview_01_main/track2;seq=0;rtptime=0,url=rtsp://192.168.1.128/Preview_01_main/track3;seq=0;rtptime=0
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:22.612 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:47.559 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:47.558 TRC [rtsp] client request:
2023-04-06 15:10:47.561 DEBUG (webrtc) [custom_components.webrtc.utils] OPTIONS rtsp://192.168.1.128/Preview_01_main/ RTSP/1.0
2023-04-06 15:10:47.561 DEBUG (webrtc) [custom_components.webrtc.utils] Session: 36AEED49
2023-04-06 15:10:47.562 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 7
2023-04-06 15:10:47.562 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="2e6b810a56be3f4701db8104611d8ac6", uri="rtsp://192.168.1.128/Preview_01_main/", response="335b11fbcc4fd070215840db0c82be0a"
2023-04-06 15:10:47.562 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:47.562 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:47.570 DEBUG (webrtc) [custom_components.webrtc.utils] 15:10:47.570 TRC [rtsp] client response:
2023-04-06 15:10:47.570 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 15:10:47.571 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 7
2023-04-06 15:10:47.571 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:10:47 GMT
2023-04-06 15:10:47.571 DEBUG (webrtc) [custom_components.webrtc.utils] Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
2023-04-06 15:10:47.571 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:47.571 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:10:55.989 ERROR (MainThread) [moonraker_api.websockets.websocketclient] Websocket connection error: Cannot connect to host 192.168.1.120:7125 ssl:default [Connect call failed ('192.168.1.120', 7125)]
2023-04-06 15:11:12.560 DEBUG (webrtc) [custom_components.webrtc.utils] 15:11:12.560 TRC [rtsp] client request:
2023-04-06 15:11:12.560 DEBUG (webrtc) [custom_components.webrtc.utils] OPTIONS rtsp://192.168.1.128/Preview_01_main/ RTSP/1.0
2023-04-06 15:11:12.560 DEBUG (webrtc) [custom_components.webrtc.utils] Authorization: Digest username="admin", realm="BC Streaming Media", nonce="2e6b810a56be3f4701db8104611d8ac6", uri="rtsp://192.168.1.128/Preview_01_main/", response="335b11fbcc4fd070215840db0c82be0a"
2023-04-06 15:11:12.560 DEBUG (webrtc) [custom_components.webrtc.utils] Session: 36AEED49
2023-04-06 15:11:12.561 DEBUG (webrtc) [custom_components.webrtc.utils] CSeq: 8
2023-04-06 15:11:12.561 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:11:12.561 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:11:12.565 DEBUG (webrtc) [custom_components.webrtc.utils] 15:11:12.565 TRC [rtsp] client response:
2023-04-06 15:11:12.566 DEBUG (webrtc) [custom_components.webrtc.utils] RTSP/1.0 200 OK
2023-04-06 15:11:12.566 DEBUG (webrtc) [custom_components.webrtc.utils] Cseq: 8
2023-04-06 15:11:12.566 DEBUG (webrtc) [custom_components.webrtc.utils] Date: Thu, Apr 06 2023 13:11:12 GMT
2023-04-06 15:11:12.566 DEBUG (webrtc) [custom_components.webrtc.utils] Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER
2023-04-06 15:11:12.566 DEBUG (webrtc) [custom_components.webrtc.utils] 
2023-04-06 15:11:12.566 DEBUG (webrtc) [custom_components.webrtc.utils] 
NickM-27 commented 1 year ago

So you are seeing the same thing I am which is that when go2rtc requests the backchannel audio, the doorbell responds with RTSP/1.0 401 Unauthorized but for some reason the request without backchannel audio works without issue

savage7 commented 1 year ago

Yes the same for me, I tried to play a sound file via curl and got: RTSP/1.0 401 Unauthorized Curl printed can't match media not sure why.

NickM-27 commented 1 year ago

I wonder if there is a setting or special permission that needs to be enabled in settings

luisiam commented 1 year ago

I am trying the same thing with scrypted and looks like it's getting further. However, it is still not working. This is the trace from scrypted.

rtsp outgoing message
 OPTIONS rtsp://192.168.10.21:554/ RTSP/1.0
CSeq: 0
User-Agent: Scrypted

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 0
Date: Tue, Apr 04 2023 04:29:36 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER

rtsp outgoing message
 DESCRIBE rtsp://192.168.10.21:554/ RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Accept: application/sdp
CSeq: 1
User-Agent: Scrypted

rtsp incoming message
 RTSP/1.0 401 Unauthorized
CSeq: 1
Date: Tue, Apr 04 2023 04:29:36 GMT
WWW-Authenticate: Digest realm="BC Streaming Media", nonce="7de360e2e91f3545c54e6b582719ce61"

rtsp outgoing message
 DESCRIBE rtsp://192.168.10.21:554/ RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Accept: application/sdp
CSeq: 2
User-Agent: Scrypted
Authorization: Digest username="xxx", realm="BC Streaming Media", nonce="7de360e2e91f3545c54e6b582719ce61", uri="rtsp://192.168.10.21:554/", algorithm="MD5", response="214ea20b200764a3ad81871d9ef7b087"

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 2
Date: Tue, Apr 04 2023 04:29:36 GMT
Content-Base: rtsp://192.168.10.21//
Content-Type: application/sdp
Content-Length: 740

ONVIF Backchannel SDP:
v=0
o=- 1680582035944237 1 IN IP4 192.168.0.3
s=Session streamed by "preview"
t=0 0
a=tool:BC Streaming Media v202210012022.10.01
a=type:broadcast
a=control:*
a=range:npt=now-
a=x-qt-text-nam:Session streamed by "preview"
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:8192
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKAoAPGQ,aO48sA==
a=recvonly
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:8192
a=rtpmap:97 MPEG4-GENERIC/16000
a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
a=recvonly
a=control:track2
m=audio 0 RTP/AVP 8
a=control:track3
a=rtpmap:8 PCMA/8000
a=sendonly
rtsp outgoing message
 SETUP rtsp://192.168.10.21:554/track3 RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Transport: RTP/AVP;unicast;client_port=43271-43272
CSeq: 3
User-Agent: Scrypted
Authorization: Digest username="xxx", realm="BC Streaming Media", nonce="7de360e2e91f3545c54e6b582719ce61", uri="rtsp://192.168.10.21:554/track3", algorithm="MD5", response="705c9971d5fde82bf1a11227e7e512a9"

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 3
Date: Tue, Apr 04 2023 04:29:36 GMT
Transport: RTP/AVP;unicast;destination=192.168.10.3;source=192.168.10.21;client_port=43271-43272;server_port=6974-6975
Session: A99439ED;timeout=65

backchannel transport {
  'RTP/AVP': undefined,
  unicast: undefined,
  destination: '192.168.10.3',
  source: '192.168.10.21',
  client_port: '43271-43272',
  server_port: '6974-6975'
}
-hide_banner -rtsp_transport udp -i rtsp:[REDACTED] -vn -acodec pcm_alaw -ar 8000 -ac 1 -payload_type 8 -ssrc 1981072471 -f rtp rtp://192.168.10.21:6974?localrtpport=43271&localrtcpport=43272
rtsp outgoing message
 PLAY rtsp://192.168.10.21:554/ RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Range: npt=0.000-
CSeq: 4
User-Agent: Scrypted
Authorization: Digest username="xxx", realm="BC Streaming Media", nonce="7de360e2e91f3545c54e6b582719ce61", uri="rtsp://192.168.10.21:554/", algorithm="MD5", response="a467a91cd5eb13cbc47a06faf34b32f8"
Session: A99439ED

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 4
Date: Tue, Apr 04 2023 04:29:37 GMT
Range: npt=0.000-
Session: A99439ED
RTP-Info: url=rtsp://192.168.10.21//track1;seq=0;rtptime=0,url=rtsp://192.168.10.21//track2;seq=0;rtptime=0,url=rtsp://192.168.10.21//track3;seq=0;rtptime=0

intercom playing
Input #0, rtsp, from 'rtsp://127.0.0.1:39559':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Audio: opus, 48000 Hz, stereo, fltp

Stream mapping:
  Stream #0:0 -> #0:0 (opus (native) -> pcm_alaw (native))
Press [q] to stop, [?] for help

Output #0, rtp, to 'rtp://192.168.10.21:6974?localrtpport=43271&localrtcpport=43272':
  Metadata:
    encoder         : Lavf59.16.100
  Stream #0:0: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
    Metadata:
      encoder         : Lavc59.18.100 pcm_alaw
size=       0kB time=00:00:00.01 bitrate=  81.8kbits/s speed=N/A    
video/audio detected, discarding further input
SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 192.168.10.21
t=0 0
a=tool:libavformat 59.16.100
m=audio 6974 RTP/AVP 8
b=AS:64
spawn451 commented 1 year ago

How do you have configured your go2rtc.yaml in Home Assistant ? Mine look like this :

go2rtc.yaml

reolink_1: ffmpeg:rtsp://admin:password@192.168.10.51:554/Preview_01_sub#audio=opus#video=h264#backchannel=0 reolink_2: ffmpeg:rtsp://admin:password@192.168.10.51:554/Preview_01_sub#audio=opus#video=h264

log: level: debug # default level api: debug exec: debug ngrok: info rtsp: debug streams: debug webrtc: debug

2 ways audio doesn't work either but I cannot get a verbose log like you have, how did you manage to get all these informations in your log ?

configuration.yaml

logger: default: info logs: custom_components.webrtc: debug

NickM-27 commented 1 year ago

@spawn451 you can't use ffmpeg, that does not support 2 way audio

spawn451 commented 1 year ago

@NickM-27 But if I don’t use ffmpeg and for example set this : rtsp://admin:password@192.168.10.51:554/Preview_01_sub I don’t get any sound at all. I Sorry I’m a novice in this domain.

NickM-27 commented 1 year ago

@spawn451 you need to set it up like this:

streams:
  reolink:
    - rtsp://admin:password@192.168.10.51:554/Preview_01_sub
    - ffmpeg:reolink#audio=opus
spawn451 commented 1 year ago

@NickM-27 Thanks! I’m gonna change my config.

luisiam commented 1 year ago

Scrypted is updated and 2-way audio is working with the ONVIF plugin

kevdliu commented 1 year ago

This is the commit that added support https://github.com/koush/scrypted/commit/ec3e16f20fa7ab1a532aaccd1345a59a02024039

kevdliu commented 1 year ago

@luisiam could you post a trace from scrypted with 2-way audio working? I want to compare it with the log you posted above to see if there are any differences.

rbray89 commented 1 year ago

If you check go2rtc's commit history, there's a recent patch to fix the issue.

On Wed, Apr 12, 2023, 5:01 PM kevdliu @.***> wrote:

@luisiam https://github.com/luisiam could you post a trace from scrypted with 2-way audio working? I want to compare it with the log you posted above to see if there are any differences.

— Reply to this email directly, view it on GitHub https://github.com/AlexxIT/go2rtc/issues/331#issuecomment-1506075168, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAILPFAVNRE6QKNFETMJJITXA4X45ANCNFSM6AAAAAAWSFVP4Q . You are receiving this because you are subscribed to this thread.Message ID: @.***>

NickM-27 commented 1 year ago

@rbray89 more work is needed, the doorbell does not play audio in my testing

rbray89 commented 1 year ago

It could be a transcoding issue. Reolink only uses AAC, and Opus/PCM is used by webrtc.

NickM-27 commented 1 year ago

@rbray89 that is also incorrect. If you check the sendonly audio channel on the reolink doorbell, it is PCMA/8000 which you can see from the RTSP DESCRIBE response in an earlier comment https://github.com/AlexxIT/go2rtc/issues/331#issuecomment-1495791405

luisiam commented 1 year ago

@luisiam could you post a trace from scrypted with 2-way audio working? I want to compare it with the log you posted above to see if there are any differences.

Here it is

[WebRTC Plugin]: signalingState have-remote-offer
[WebRTC Plugin]: iceGatheringState gathering
[WebRTC Plugin]: signalingState stable
[WebRTC Plugin]: connectionState connecting
[WebRTC Plugin]: iceConnectionState checking
[WebRTC Plugin]: waiting ice connected
[WebRTC Plugin]: iceConnectionState completed
[WebRTC Plugin]: iceGatheringState complete
[WebRTC Plugin]: iceConnectionState connected
[WebRTC Plugin]: connectionState connected
[WebRTC Plugin]: ice transport { ipv4: true, isPrivate: true, destinationId: '192.168.10.164' }
[WebRTC Plugin]: Connection is local network: true
[WebRTC Plugin]: done waiting ice connected
[Rebroadcast Plugin]: Selected stream Profile000_MainStream
[Rebroadcast Plugin]: sending prebuffer 1999.25
[RTC Connection Bridge]: Client Stream Profile {
[RTC Connection Bridge]:   transcodeBaseline: false,
[RTC Connection Bridge]:   sessionSupportsH264High: true,
[RTC Connection Bridge]:   maximumCompatibilityMode: false,
[RTC Connection Bridge]:   userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.34',
[RTC Connection Bridge]:   capabilities: {
[RTC Connection Bridge]:     audio: { codecs: [Array], headerExtensions: [Array] },
[RTC Connection Bridge]:     video: { codecs: [Array], headerExtensions: [Array] }
[RTC Connection Bridge]:   },
[RTC Connection Bridge]:   screen: { devicePixelRatio: 1, width: 3440, height: 1440 }
[RTC Connection Bridge]: }
[RTC Connection Bridge]: rtsp/tcp h264
[RTC Connection Bridge]: a/v h264 opus found h264 undefined
[RTC Connection Bridge]: rtsp/tcp aac
[RTC Connection Bridge]: -hide_banner -i rtsp:[REDACTED] -acodec libopus -flags +global_header -ar 48k -b:a 40k -bufsize 96k -ac 2 -application lowdelay -dn -sn -vn -f rtp rtp://127.0.0.1:44508? -sdp_file pipe:4
[Rebroadcast Plugin]: Profile000_MainStream active rebroadcast clients: 1
[Rebroadcast Plugin]: Found sync frame in rtsp prebuffer.
[RTC Connection Bridge]: first video packet 405
[RTC Connection Bridge]: [rtsp @ 0x6dfa980] method SETUP failed: 461 Unsupported Transport
[RTC Connection Bridge]: Input #0, rtsp, from 'rtsp://127.0.0.1:41295':
[RTC Connection Bridge]:   Metadata:
[RTC Connection Bridge]:     title           : Session streamed by "preview"
[RTC Connection Bridge]:   Duration: N/A, start: 0.000000, bitrate: N/A
[RTC Connection Bridge]:   Stream #0:0: Audio: aac (LC), 16000 Hz, mono, fltp
[RTC Connection Bridge]: Stream mapping:
[RTC Connection Bridge]:   Stream #0:0 -> #0:0 (aac (native) -> opus (libopus))
[RTC Connection Bridge]: Press [q] to stop, [?] for help
[RTC Connection Bridge]: Output #0, rtp, to 'rtp://127.0.0.1:44508?':
[RTC Connection Bridge]:   Metadata:
[RTC Connection Bridge]:     title           : Session streamed by "preview"
[RTC Connection Bridge]:     encoder         : Lavf59.16.100
[RTC Connection Bridge]:   Stream #0:0: Audio: opus, 48000 Hz, stereo, flt, 40 kb/s
[RTC Connection Bridge]:     Metadata:
[RTC Connection Bridge]:       encoder         : Lavc59.18.100 libopus
[RTC Connection Bridge]: size=       0kB time=00:00:00.05 bitrate=  65.5kbits/s speed=5.75e+04x
[RTC Connection Bridge]: video/audio detected, discarding further input
rtsp outgoing message
 OPTIONS rtsp://192.168.10.21:554/ RTSP/1.0
CSeq: 0
User-Agent: Scrypted

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 0
Date: Wed, Apr 12 2023 23:32:14 GMT
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER

rtsp outgoing message
 DESCRIBE rtsp://192.168.10.21:554/ RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Accept: application/sdp
CSeq: 1
User-Agent: Scrypted

rtsp incoming message
 RTSP/1.0 401 Unauthorized
CSeq: 1
Date: Wed, Apr 12 2023 23:32:14 GMT
WWW-Authenticate: Digest realm="BC Streaming Media", nonce="c191793b9885d76c0f965571993b7867"

rtsp outgoing message
 DESCRIBE rtsp://192.168.10.21:554/ RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Accept: application/sdp
CSeq: 2
User-Agent: Scrypted
Authorization: Digest username="xxx", realm="BC Streaming Media", nonce="c191793b9885d76c0f965571993b7867", uri="rtsp://192.168.10.21:554/", algorithm="MD5", response="3bc6e9038db0bb4ad9fda4913fee369d"

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 2
Date: Wed, Apr 12 2023 23:32:15 GMT
Content-Base: rtsp://192.168.10.21//
Content-Type: application/sdp
Content-Length: 742

ONVIF Backchannel SDP:
v=0
o=- 1681318297217039 1 IN IP4 192.168.10.21
s=Session streamed by "preview"
t=0 0
a=tool:BC Streaming Media v202210012022.10.01
a=type:broadcast
a=control:*
a=range:npt=now-
a=x-qt-text-nam:Session streamed by "preview"
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:8192
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKAoAPGQ,aO48sA==
a=recvonly
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:8192
a=rtpmap:97 MPEG4-GENERIC/16000
a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
a=recvonly
a=control:track2
m=audio 0 RTP/AVP 8
a=control:track3
a=rtpmap:8 PCMA/8000
a=sendonly
rtsp outgoing message
 SETUP rtsp://192.168.10.21:554/track3 RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Transport: RTP/AVP;unicast;client_port=49569-49570
CSeq: 3
User-Agent: Scrypted
Authorization: Digest username="xxx", realm="BC Streaming Media", nonce="c191793b9885d76c0f965571993b7867", uri="rtsp://192.168.10.21:554/track3", algorithm="MD5", response="41e6ac72b574787b4861ac179c4d3f90"

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 3
Date: Wed, Apr 12 2023 23:32:15 GMT
Transport: RTP/AVP;unicast;destination=192.168.10.3;source=192.168.10.21;client_port=49569-49570;server_port=6976-6977
Session: C0563045;timeout=65

backchannel transport {
  'RTP/AVP': undefined,
  unicast: undefined,
  destination: '192.168.10.3',
  source: '192.168.10.21',
  client_port: '49569-49570',
  server_port: '6976-6977'
}
rtsp outgoing message
 PLAY rtsp://192.168.10.21:554/ RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Range: npt=0.000-
CSeq: 4
User-Agent: Scrypted
Authorization: Digest username="xxx", realm="BC Streaming Media", nonce="c191793b9885d76c0f965571993b7867", uri="rtsp://192.168.10.21:554/", algorithm="MD5", response="4e58e3c9fc6875a812d367822aa92043"
Session: C0563045

rtsp incoming message
 RTSP/1.0 200 OK
CSeq: 4
Date: Wed, Apr 12 2023 23:32:15 GMT
Range: npt=0.000-
Session: C0563045
RTP-Info: url=rtsp://192.168.10.21//track1;seq=0;rtptime=0,url=rtsp://192.168.10.21//track2;seq=0;rtptime=0,url=rtsp://192.168.10.21//track3;seq=0;rtptime=0

intercom playing
[WebRTC Plugin]: signalingState closed
[WebRTC Plugin]: connectionState closed
[WebRTC Plugin]: iceConnectionState closed
[Rebroadcast Plugin]: Profile000_MainStream active rebroadcast clients: 0
[RTC Connection Bridge]: ffmpeg exited
SilverHazeLazers commented 1 year ago

@NickM-27 Not sure if helpful but Reolink just released a new build DB_566128M5MP_P.2017_23041202.Reolink-Video-Doorbell-PoE.OV05A10.5MP.REOLINK.pak. Some users in the reolink forum are claiming 2 way audio issues they were having before have been resolved

NickM-27 commented 1 year ago

@SilverHazeLazers any idea where to get that build? as far as I can tell, reolink has removed the doorbell firmware builds from their website. Perhaps that is a sign that things are not ready yet.

rbray89 commented 1 year ago

https://github.com/AT0myks/reolink-fw-archive

On Thu, Apr 13, 2023, 6:42 AM Nicolas Mowen @.***> wrote:

@SilverHazeLazers https://github.com/SilverHazeLazers any idea where to get that build? as far as I can tell, reolink has removed the doorbell firmware builds from their website. Perhaps that is a sign that things are not ready yet.

— Reply to this email directly, view it on GitHub https://github.com/AlexxIT/go2rtc/issues/331#issuecomment-1506897322, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAILPFBWDVMN3YAYD5HCWSTXA7YDRANCNFSM6AAAAAAWSFVP4Q . You are receiving this because you were mentioned.Message ID: @.***>

NickM-27 commented 1 year ago

Just tried it, seeing some errors in go2rtc:

2023-04-13 08:05:46.732406150  twcc_sender_interceptor ERROR: 2023/04/13 08:05:46 io: read/write on closed pipe
2023-04-13 08:05:46.832662953  twcc_sender_interceptor ERROR: 2023/04/13 08:05:46 io: read/write on closed pipe
2023-04-13 08:05:46.932403368  twcc_sender_interceptor ERROR: 2023/04/13 08:05:46 io: read/write on closed pipe
2023-04-13 08:05:47.032937544  twcc_sender_interceptor ERROR: 2023/04/13 08:05:47 io: read/write on closed pipe
2023-04-13 08:05:47.132591387  twcc_sender_interceptor ERROR: 2023/04/13 08:05:47 io: read/write on closed pipe
AlexxIT commented 1 year ago

@NickM-27 Are you sure this logs from go2rtc? I don't know what is twcc_sender_interceptor And it's very strange log format

NickM-27 commented 1 year ago

I agree it is a weird format and doesn't match go2rtc logs, but it definitely came from the process running go2rtc and it happened right when I tried to play the two way talk with the doorbell.

That being said, I did a handful of refreshes trying to get it to work so it may not be related to the reason two way talk isn't working with the doorbell.

kevdliu commented 1 year ago

I might be misunderstanding how go2rtc works but it's peculiar to me that I don't see any log entries related to ffmpeg transcoding opus audio to pcma for the audio backchannel. I do see it transcoding AAC to opus for the audio from the camera.

This is the logs with rtsp and exec set to trace: https://pastebin.com/6qerLzd8 Same for when I try to play a mp3 file: https://pastebin.com/kpHALS86

I see ffmpeg entries for mp3 -> go2rtc and camera -> go2rtc but nothing to the camera. It also always throws a av_interleaved_write_frame(): Broken pipe

This is my stream config:

streams:
  reolink: 
    - "rtsp://admin:XXXXXXX@192.168.1.65:554/h264Preview_01_sub"
    - ffmpeg:reolink#audio=opus

Edit: I realize now that since webrtc supports pcma no transcoding is required. Still weird that it's not transcoding the mp3 to pcma though.

AlexxIT commented 1 year ago

I don't have this device so can't help. It's hard to debug two way audio remotely.

AlexxIT commented 1 year ago

@kevdliu you trying to send MP3 codec to camera. You need to transcode it to PCMA

exec:ffmpeg -hide_banner -fflags nobuffer -flags low_delay -i http://192.168.1.230:8000/sample-3s.mp3 -c copy -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp rtsp://localhost:8554/028db4878179f07193dd7db9f2a4633d
kevdliu commented 1 year ago

@AlexxIT I was under the impression that appending #audio=pcma#input=file to the POST request url would transcode the mp3 before sending to camera.

AlexxIT commented 1 year ago

@kevdliu yes, it should. How did you run this API? Because some utility can skip anchor symbol

kevdliu commented 1 year ago

@AlexxIT Ah I didn't url encode the anchor. Thanks!

I fixed the request and now everything looks fine from the go2rtc side but audio is still not playing on the camera. So this is a bit of a mystery ¯_(ツ)_/¯. I compared what scrypted is doing vs go2rtc and I couldn't find any differences that would have an impact on audio playback.

2023-04-14T14:43:08.407432000Z 10:43:08.407 INF go2rtc version 1.3.1 linux/arm64
2023-04-14T14:43:08.411879000Z 10:43:08.407 INF [api] listen addr=:1984
2023-04-14T14:43:08.412161000Z 10:43:08.408 INF [rtsp] listen addr=:8554
2023-04-14T14:43:08.412278000Z 10:43:08.409 INF [hass] load stream url=hass:Upstairs
2023-04-14T14:43:08.412371000Z 10:43:08.409 INF [hass] load stream url=hass:Downstairs
2023-04-14T14:43:08.412462000Z 10:43:08.410 INF [hass] load stream url=hass:Abode
2023-04-14T14:43:08.412555000Z 10:43:08.410 INF [hass] load stream url=hass:Nanoleaf
2023-04-14T14:43:08.412642000Z 10:43:08.410 INF [srtp] listen addr=:8443
2023-04-14T14:43:08.412728000Z 10:43:08.410 INF [webrtc] listen addr=:8555/tcp
2023-04-14T14:45:18.008427000Z 10:45:18.008 TRC [rtsp] client request:
2023-04-14T14:45:18.008786000Z DESCRIBE rtsp://192.168.1.65:554/h264Preview_01_sub RTSP/1.0
2023-04-14T14:45:18.008920000Z Accept: application/sdp
2023-04-14T14:45:18.009020000Z Require: www.onvif.org/ver20/backchannel
2023-04-14T14:45:18.009117000Z User-Agent: go2rtc/1.3.1
2023-04-14T14:45:18.009222000Z CSeq: 1
2023-04-14T14:45:18.009309000Z 
2023-04-14T14:45:18.013054000Z 10:45:18.012 TRC [rtsp] client response:
2023-04-14T14:45:18.013185000Z RTSP/1.0 401 Unauthorized
2023-04-14T14:45:18.013284000Z Cseq: 1
2023-04-14T14:45:18.013372000Z Date: Fri, Apr 14 2023 14:45:18 GMT
2023-04-14T14:45:18.013458000Z Www-Authenticate: Digest realm="BC Streaming Media", nonce="1efee0822b17b7fce2c27a9a1de6db9d"
2023-04-14T14:45:18.013545000Z 
2023-04-14T14:45:18.013764000Z 10:45:18.012 TRC [rtsp] client request:
2023-04-14T14:45:18.013995000Z DESCRIBE rtsp://192.168.1.65:554/h264Preview_01_sub RTSP/1.0
2023-04-14T14:45:18.014079000Z User-Agent: go2rtc/1.3.1
2023-04-14T14:45:18.014161000Z CSeq: 2
2023-04-14T14:45:18.014250000Z Authorization: Digest username="admin", realm="BC Streaming Media", nonce="1efee0822b17b7fce2c27a9a1de6db9d", uri="rtsp://192.168.1.65:554/h264Preview_01_sub", response="8a7076b150f95f70cca91388e4d0d0b6"
2023-04-14T14:45:18.014347000Z Accept: application/sdp
2023-04-14T14:45:18.014429000Z Require: www.onvif.org/ver20/backchannel
2023-04-14T14:45:18.014515000Z 
2023-04-14T14:45:18.059635000Z 10:45:18.059 TRC [rtsp] client response:
2023-04-14T14:45:18.060055000Z RTSP/1.0 200 OK
2023-04-14T14:45:18.060162000Z Cseq: 2
2023-04-14T14:45:18.060258000Z Date: Fri, Apr 14 2023 14:45:18 GMT
2023-04-14T14:45:18.060351000Z Content-Base: rtsp://192.168.1.65/Preview_01_sub/
2023-04-14T14:45:18.060451000Z Content-Type: application/sdp
2023-04-14T14:45:18.060550000Z Content-Length: 741
2023-04-14T14:45:18.060650000Z 
2023-04-14T14:45:18.060737000Z v=0
2023-04-14T14:45:18.060822000Z o=- 1681338240298898 1 IN IP4 192.168.1.65
2023-04-14T14:45:18.060911000Z s=Session streamed by "preview"
2023-04-14T14:45:18.060996000Z t=0 0
2023-04-14T14:45:18.061079000Z a=tool:BC Streaming Media v202210012022.10.01
2023-04-14T14:45:18.061170000Z a=type:broadcast
2023-04-14T14:45:18.061259000Z a=control:*
2023-04-14T14:45:18.061354000Z a=range:npt=now-
2023-04-14T14:45:18.061451000Z a=x-qt-text-nam:Session streamed by "preview"
2023-04-14T14:45:18.061541000Z m=video 0 RTP/AVP 96
2023-04-14T14:45:18.061651000Z c=IN IP4 0.0.0.0
2023-04-14T14:45:18.061746000Z b=AS:8192
2023-04-14T14:45:18.061831000Z a=rtpmap:96 H264/90000
2023-04-14T14:45:18.061923000Z a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKCgPZA=,aO48sA==
2023-04-14T14:45:18.062018000Z a=recvonly
2023-04-14T14:45:18.062117000Z a=control:track1
2023-04-14T14:45:18.062218000Z m=audio 0 RTP/AVP 97
2023-04-14T14:45:18.062304000Z c=IN IP4 0.0.0.0
2023-04-14T14:45:18.062379000Z b=AS:8192
2023-04-14T14:45:18.062454000Z a=rtpmap:97 MPEG4-GENERIC/16000
2023-04-14T14:45:18.062542000Z a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
2023-04-14T14:45:18.062627000Z a=recvonly
2023-04-14T14:45:18.062712000Z a=control:track2
2023-04-14T14:45:18.062794000Z m=audio 0 RTP/AVP 8
2023-04-14T14:45:18.062891000Z a=control:track3
2023-04-14T14:45:18.062976000Z a=rtpmap:8 PCMA/8000
2023-04-14T14:45:18.063059000Z a=sendonly
2023-04-14T14:45:18.063143000Z 10:45:18.059 DBG [exec] run url="exec:ffmpeg -hide_banner -re -i http://192.168.1.230:8000/sample-3s.mp3 -vn -c:a pcm_alaw -ar:a 8000 -ac:a 1 -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9"
2023-04-14T14:45:18.187939000Z Input #0, mp3, from 'http://192.168.1.230:8000/sample-3s.mp3':
2023-04-14T14:45:18.188296000Z   Metadata:
2023-04-14T14:45:18.188437000Z     encoder         : Lavf57.83.100
2023-04-14T14:45:18.188543000Z   Duration: 00:00:03.24, start: 0.025057, bitrate: 128 kb/s
2023-04-14T14:45:18.188725000Z   Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s
2023-04-14T14:45:18.188831000Z     Metadata:
2023-04-14T14:45:18.188954000Z       encoder         : Lavc57.10
2023-04-14T14:45:18.189049000Z Stream mapping:
2023-04-14T14:45:18.189171000Z   Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_alaw (native))
2023-04-14T14:45:18.189260000Z Press [q] to stop, [?] for help
2023-04-14T14:45:18.191481000Z 10:45:18.191 TRC [rtsp] server request:
2023-04-14T14:45:18.191829000Z OPTIONS rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9 RTSP/1.0
2023-04-14T14:45:18.191947000Z Cseq: 1
2023-04-14T14:45:18.192032000Z User-Agent: ffmpeg/go2rtc
2023-04-14T14:45:18.192121000Z 
2023-04-14T14:45:18.192283000Z 10:45:18.191 TRC [rtsp] server response:
2023-04-14T14:45:18.192378000Z RTSP/1.0 200 OK
2023-04-14T14:45:18.192459000Z Public: OPTIONS, SETUP, TEARDOWN, DESCRIBE, PLAY, PAUSE, ANNOUNCE, RECORD
2023-04-14T14:45:18.192542000Z Cseq: 1
2023-04-14T14:45:18.192619000Z 
2023-04-14T14:45:18.234075000Z 10:45:18.233 TRC [rtsp] server request:
2023-04-14T14:45:18.234407000Z ANNOUNCE rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9 RTSP/1.0
2023-04-14T14:45:18.234589000Z Content-Length: 149
2023-04-14T14:45:18.234707000Z Content-Type: application/sdp
2023-04-14T14:45:18.234813000Z Cseq: 2
2023-04-14T14:45:18.234896000Z User-Agent: ffmpeg/go2rtc
2023-04-14T14:45:18.235006000Z 
2023-04-14T14:45:18.235103000Z v=0
2023-04-14T14:45:18.235463000Z o=- 0 0 IN IP6 ::1
2023-04-14T14:45:18.235639000Z s=No Name
2023-04-14T14:45:18.235753000Z c=IN IP6 ::1
2023-04-14T14:45:18.235840000Z t=0 0
2023-04-14T14:45:18.235923000Z a=tool:libavformat LIBAVFORMAT_VERSION
2023-04-14T14:45:18.236004000Z m=audio 0 RTP/AVP 8
2023-04-14T14:45:18.236083000Z b=AS:64
2023-04-14T14:45:18.236192000Z a=control:streamid=0
2023-04-14T14:45:18.236363000Z 10:45:18.233 TRC [rtsp] server response:
2023-04-14T14:45:18.236446000Z RTSP/1.0 200 OK
2023-04-14T14:45:18.236530000Z Cseq: 2
2023-04-14T14:45:18.236614000Z 
2023-04-14T14:45:18.236770000Z 10:45:18.234 TRC [rtsp] server request:
2023-04-14T14:45:18.236869000Z SETUP rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9/streamid=0 RTSP/1.0
2023-04-14T14:45:18.236960000Z Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
2023-04-14T14:45:18.237045000Z Cseq: 3
2023-04-14T14:45:18.237133000Z User-Agent: ffmpeg/go2rtc
2023-04-14T14:45:18.237223000Z 
2023-04-14T14:45:18.237380000Z 10:45:18.234 TRC [rtsp] server response:
2023-04-14T14:45:18.237474000Z RTSP/1.0 200 OK
2023-04-14T14:45:18.237559000Z Transport: RTP/AVP/TCP;unicast;interleaved=0-1
2023-04-14T14:45:18.237695000Z Cseq: 3
2023-04-14T14:45:18.237780000Z Session: 1
2023-04-14T14:45:18.237873000Z 
2023-04-14T14:45:18.238040000Z 10:45:18.234 TRC [rtsp] server request:
2023-04-14T14:45:18.238125000Z RECORD rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9 RTSP/1.0
2023-04-14T14:45:18.238223000Z Range: npt=0.000-
2023-04-14T14:45:18.238309000Z Cseq: 4
2023-04-14T14:45:18.238400000Z Output #0, rtsp, to 'rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9':
2023-04-14T14:45:18.238489000Z   Metadata:
2023-04-14T14:45:18.238569000Z     encoder         : Lavf59.27.100
2023-04-14T14:45:18.238662000Z User-Agent: ffmpeg/go2rtc
2023-04-14T14:45:18.238742000Z Session: 1
2023-04-14T14:45:18.239029000Z   Stream #0:0: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
2023-04-14T14:45:18.239132000Z     Metadata:
2023-04-14T14:45:18.239216000Z       encoder         : Lavc59.37.100 pcm_alaw
2023-04-14T14:45:18.239306000Z 
2023-04-14T14:45:18.239467000Z 10:45:18.234 TRC [rtsp] server response:
2023-04-14T14:45:18.239549000Z RTSP/1.0 200 OK
2023-04-14T14:45:18.239633000Z Cseq: 4
2023-04-14T14:45:18.239710000Z Session: 1
2023-04-14T14:45:18.239790000Z 
2023-04-14T14:45:18.239945000Z 10:45:18.235 DBG [exec] run launch=174.953196ms
2023-04-14T14:45:18.240045000Z 10:45:18.235 TRC [rtsp] client request:
2023-04-14T14:45:18.240128000Z SETUP rtsp://192.168.1.65/Preview_01_sub/track3 RTSP/1.0
2023-04-14T14:45:18.240225000Z Transport: RTP/AVP/TCP;unicast;interleaved=4-5
2023-04-14T14:45:18.240312000Z CSeq: 3
2023-04-14T14:45:18.240395000Z Authorization: Digest username="admin", realm="BC Streaming Media", nonce="1efee0822b17b7fce2c27a9a1de6db9d", uri="rtsp://192.168.1.65/Preview_01_sub/track3", response="b9eb684d7d3ab0d9339d78fce3455512"
2023-04-14T14:45:18.240867000Z 
2023-04-14T14:45:18.916999000Z 10:45:18.909 TRC [rtsp] client response:
2023-04-14T14:45:18.917434000Z RTSP/1.0 200 OK
2023-04-14T14:45:18.917672000Z Session: BFF740FE;timeout=65
2023-04-14T14:45:18.917866000Z Cseq: 3
2023-04-14T14:45:18.917980000Z Date: Fri, Apr 14 2023 14:45:19 GMT
2023-04-14T14:45:18.918103000Z Transport: RTP/AVP/TCP;unicast;destination=192.168.1.113;source=192.168.1.65;interleaved=4-5
2023-04-14T14:45:18.918202000Z 
2023-04-14T14:45:18.918389000Z 10:45:18.909 TRC [rtsp] client request:
2023-04-14T14:45:18.918496000Z PLAY rtsp://192.168.1.65/Preview_01_sub/ RTSP/1.0
2023-04-14T14:45:18.918606000Z CSeq: 4
2023-04-14T14:45:18.918704000Z Authorization: Digest username="admin", realm="BC Streaming Media", nonce="1efee0822b17b7fce2c27a9a1de6db9d", uri="rtsp://192.168.1.65/Preview_01_sub/", response="68ded821484c5bb15dfd7874e3ec15ac"
2023-04-14T14:45:18.918808000Z Session: BFF740FE
2023-04-14T14:45:18.918914000Z 
2023-04-14T14:45:18.935758000Z 10:45:18.935 TRC [rtsp] client response:
2023-04-14T14:45:18.936060000Z RTSP/1.0 200 OK
2023-04-14T14:45:18.936179000Z Cseq: 4
2023-04-14T14:45:18.936263000Z Date: Fri, Apr 14 2023 14:45:19 GMT
2023-04-14T14:45:18.936351000Z Range: npt=0.000-
2023-04-14T14:45:18.936437000Z Session: BFF740FE
2023-04-14T14:45:18.936519000Z Rtp-Info: url=rtsp://192.168.1.65/Preview_01_sub/track1;seq=0;rtptime=0,url=rtsp://192.168.1.65/Preview_01_sub/track2;seq=0;rtptime=0,url=rtsp://192.168.1.65/Preview_01_sub/track3;seq=12590;rtptime=1702050611
2023-04-14T14:45:18.936625000Z 
2023-04-14T14:45:21.385200000Z size=N/A time=00:00:00.00 bitrate=N/A speed=   0x    
size=N/A time=00:00:00.52 bitrate=N/A speed=1.03x    
size=N/A time=00:00:01.01 bitrate=N/A speed=   1x    
size=N/A time=00:00:01.54 bitrate=N/A speed=1.01x    
size=N/A time=00:00:02.03 bitrate=N/A speed=   1x    
size=N/A time=00:00:02.55 bitrate=N/A speed=1.01x    
size=N/A time=00:00:03.05 bitrate=N/A speed=   1x    
size=N/A time=00:00:03.19 bitrate=N/A speed=   1x    
2023-04-14T14:45:21.385905000Z video:0kB audio:25kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
2023-04-14T14:45:21.386119000Z 10:45:21.385 TRC [rtsp] server request:
2023-04-14T14:45:21.386242000Z TEARDOWN rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9 RTSP/1.0
2023-04-14T14:45:21.386343000Z User-Agent: ffmpeg/go2rtc
2023-04-14T14:45:21.386430000Z Session: 1
2023-04-14T14:45:21.386517000Z Cseq: 5
2023-04-14T14:45:21.386621000Z 
2023-04-14T14:45:21.386796000Z 10:45:21.385 TRC [rtsp] client request:
2023-04-14T14:45:21.386887000Z TEARDOWN rtsp://192.168.1.65/Preview_01_sub/ RTSP/1.0
2023-04-14T14:45:21.386980000Z Session: BFF740FE
2023-04-14T14:45:21.387061000Z CSeq: 5
2023-04-14T14:45:21.387146000Z Authorization: Digest username="admin", realm="BC Streaming Media", nonce="1efee0822b17b7fce2c27a9a1de6db9d", uri="rtsp://192.168.1.65/Preview_01_sub/", response="74b791866099d4cb71bac76dacab84b5"
2023-04-14T14:45:21.387228000Z 
2023-04-14T14:45:21.387403000Z 10:45:21.386 TRC [rtsp] server request:
2023-04-14T14:45:21.387486000Z TEARDOWN rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9 RTSP/1.0
2023-04-14T14:45:21.387566000Z CSeq: 1
2023-04-14T14:45:21.387648000Z Session: 1
2023-04-14T14:45:21.387729000Z 
2023-04-14T14:45:21.390676000Z 10:45:21.390 TRC [exec] close url="exec:ffmpeg -hide_banner -re -i http://192.168.1.230:8000/sample-3s.mp3 -vn -c:a pcm_alaw -ar:a 8000 -ac:a 1 -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp rtsp://localhost:8554/18f6e6a50a87ab0efccafc65b5e4e9b9"
kevdliu commented 1 year ago

@AlexxIT I don't know if this makes a difference but in the successful scrypted logs posted above, the rtsp PLAY request has Require: www.onvif.org/ver20/backchannel set while go2rtc's does not.

scrypted:

rtsp outgoing message
 PLAY rtsp://192.168.10.21:554/ RTSP/1.0
Require: www.onvif.org/ver20/backchannel
Range: npt=0.000-
CSeq: 4
User-Agent: Scrypted
Authorization: Digest username="xxx", realm="BC Streaming Media", nonce="c191793b9885d76c0f965571993b7867", uri="rtsp://192.168.10.21:554/", algorithm="MD5", response="4e58e3c9fc6875a812d367822aa92043"
Session: C0563045

go2rtc:

2023-04-14T14:45:18.918389000Z 10:45:18.909 TRC [rtsp] client request:
2023-04-14T14:45:18.918496000Z PLAY rtsp://192.168.1.65/Preview_01_sub/ RTSP/1.0
2023-04-14T14:45:18.918606000Z CSeq: 4
2023-04-14T14:45:18.918704000Z Authorization: Digest username="admin", realm="BC Streaming Media", nonce="1efee0822b17b7fce2c27a9a1de6db9d", uri="rtsp://192.168.1.65/Preview_01_sub/", response="68ded821484c5bb15dfd7874e3ec15ac"
2023-04-14T14:45:18.918808000Z Session: BFF740FE

Just throwing stuff at the wall at this point 🤣

AlexxIT commented 1 year ago

Skrypted sends data over UDP and go2rtc over TCP. Maybe this is necessary.

kevdliu commented 1 year ago

Huh yeah looks like it tries udp first and falls back to tcp if it fails. Hopefully this is the cause of the issue 🤞

spawn451 commented 1 year ago

Here is a network trace when I try to play an mp3 sound from the go2rtc web interface using : ffmpeg:https://samplelib.com/lib/preview/mp3/sample-3s.mp3#audio=pcma#input=file

The command displayed in the go2rtc log (without error) is:

"exec:ffmpeg -hide_banner -v error -re -i https://samplelib.com/lib/preview/mp3/sample-3s.mp3 -vn -c:a pcm_alaw -ar:a 8000 -ac:a 1 -user_agent ffmpeg/go2rtc -rtsp_transport tcp -bufsize 8192k -f rtsp rtsp://localhost:8554/c102daea354f98520504492aa56feda7"

No sound from doorbell.

image

The same ffmpeg command in a Command Prompt throws this :

image

Here is a network trace when I initiate the microphone from Happytime Onvif Client.

image

sound from doorbell OK.

kevdliu commented 1 year ago

This is the RTSP trace I got from happytimesoft: https://pastebin.com/276V4z7i Looks like they're using TCP. They're also setting "Require: www.onvif.org/ver20/backchannel" in their RTSP PLAY command, so maybe that's what's needed. Beyond that I don't see any differences.

spawn451 commented 1 year ago

Following these documentation:

http://www.onvif.org/wp-content/uploads/2019/07/ONVIF_Audio_Backchannel_Client_Test_Specification_19.06.pdf https://www.happytimesoft.com/knowledge/audio-back-channel.html

The client must invokes RTSP DESCRIBE request to retrieve media stream description with Require tag in RTSP header that contains "www.onvif.org/ver20/backchannel".

Client invokes RTSP PLAY request to start media stream with Require tag in RTSP header that contains "www.onvif.org/ver20/backchannel".

I think it is done in go2rtc/pkg/rtsp/client.go

AlexxIT commented 1 year ago

Well. It's my bad. Earlier go2rtc adds backchannel header only to DESCRIBE request. Check latest master version (docker container tag) after build: https://github.com/AlexxIT/go2rtc/actions/runs/4741514410

spawn451 commented 1 year ago

Thanks, I saw the modification, I will check this later :)

spawn451 commented 1 year ago

I tried with the modification made but it still does not work. I get this message nearly all the time.

image

When I got this error I found out that go2rtc is sending the sound before the PLAY Request. I can see in my capture the audio send then the PLAY request and finally the following message: RTSP:RESPONSE, RTSP/1.0, Status Code = 405 Method Not Allowed

Here is a small comparison of stream capture between go2rtc and Happytime Onvif Client as well as Scrypted when I didnt get the error message, but still no sound and I found out that sound is send before receiving the OK response from the PLAY request.The OK response never happens and finaly RTSP:RESPONSE, RTSP/1.0, Status Code = 405 Method Not Allowed

I have also indicated the small differences observed which maybe have nothing to do with the problem.

Hoping that helps.

image

AlexxIT commented 1 year ago

Check latest master version. Camera URL is set by you in go2rtc yaml. You can change it to rtsp://192.168.10.51:554/

spawn451 commented 1 year ago

Thanks! I just tested, I have no more errors but still no sound. However I no longer have RTSP:RESPONSE, RTSP/1.0, Status Code = 405 Method Not Allowed.

AlexxIT commented 1 year ago

Maybe you need to remove Preview_01_sub from your config

bigjme93 commented 1 year ago

I have little knowledge in this so forgive me, the preview_01_sub is needed on these cameras to pick the stream so can't be removed without forcing the main stream

Would it not instead make more sense to use the base domain for the tracks instead? i.e. programmatically remove anything after rtsp://192.168.10.51:554/ and attached the track at the end of the url?

I'm not sure if there is a function to return that from the url string in the language used for go2rtc

spawn451 commented 1 year ago

@AlexxIT I tried without the Preview_01_sub (seems that it takes automatically the main stream) the result is the same.

AlexxIT commented 1 year ago

As I can see, other applications use a short URL without a tail