pollen-robotics / gst-signalling-py

Python implementation of the Gstreamer signalling
Apache License 2.0
1 stars 0 forks source link

aiortc.exceptions.OperationError: Failed to set remote video description send parameters #28

Closed FabienDanieau closed 3 months ago

FabienDanieau commented 11 months ago

Cannot connect to the webrtc server started from the docker image

python src/example/videostream-cli/cli.py consumer --remote-producer-peer-name robot
RTCSessionDescription(sdp='v=0\r\no=- 8270547431226976860 0 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=ice-options:trickle\r\na=group:BUNDLE video0 audio1 video2\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 98 99 100 101\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=ice-ufrag:Tn0oDFnzvcdjvp3OKYVVeqkSxqGM9CS/\r\na=ice-pwd:Y6DgCOaPn9uw42WvkrHahR4eqoLyjUTe\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=sendonly\r\na=rtpmap:96 H264/90000\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 transport-cc\r\na=extmap:1 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=fmtp:96 packetization-mode=1;profile-level-id=4d0033;level-asymmetry-allowed=1\r\na=rtpmap:98 red/90000\r\na=rtpmap:99 ulpfec/90000\r\na=rtpmap:100 rtx/90000\r\na=fmtp:100 apt=96\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=98\r\na=ssrc-group:FID 2765346042 4078058043\r\na=ssrc:2765346042 msid:user356358438@host-74e6cdad webrtctransceiver0\r\na=ssrc:2765346042 cname:user356358438@host-74e6cdad\r\na=ssrc:4078058043 msid:user356358438@host-74e6cdad webrtctransceiver0\r\na=ssrc:4078058043 cname:user356358438@host-74e6cdad\r\na=mid:video0\r\na=fingerprint:sha-256 2B:05:38:BF:89:1A:96:88:80:7B:87:27:2F:1F:A8:5A:1B:9C:81:14:45:0F:F7:1F:39:13:57:99:87:0D:F6:F5\r\na=rtcp-mux-only\r\nm=audio 0 UDP/TLS/RTP/SAVPF 97\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=ice-ufrag:Tn0oDFnzvcdjvp3OKYVVeqkSxqGM9CS/\r\na=ice-pwd:Y6DgCOaPn9uw42WvkrHahR4eqoLyjUTe\r\na=bundle-only\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=sendonly\r\na=rtpmap:97 OPUS/48000/2\r\na=rtcp-fb:97 transport-cc\r\na=extmap:1 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=fmtp:97 sprop-stereo=1;sprop-maxcapturerate=48000\r\na=ssrc:3966260150 msid:user356358438@host-74e6cdad webrtctransceiver1\r\na=ssrc:3966260150 cname:user356358438@host-74e6cdad\r\na=mid:audio1\r\na=fingerprint:sha-256 2B:05:38:BF:89:1A:96:88:80:7B:87:27:2F:1F:A8:5A:1B:9C:81:14:45:0F:F7:1F:39:13:57:99:87:0D:F6:F5\r\na=rtcp-mux-only\r\nm=video 0 UDP/TLS/RTP/SAVPF 96 98 99 100 101\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=ice-ufrag:Tn0oDFnzvcdjvp3OKYVVeqkSxqGM9CS/\r\na=ice-pwd:Y6DgCOaPn9uw42WvkrHahR4eqoLyjUTe\r\na=bundle-only\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=sendonly\r\na=rtpmap:96 H264/90000\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 transport-cc\r\na=extmap:1 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=fmtp:96 packetization-mode=1;profile-level-id=4d0033;level-asymmetry-allowed=1\r\na=rtpmap:98 red/90000\r\na=rtpmap:99 ulpfec/90000\r\na=rtpmap:100 rtx/90000\r\na=fmtp:100 apt=96\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=98\r\na=ssrc-group:FID 1560947956 615213788\r\na=ssrc:1560947956 msid:user356358438@host-74e6cdad webrtctransceiver2\r\na=ssrc:1560947956 cname:user356358438@host-74e6cdad\r\na=ssrc:615213788 msid:user356358438@host-74e6cdad webrtctransceiver2\r\na=ssrc:615213788 cname:user356358438@host-74e6cdad\r\na=mid:video2\r\na=fingerprint:sha-256 2B:05:38:BF:89:1A:96:88:80:7B:87:27:2F:1F:A8:5A:1B:9C:81:14:45:0F:F7:1F:39:13:57:99:87:0D:F6:F5\r\na=rtcp-mux-only\r\n', type='offer')
Traceback (most recent call last):
  File "/home/fabien/Dev/Python/gst-signalling-py/src/example/videostream-cli/cli.py", line 156, in <module>
    loop.run_until_complete(
  File "/home/fabien/miniconda3/envs/gstsignalling/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/fabien/Dev/Python/gst-signalling-py/src/example/videostream-cli/cli.py", line 111, in run
    await pc.setRemoteDescription(obj)
  File "/home/fabien/miniconda3/envs/gstsignalling/lib/python3.10/site-packages/aiortc/rtcpeerconnection.py", line 854, in setRemoteDescription
    raise OperationError(
aiortc.exceptions.OperationError: Failed to set remote video description send parameters
FabienDanieau commented 11 months ago

Looks like the H264 MAIN profile is not supported. Works better with BASELINE. Check if this is something we can do on aiortc side

FabienDanieau commented 11 months ago

aiortc seems limited to BASELINE profiles only. On going issue on their side https://github.com/aiortc/aiortc/issues/944 There is a workaround in my comment

FabienDanieau commented 3 months ago

aiortc removed from dependencie (see #40 )