go2rtc icon indicating copy to clipboard operation
go2rtc copied to clipboard

Reolink E1 Pro two way audio ?

Open PaulBiod opened this issue 2 years ago • 14 comments

I recently bought an Imou Rex 3D (imou rangers new model), but unlike his sister Imou ranger pro, it seems not to be compatible with 2 way audio. So I'm gonna return it, and I was wondering which cam would be compatible with 2 way audio, I've seen the Reolink E1 Pro but how to know if it's compatible with 2 way audio ? Thanks

PaulBiod avatar Nov 19 '23 01:11 PaulBiod

The only Reolink model, that support open two way proto, is Doorbell. For other models you should follow this issue https://github.com/AlexxIT/go2rtc/issues/755

AlexxIT avatar Nov 19 '23 11:11 AlexxIT

The only Reolink model, that support open two way proto, is Doorbell. For other models you should follow this issue #755

That's not true, many of Reolink's products including the E1 [outdoor] Pro are listed as being ONVIF Profile T conformant: https://www.onvif.org/conformant-products/

If they support 2 way audio at all and have Profile T compliance, then according to ONVIF they must support an ONVIF standard for 2 way audio as well. That's straight from ONVIF's Profile T specifications

distinctjuggle avatar Jan 30 '24 06:01 distinctjuggle

I don't know, how ONVIF site confirm their test info.

But real users confirm only one Reolink model - Doorbell.

AlexxIT avatar Jan 30 '24 07:01 AlexxIT

I don't know, how ONVIF site confirm their test info.

But real users confirm only one Reolink model - Doorbell.

ONVIF has a very clear explanation as to how they add compliance. The link is provided on the web page linked above: https://www.onvif.org/profiles/conformance/

Their conformance for Profile T page (linked from the above link in this comment here) further confirms the above point: https://www.onvif.org/profiles/profile-t/ -- IF a camera supports any kind of two-way audio, then for it to be Profile T compliant it must support said backchannel audio via ONVIF open standards. (Of course, non-Profile T devices can still have proprietary implementations of two way audio - I just wanted to clarify for other readers)

There's also a discussion I had with someone at ONVIF directly which confirms the same thing. I could dig it up if needed.


I have additional Reolink cameras which have Profile T support and I am willing to help test if this is an issue with go2rtc or with Reolink's actual compliance. (One is a Reolink Doorbell camera which currently does work with 2 way audio, and two are Profile T compliant yet I cannot get 2 way audio working through go2rtc directly - as you describe.)

If it is the latter and either Reolink or ONVIF are lying about actual compliance, ONVIF can be reached out to and listed compliance can be removed until firmware updates provide true Profile T compliance. Perhaps that would provide sufficient motivation for Reolink to make things happen if it is indeed their problem.

If it is the former, I would again be willing to offer any help I can to resolving this point of issue. I hope that is is clear to you that either Reolink AND ONVIF are wrong about their claims, or go2rtc is deficient. I'm just hoping to find a solution, not place any blame anywhere. I'm happy to help where I can if it can benefit anyone at all.

distinctjuggle avatar Jan 30 '24 14:01 distinctjuggle

Two way audio via rtsp back channel is not required, only optional, as part of the Onvif Profile T

NickM-27 avatar Jan 30 '24 14:01 NickM-27

Two way audio via rtsp back channel is not required, only optional, as part of the Onvif Profile T

As clearly stated in the sources I have provided directly from ONVIF, it IS required if the device has Profile T compliance AND provides ANY implementation of two way audio. It is possible for a device to be Profile T compliant without any two way audio being implemented, but it is not compliant if it has a proprietary implementation exclusively.

distinctjuggle avatar Jan 30 '24 14:01 distinctjuggle

Okay, then you should enable trace logs for the rtsp module and see what the camera replies with when go2rtc connects

NickM-27 avatar Jan 30 '24 14:01 NickM-27

Okay, I have logs from the Reolink doorbell camera and a Reolink camera which has 2 way audio support and is listed as Profile T. Here are the two logs:

NotDoorbell

    Streams Add Config Log 


