Webrtc audio

Anthony Williams anthony at engineeredarts.co.uk
Thu May 20 09:50:48 UTC 2021


Hi,

We're trying to use webrtc for dynamic audio and video streams: we open
the webrtc connection and set up a data channel, then use that data
channel to request audio and video streams. We've currently got a video
stream working, but the audio stream is proving tricky.

The audio pipeline looks like this:

appsrc ! queue ! audioconvert ! audioresample ! queue ! opusenc !
rtpopuspay ! queue !
application/x-rtp,media=audio,encoding-name=OPUS,payload=97 ! sendrecv

Where sendrecv is the webrtcbin element.

The SDP sent to the browser looks like this:

v=0
o=- 9184785277063451528 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-options:trickle
a=group:BUNDLE 0 audio0
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=setup:actpass
a=ice-ufrag:JISE4Q+H0eGZSMIaKcxpnnxXONQuXFHs
a=ice-pwd:UqqhM6p1eM0A6tlZh4mt2UQfdbjLEBz3
a=mid:0
a=sctp-port:5000
a=fingerprint:sha-256
D4:AF:66:6A:1E:C1:A6:35:14:D4:6D:CA:1F:71:F3:7E:90:19:E6:E8:30:CC:44:A5:31:BF:31:02:D0:71:8F:8B
m=audio 0 UDP/TLS/RTP/SAVPF 97
c=IN IP4 0.0.0.0
a=setup:actpass
a=ice-ufrag:JISE4Q+H0eGZSMIaKcxpnnxXONQuXFHs
a=ice-pwd:UqqhM6p1eM0A6tlZh4mt2UQfdbjLEBz3
a=bundle-only
a=rtcp-mux
a=rtcp-rsize
a=sendrecv
a=rtpmap:97 OPUS/48000
a=rtcp-fb:97 transport-cc
a=mid:audio0
a=fingerprint:sha-256
D4:AF:66:6A:1E:C1:A6:35:14:D4:6D:CA:1F:71:F3:7E:90:19:E6:E8:30:CC:44:A5:31:BF:31:02:D0:71:8F:8B

The browser then complains:

[1572:0520/090746.806032:ERROR:peer_connection.cc(6044)] Failed to set
remote audio description send parameters. (INVALID_PARAMETER)
[1572:0520/090746.806069:ERROR:peer_connection.cc(3054)] Failed to set
remote offer sdp: Failed to set remote audio description send parameters.
[1572:0520/090746.806146:ERROR:audio_rtp_receiver.cc(89)]
AudioRtpReceiver::OnSetVolume: No audio channel exists.
[1572:0520/090746.806218:ERROR:peer_connection.cc(2391)] CreateAnswer:
Session error code: ERROR_CONTENT. Session error description: Failed to
set remote audio description send parameters..

and the negotiation fails.

Has anyone seen anything like this before? Any ideas on what the problem
may be?

Thanks,

Anthony



More information about the gstreamer-devel mailing list