Remote video rendering is only depend on SDP answer?

28 views Asked by At

I am creating meeting app using Flutter(flutter_webrtc). The local and remote video is stream and display in Android, Web and Windows. In iOS and macOS the remote video is not stream and display. Here is the sdpAnswer

`v=0
 o=mediasoup-client 10000 1 IN IP4 0.0.0.0
 s=-
 t=0 0
 a=ice-lite
 a=fingerprint:sha-1 16:09:7A:99:40:78:62:DE:A9:04:6A:D9:63:BD:2C:B6:7B:96:85:EA
 a=msid-semantic: WMS *
 a=group:BUNDLE 0
 m=video 7 UDP/TLS/RTP/SAVPF 100
 c=IN IP4 127.0.0.1
 b=TIAS:200000
 b=AS:200
 a=rtpmap:100 VP8/90000
 a=fmtp:100 
 a=rtcp-fb:100 goog-remb 
 a=rtcp-fb:100 transport-cc 
 a=rtcp-fb:100 ccm fir
 a=rtcp-fb:100 nack 
 a=rtcp-fb:100 nack pli
 a=extmap:1 urn:ietf:params:rtp-hdrext:toffset
 a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
 a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
 a=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
 a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
 a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
 a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space
 a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
 a=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
 a=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
 a=setup:active
 a=mid:0
 a=msid:jxp4vWd39/J7HnG4 69dca6c3-e5cf-4cca-8192-0adca78066ba
 a=recvonly
 a=ice-ufrag:pvml7sasyhyvkbvn687mg5nt7yrs9sk8
 a=ice-pwd:j1o3hi8ycnc1q1h5wmlkav5fd0luriea
 a=candidate:udpcandidate 1 udp 1076558079 103.89.48.49 28144 typ host
 a=end-of-candidates
 a=ice-options:renomination
 a=rtcp-mux
 a=rtcp-rsize
 a=content:main`

The local video stream is work and display in other's side as a remote. What would be the problem please?

Here is my create peerconnection, create and send offer implementation.

``` dart
 try {
   Map<String, dynamic> config = {"sdpSemantics": "unified-plan"};
   config.addAll(meetingInfo.iceServers!);

   pc = await createPeerConnection(config, _peerConnectionConstraints);

   await afterCreatePeerConnection();

   _sendPing();

   RTCSessionDescription s = await pc.createOffer(_constraints);

   await pc.setLocalDescription(s);

   sendOffer(s);

   pc.onIceCandidate = (candidate) async{
     await Future.delayed(const Duration(seconds: 1), () {
       onIceCandidate(candidate);
     });
   };
   pc.onTrack = (track) {
     if(track.track.kind == 'video') {
       onAddRemoteStream(track.streams[0]);
     }
   };
  } catch (e) {
    debugPrint("Catch=======> $e");
    Log.error("[VideoConnection] Encountered an error while trying to create an offer", e);
  }
```
0

There are 0 answers