Time 	Level 	Message
1/30/2024, 6:41:49 PM	info	go2rtc version 1.8.5 linux/amd64
1/30/2024, 6:41:49 PM	info	[api] listen addr=:1984
1/30/2024, 6:41:49 PM	info	[api] tls listen addr=:444
1/30/2024, 6:41:49 PM	info	[rtsp] listen addr=:8554
1/30/2024, 6:41:49 PM	info	[webrtc] listen addr=:8555
1/30/2024, 6:41:52 PM	trace	[rtsp] client request:
DESCRIBE rtsp://192.168.1.21:554/h264Preview_01_sub RTSP/1.0
Accept: application/sdp
Require: www.onvif.org/ver20/backchannel
User-Agent: go2rtc/1.8.5
CSeq: 1

1/30/2024, 6:41:52 PM	trace	[rtsp] client response:
RTSP/1.0 401 Unauthorized
Cseq: 1
Date: Tue, Jan 30 2024 23:48:21 GMT
Www-Authenticate: Digest realm="LIVE555 Streaming Media", nonce="8b041e67dacfebf520f75f0eb2ecdd5c"

1/30/2024, 6:41:52 PM	trace	[rtsp] client request:
DESCRIBE rtsp://192.168.1.21:554/h264Preview_01_sub RTSP/1.0
Accept: application/sdp
Require: www.onvif.org/ver20/backchannel
User-Agent: go2rtc/1.8.5
CSeq: 2
Authorization: Digest username="admin", realm="LIVE555 Streaming Media", nonce="8b041e67dacfebf520f75f0eb2ecdd5c", uri="rtsp://192.168.1.21:554/h264Preview_01_sub", response="e0deb3a48a88962a8e5587d98fb68abd"

1/30/2024, 6:41:52 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Content-Type: application/sdp
Content-Length: 697
Cseq: 2
Date: Tue, Jan 30 2024 23:48:21 GMT
Content-Base: rtsp://192.168.1.21/h264Preview_01_sub/

v=0
o=- 1706591179194926 1 IN IP4 192.168.1.21
s=Session streamed by "preview"
i=h264Preview_01_sub
t=0 0
a=tool:LIVE555 Streaming Media v2020.08.12
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:Session streamed by "preview"
a=x-qt-text-inf:h264Preview_01_sub
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:500
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets=Z2QAM6wVFKCgL/lQ,aO48sA==
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:256
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=control:track2
1/30/2024, 6:41:52 PM	trace	[rtsp] client request:
SETUP rtsp://192.168.1.21/h264Preview_01_sub/track1 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
CSeq: 3
Authorization: Digest username="admin", realm="LIVE555 Streaming Media", nonce="8b041e67dacfebf520f75f0eb2ecdd5c", uri="rtsp://192.168.1.21/h264Preview_01_sub/track1", response="157754ff0cebc0bb9d919afe01c7dd5d"

1/30/2024, 6:41:52 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 3
Date: Tue, Jan 30 2024 23:48:21 GMT
Transport: RTP/AVP/TCP;unicast;destination=192.168.1.10;source=192.168.1.21;interleaved=0-1
Session: 41822ECB;timeout=65

1/30/2024, 6:41:52 PM	trace	[rtsp] server request:
OPTIONS rtsp://127.0.0.1:8554/Reolink_8MP?audio RTSP/1.0
Cseq: 1
User-Agent: go2rtc/ffmpeg

1/30/2024, 6:41:52 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 1
Public: OPTIONS, SETUP, TEARDOWN, DESCRIBE, PLAY, PAUSE, ANNOUNCE, RECORD

1/30/2024, 6:41:52 PM	trace	[rtsp] server request:
DESCRIBE rtsp://127.0.0.1:8554/Reolink_8MP?audio RTSP/1.0
Accept: application/sdp
Cseq: 2
User-Agent: go2rtc/ffmpeg

1/30/2024, 6:41:52 PM	debug	[rtsp] new consumer stream=Reolink_8MP
1/30/2024, 6:41:52 PM	trace	[rtsp] client request:
DESCRIBE rtsp://192.168.1.21:554/h264Preview_01_main RTSP/1.0
Accept: application/sdp
Require: www.onvif.org/ver20/backchannel
User-Agent: go2rtc/1.8.5
CSeq: 1

1/30/2024, 6:41:52 PM	trace	[rtsp] client response:
RTSP/1.0 401 Unauthorized
Cseq: 1
Date: Tue, Jan 30 2024 23:48:21 GMT
Www-Authenticate: Digest realm="LIVE555 Streaming Media", nonce="b3d1cf7bc8cfbc5f7ba5f9433bf3c60e"

1/30/2024, 6:41:52 PM	trace	[rtsp] client request:
DESCRIBE rtsp://192.168.1.21:554/h264Preview_01_main RTSP/1.0
Accept: application/sdp
Require: www.onvif.org/ver20/backchannel
User-Agent: go2rtc/1.8.5
CSeq: 2
Authorization: Digest username="admin", realm="LIVE555 Streaming Media", nonce="b3d1cf7bc8cfbc5f7ba5f9433bf3c60e", uri="rtsp://192.168.1.21:554/h264Preview_01_main", response="7d2c3dcd0ddc72e7346b62985b23e8ab"

1/30/2024, 6:41:52 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Content-Type: application/sdp
Content-Length: 819
Cseq: 2
Date: Tue, Jan 30 2024 23:48:21 GMT
Content-Base: rtsp://192.168.1.21/h264Preview_01_main/

v=0
o=- 1706591179194781 1 IN IP4 192.168.1.21
s=Session streamed by "preview"
i=h264Preview_01_main
t=0 0
a=tool:LIVE555 Streaming Media v2020.08.12
a=type:broadcast
a=control:*
a=range:npt=0-
a=x-qt-text-nam:Session streamed by "preview"
a=x-qt-text-inf:h264Preview_01_main
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:500
a=rtpmap:96 H265/90000
a=fmtp:96 profile-space=0;profile-id=1;tier-flag=0;level-id=150;interop-constraints=000000000000;sprop-vps=QAEMAf//AWAAAAMAAAMAAAMAAAMAlqwJ;sprop-sps=QgEBAWAAAAMAAAMAAAMAAAMAlqAB4CACHH+KrTuiS7I=;sprop-pps=RAHAcvCJBAcONkg=
a=control:track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
b=AS:256
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=control:track2
1/30/2024, 6:41:52 PM	trace	[rtsp] client request:
SETUP rtsp://192.168.1.21/h264Preview_01_main/track2 RTSP/1.0
Authorization: Digest username="admin", realm="LIVE555 Streaming Media", nonce="b3d1cf7bc8cfbc5f7ba5f9433bf3c60e", uri="rtsp://192.168.1.21/h264Preview_01_main/track2", response="93e9f96d1b2c95d7e7f3fafc12a4bdef"
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
CSeq: 3

1/30/2024, 6:41:52 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 3
Date: Tue, Jan 30 2024 23:48:21 GMT
Transport: RTP/AVP/TCP;unicast;destination=192.168.1.10;source=192.168.1.21;interleaved=2-3
Session: 54061B36;timeout=65

1/30/2024, 6:41:52 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Content-Type: application/sdp
Cseq: 2
Content-Length: 261

v=0
o=- 1 1 IN IP4 0.0.0.0
s=go2rtc/1.8.5
c=IN IP4 0.0.0.0
t=0 0
m=audio 0 RTP/AVP 96
a=rtpmap:96 MPEG4-GENERIC/16000
a=fmtp:96 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408
a=control:trackID=0
1/30/2024, 6:41:52 PM	trace	[rtsp] client request:
PLAY rtsp://192.168.1.21/h264Preview_01_main/ RTSP/1.0
CSeq: 4
Authorization: Digest username="admin", realm="LIVE555 Streaming Media", nonce="b3d1cf7bc8cfbc5f7ba5f9433bf3c60e", uri="rtsp://192.168.1.21/h264Preview_01_main/", response="3d11f69ff3d5ffd7867d2391e4f0a0e6"
Session: 54061B36

1/30/2024, 6:41:52 PM	trace	[rtsp] server request:
SETUP rtsp://127.0.0.1:8554/Reolink_8MP?audio/trackID=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Cseq: 3
User-Agent: go2rtc/ffmpeg

1/30/2024, 6:41:52 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 3
Session: 81084612;timeout=60
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

1/30/2024, 6:41:52 PM	trace	[rtsp] server request:
PLAY rtsp://127.0.0.1:8554/Reolink_8MP?audio RTSP/1.0
Range: npt=0.000-
Cseq: 4
User-Agent: go2rtc/ffmpeg
Session: 81084612

1/30/2024, 6:41:52 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 4
Session: 81084612

1/30/2024, 6:41:52 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 4
Date: Tue, Jan 30 2024 23:48:21 GMT
Range: npt=0.000-
Session: 54061B36
Rtp-Info: url=rtsp://192.168.1.21/h264Preview_01_main/track1;seq=0;rtptime=0,url=rtsp://192.168.1.21/h264Preview_01_main/track2;seq=28595;rtptime=3705839150

1/30/2024, 6:41:53 PM	trace	[rtsp] server request:
OPTIONS rtsp://127.0.0.1:8554/ba4fb538f052cd6fcf31db839d3d2d7d RTSP/1.0
Cseq: 1
User-Agent: ffmpeg/go2rtc

1/30/2024, 6:41:53 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Public: OPTIONS, SETUP, TEARDOWN, DESCRIBE, PLAY, PAUSE, ANNOUNCE, RECORD
Cseq: 1

1/30/2024, 6:41:53 PM	trace	[rtsp] server request:
ANNOUNCE rtsp://127.0.0.1:8554/ba4fb538f052cd6fcf31db839d3d2d7d RTSP/1.0
Content-Type: application/sdp
Cseq: 2
User-Agent: ffmpeg/go2rtc
Content-Length: 193

v=0
o=- 0 0 IN IP4 127.0.0.1
s=go2rtc/1.8.5
c=IN IP4 127.0.0.1
t=0 0
a=tool:libavformat LIBAVFORMAT_VERSION
m=audio 0 RTP/AVP 96
b=AS:64
a=rtpmap:96 opus/48000/2
a=control:streamid=0
1/30/2024, 6:41:53 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 2

1/30/2024, 6:41:53 PM	trace	[rtsp] server request:
SETUP rtsp://127.0.0.1:8554/ba4fb538f052cd6fcf31db839d3d2d7d/streamid=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
Cseq: 3
User-Agent: ffmpeg/go2rtc

1/30/2024, 6:41:53 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Cseq: 3
Session: 96420521;timeout=60

1/30/2024, 6:41:53 PM	trace	[rtsp] server request:
RECORD rtsp://127.0.0.1:8554/ba4fb538f052cd6fcf31db839d3d2d7d RTSP/1.0
Range: npt=0.000-
Cseq: 4
User-Agent: ffmpeg/go2rtc
Session: 96420521

1/30/2024, 6:41:53 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 4
Session: 96420521

1/30/2024, 6:41:53 PM	trace	[rtsp] client request:
PLAY rtsp://192.168.1.21/h264Preview_01_sub/ RTSP/1.0
CSeq: 4
Authorization: Digest username="admin", realm="LIVE555 Streaming Media", nonce="8b041e67dacfebf520f75f0eb2ecdd5c", uri="rtsp://192.168.1.21/h264Preview_01_sub/", response="60a92aa1325c049c3e37b21ed2112e4a"
Session: 41822ECB

1/30/2024, 6:41:53 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Session: 41822ECB
Rtp-Info: url=rtsp://192.168.1.21/h264Preview_01_sub/track1;seq=3769;rtptime=2657523139,url=rtsp://192.168.1.21/h264Preview_01_sub/track2;seq=0;rtptime=0
Cseq: 4
Date: Tue, Jan 30 2024 23:48:22 GMT
Range: npt=0.000-

Doorbell


    Streams Add Config Log 


Time 	Level 	Message
1/30/2024, 6:35:54 PM	info	go2rtc version 1.8.5 linux/amd64
1/30/2024, 6:35:54 PM	info	[api] listen addr=:1984
1/30/2024, 6:35:54 PM	info	[rtsp] listen addr=:8554
1/30/2024, 6:35:54 PM	info	[api] tls listen addr=:444
1/30/2024, 6:35:54 PM	info	[webrtc] listen addr=:8555
1/30/2024, 6:36:07 PM	trace	[rtsp] client request:
DESCRIBE rtsp://192.168.1.20:554/h264Preview_01_main RTSP/1.0
Accept: application/sdp
Require: www.onvif.org/ver20/backchannel
User-Agent: go2rtc/1.8.5
CSeq: 1

1/30/2024, 6:36:07 PM	trace	[rtsp] client response:
RTSP/1.0 401 Unauthorized
Cseq: 1
Date: Tue, Jan 30 2024 23:23:27 GMT
Www-Authenticate: Digest realm="BC Streaming Media", nonce="9d074cfa00e866d46f3e3d0cdec95828"

1/30/2024, 6:36:07 PM	trace	[rtsp] client request:
DESCRIBE rtsp://192.168.1.20:554/h264Preview_01_main RTSP/1.0
Accept: application/sdp
Require: www.onvif.org/ver20/backchannel
User-Agent: go2rtc/1.8.5
CSeq: 2
Authorization: Digest username="user", realm="BC Streaming Media", nonce="9d074cfa00e866d46f3e3d0cdec95828", uri="rtsp://192.168.1.20:554/h264Preview_01_main", response="db02e02719b29e30f19e1eb863b3c871"

1/30/2024, 6:36:07 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 2
Date: Tue, Jan 30 2024 23:23:27 GMT
Content-Base: rtsp://192.168.1.20/Preview_01_main/
Content-Type: application/sdp
Content-Length: 760

v=0
o=- 1706608854244151 1 IN IP4 192.168.1.20
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=range:npt=now-
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
1/30/2024, 6:36:07 PM	trace	[rtsp] client request:
SETUP rtsp://192.168.1.20/Preview_01_main/track1 RTSP/1.0
Authorization: Digest username="user", realm="BC Streaming Media", nonce="9d074cfa00e866d46f3e3d0cdec95828", uri="rtsp://192.168.1.20/Preview_01_main/track1", response="83c8fa913b76a914f820683914deb80c"
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
CSeq: 3

1/30/2024, 6:36:07 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 3
Date: Tue, Jan 30 2024 23:23:27 GMT
Transport: RTP/AVP/TCP;unicast;destination=192.168.1.10;source=192.168.1.20;interleaved=0-1
Session: 9CE1B71A;timeout=65

1/30/2024, 6:36:07 PM	trace	[rtsp] client request:
SETUP rtsp://192.168.1.20/Preview_01_main/track3 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=4-5
CSeq: 4
Authorization: Digest username="user", realm="BC Streaming Media", nonce="9d074cfa00e866d46f3e3d0cdec95828", uri="rtsp://192.168.1.20/Preview_01_main/track3", response="7f2aa8175fc086f734dae412e64f2316"
Session: 9CE1B71A

1/30/2024, 6:36:07 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 4
Date: Tue, Jan 30 2024 23:23:27 GMT
Transport: RTP/AVP/TCP;unicast;destination=192.168.1.10;source=192.168.1.20;interleaved=4-5
Session: 9CE1B71A;timeout=65

1/30/2024, 6:36:07 PM	trace	[rtsp] server request:
OPTIONS rtsp://127.0.0.1:8554/Reolink_Doorbell?audio RTSP/1.0
Cseq: 1
User-Agent: go2rtc/ffmpeg

1/30/2024, 6:36:07 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Public: OPTIONS, SETUP, TEARDOWN, DESCRIBE, PLAY, PAUSE, ANNOUNCE, RECORD
Cseq: 1

1/30/2024, 6:36:07 PM	trace	[rtsp] server request:
DESCRIBE rtsp://127.0.0.1:8554/Reolink_Doorbell?audio RTSP/1.0
Cseq: 2
User-Agent: go2rtc/ffmpeg
Accept: application/sdp

1/30/2024, 6:36:07 PM	debug	[rtsp] new consumer stream=Reolink_Doorbell
1/30/2024, 6:36:07 PM	trace	[rtsp] client request:
SETUP rtsp://192.168.1.20/Preview_01_main/track2 RTSP/1.0
Authorization: Digest username="user", realm="BC Streaming Media", nonce="9d074cfa00e866d46f3e3d0cdec95828", uri="rtsp://192.168.1.20/Preview_01_main/track2", response="54cc5ec257230a2c522ff3b31ca0ab80"
Session: 9CE1B71A
Transport: RTP/AVP/TCP;unicast;interleaved=2-3
CSeq: 5

1/30/2024, 6:36:07 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 5
Date: Tue, Jan 30 2024 23:23:27 GMT
Transport: RTP/AVP/TCP;unicast;destination=192.168.1.10;source=192.168.1.20;interleaved=2-3
Session: 9CE1B71A;timeout=65

1/30/2024, 6:36:07 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Content-Type: application/sdp
Cseq: 2
Content-Length: 262

v=0
o=- 1 1 IN IP4 0.0.0.0
s=go2rtc/1.8.5
c=IN IP4 0.0.0.0
t=0 0
m=audio 0 RTP/AVP 96
a=rtpmap:96 MPEG4-GENERIC/16000
a=fmtp:96 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;
a=control:trackID=0
1/30/2024, 6:36:07 PM	trace	[rtsp] client request:
PLAY rtsp://192.168.1.20/Preview_01_main/ RTSP/1.0
CSeq: 6
Authorization: Digest username="user", realm="BC Streaming Media", nonce="9d074cfa00e866d46f3e3d0cdec95828", uri="rtsp://192.168.1.20/Preview_01_main/", response="6a5f630bd3de904d71ea2499d8f69ac0"
Session: 9CE1B71A

1/30/2024, 6:36:07 PM	trace	[rtsp] server request:
SETUP rtsp://127.0.0.1:8554/Reolink_Doorbell?audio/trackID=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Cseq: 3
User-Agent: go2rtc/ffmpeg

1/30/2024, 6:36:07 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Cseq: 3
Session: 73889199;timeout=60

1/30/2024, 6:36:07 PM	trace	[rtsp] server request:
PLAY rtsp://127.0.0.1:8554/Reolink_Doorbell?audio RTSP/1.0
Range: npt=0.000-
Cseq: 4
User-Agent: go2rtc/ffmpeg
Session: 73889199

1/30/2024, 6:36:07 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 4
Session: 73889199

1/30/2024, 6:36:07 PM	trace	[rtsp] client response:
RTSP/1.0 200 OK
Cseq: 6
Date: Tue, Jan 30 2024 23:23:27 GMT
Range: npt=0.000-
Session: 9CE1B71A
Rtp-Info: url=rtsp://192.168.1.20/Preview_01_main/track1;seq=48614;rtptime=2988815368,url=rtsp://192.168.1.20/Preview_01_main/track2;seq=5099;rtptime=1660446546,url=rtsp://192.168.1.20/Preview_01_main/track3;seq=0;rtptime=0

1/30/2024, 6:36:08 PM	trace	[rtsp] server request:
OPTIONS rtsp://127.0.0.1:8554/3c4656fa4669e0ff3a6213ddb6da628c RTSP/1.0
Cseq: 1
User-Agent: ffmpeg/go2rtc

1/30/2024, 6:36:08 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Public: OPTIONS, SETUP, TEARDOWN, DESCRIBE, PLAY, PAUSE, ANNOUNCE, RECORD
Cseq: 1

1/30/2024, 6:36:08 PM	trace	[rtsp] server request:
ANNOUNCE rtsp://127.0.0.1:8554/3c4656fa4669e0ff3a6213ddb6da628c RTSP/1.0
Content-Type: application/sdp
Cseq: 2
User-Agent: ffmpeg/go2rtc
Content-Length: 193

v=0
o=- 0 0 IN IP4 127.0.0.1
s=go2rtc/1.8.5
c=IN IP4 127.0.0.1
t=0 0
a=tool:libavformat LIBAVFORMAT_VERSION
m=audio 0 RTP/AVP 96
b=AS:64
a=rtpmap:96 opus/48000/2
a=control:streamid=0
1/30/2024, 6:36:08 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 2

1/30/2024, 6:36:08 PM	trace	[rtsp] server request:
SETUP rtsp://127.0.0.1:8554/3c4656fa4669e0ff3a6213ddb6da628c/streamid=0 RTSP/1.0
User-Agent: ffmpeg/go2rtc
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record
Cseq: 3

1/30/2024, 6:36:08 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
Cseq: 3
Session: 54250800;timeout=60

1/30/2024, 6:36:08 PM	trace	[rtsp] server request:
RECORD rtsp://127.0.0.1:8554/3c4656fa4669e0ff3a6213ddb6da628c RTSP/1.0
Range: npt=0.000-
Cseq: 4
User-Agent: ffmpeg/go2rtc
Session: 54250800

1/30/2024, 6:36:08 PM	trace	[rtsp] server response:
RTSP/1.0 200 OK
Cseq: 4
Session: 54250800


I don't know what specific difference I'm looking for between the two. What part in particular should I pay attention to? I see where the Doorbell responds with some of the backchannel information, but the negotiation looks quite similar. The only log setting I changed was for RTSP - should I consider changing anything else?

distinctjuggle avatar Jan 30 '24 23:01 distinctjuggle

This is backchannel

m=audio 0 RTP/AVP 8
a=control:track3
a=rtpmap:8 PCMA/8000
a=sendonly

AlexxIT avatar Jan 31 '24 04:01 AlexxIT

go2rtc 324215.docx

I've reached out to Reolink and have been in communication with them over the past week. They've been very helpful and receptive overall. They have responded with this above documentation from their engineering team regarding their testing. They have come to the conclusion that their public facing firmware does not support Profile T, however some of their internal beta firmware does. When testing go2rtc's 2 way audio internally with their beta software, they were unable to get go2rtc's 2 way audio to work. Their process is attached in the above docx (which they sent to me) for reference.

They have asked if they have made any improper steps in their process relating to go2rtc, and if so to let them know. Should I inform them of anything in particular? They are configuring their cameras in a different way than I am used to, and I noticed that their interface is also a bit different. Is this different configuration setup valid for what they are attempting, and is their interface reflective of an old version of go2rtc? Does it matter if they set up https for their testing - What I mean is, will the backchannel track3 still be activated even if the browser isn't able to record microphone data over http? What would be the best response for them?

It really seems like Reolink is receptive to fixing this, and I would greatly appreciate any accurate information I can provide for the benefit of everyone's usage of these cameras. Thanks.

distinctjuggle avatar Feb 07 '24 14:02 distinctjuggle

Probably Reolink developers don't know that web browsers don't give access to microphone for HTTP sites. go2rtc will not request two way audio when it is not needed.

AlexxIT avatar Feb 08 '24 08:02 AlexxIT

@PaulBiod I updated my Reolink E1 Pro with the v3.1.0.3149_2401092478 (the release note mentions Support two-way audio under ONVIF connection.) and it's working using the Play Audio with that string: ffmpeg:https://file-examples.com/storage/fe7b7e0dc465e22bc9e6da8/2017/11/file_example_MP3_5MG.mp3#audio=pcmu#input=file

I was not able to test using Chrome because of the security issue with HTTPS, but I might do it in the next few days (would make no sense that two way work using Play audio but not with the microphone, but who knows).

EDIT: I tested the microphone using "Insecure origins treated as secure" and it does works.

dwild avatar Mar 02 '24 03:03 dwild

It's easy to test chrome via:

  • https://stackoverflow.com/questions/52759992/how-to-access-camera-and-microphone-in-chrome-without-https
  • ngrok http 192.168.1.123:1984

AlexxIT avatar Mar 02 '24 04:03 AlexxIT

That's great news! My discussions with Reolink were postponed during Chinese New Year celebrations, but afterwards their support distanced themselves a bit. They said they would get around to it in official releases coming soon, and I guess this is part of that! I'd love to know when it'll hit their other cameras as well.

I hope this continues with their other cameras and I don't have to increase any pressure on them regarding their current non-compliance. I'll update if I have anything else noteworthy later.

distinctjuggle avatar Mar 04 '24 01:03 distinctjuggle

Please let me know if the problem is relevant

AlexxIT avatar May 28 '24 14:05 AlexxIT

I updated the firwmare on my CX410 today, and go2rtc gives me working 2 way audio on my device!

No idea if that extends to other Reolinks or not yet. I reached out to support within the past month or so, and they had told me that there was no ETA on a release or anything of that sort. Yet, here we are. It's firmware version is: CX410_3429_2404181313 if that helps anyone out.

That is extremely exciting news for me! Hopefully this is the beginning of better support on the rest of Reolink's products as well! Hopefully this is as exciting for others as it is for me. I've long since thought the industry was lagging way behind on this one.


Would anyone mind testing this out on any additional Reolink products they have? I'll give my other device a try in a few hours time and I'll update on my end if it is fruitful.


Edit: The 833A doesn't seem to work, no firmware updates since December 2023. Oh well, better than nothing! It might be beneficial to try to make a note somewhere in the readme.md of which cameras do and do not work with two way audio. To my knowledge, there's both doorbell models, the CX410 (and possibly the upcoming CX810), and the E1 Pro. If someone has a list of all firmware changelogs, it might make it easier to find working or potentially working cameras. I was unable to find the above mentioned note of this for the E1 Pro in the Reolink firmware archive github page, though.

distinctjuggle avatar Jul 03 '24 23:07 distinctjuggle