We are facing an issue with the Janus VideoRoom plugin where participants using iOS 17 and later are unable to view the remote peer’s video feed. Despite successful SRTP and DTLS handshakes, the video remains invisible on iOS devices, while other platforms work fine. We’ve conducted thorough testing across multiple iOS devices, ruling out connectivity and permission issues. Could you provide insights on any known compatibility issues or potential solutions for this specific platform?
below is the logs fyr
Got a Janus API request from janus.transport.websockets (0x7f43d8002450)
No more remote candidates for handle 2784050585203576!
[2784050585203576] New selected pair for component 1 in stream 1: 4 <-> 2109610619
[2784050585203576] Component is ready enough, starting DTLS handshake...
[2784050585203576] Component state changed for component 1 in stream 1: 3 (connected)
[2784050585203576] Creating retransmission timer with ID 9
[2784050585203576] DTLS established, yay!
[2784050585203576] Computing sha-256 fingerprint of remote certificate...
[2784050585203576] Remote fingerprint (sha-256) of the client is 55:32:D3:A6:D7:58:59:9E:65:C8:B0:87:33:14:81:D0:D2:D9:48:7D:05:A8:12:05:84:AA:1C:80:9A:F0:8D:02
[2784050585203576] Fingerprint is a match!
[2784050585203576] SRTP_AEAD_AES_256_GCM
[2784050585203576] Key/Salt/Master: 44/32/12
[2784050585203576] Created inbound SRTP session for component 1 in stream 1
[2784050585203576] Created outbound SRTP session for component 1 in stream 1
[2784050585203576] Connecting the SCTP association
[2784050585203576] Connected to the DataChannel peer
[2784050585203576] The DTLS handshake for the component 1 in stream 1 has been completed
[2784050585203576] The DTLS handshake has been completed
[2784050585203576] Telling the plugin about it (JANUS VideoRoom plugin)
[janus.plugin.videoroom-0x7f43d8002570] WebRTC media is now available
New subscriber available sending PLI to 1762638959726676 (#0, aarthi.d@ezee.ai)
[2784050585203576] Sending event to transport...; 0x7f442800c7c0
[2784050585203576] DTLS already set up, disabling retransmission timer!
SSRC changed, 0 --> 3566567930
SSRC changed, 0 --> 3916231614
PLI from subscriber sending PLI to 1762638959726676 (#0, aarthi.d@ezee.ai)
PLI from subscriber sending PLI to 1762638959726676 (#0, aarthi.d@ezee.ai)
Association change SCTP_COMM_UP, streams (in/out) = (300/300), supports PR MULTIBUF RE-CONFIG.
[2784050585203576] Opened channel 'JanusDataChannel' (protocol=??, id=0) (0/0/0)
[janus.plugin.videoroom-0x7f43d8002570] Data channel available
[3918276759999753] Sent NACKs for 2 missing packets (video stream #0)
[6227092578789541] Retransmitted 2 packets due to NACK (video stream #0)
[2784050585203576] Component state changed for component 1 in stream 1: 4 (ready)
Got a Janus API request from janus.transport.websockets (0x7f43d8005e80)
Got a keep-alive on session 6854430954361722
Got a Janus API request from janus.transport.websockets (0x7f43d8002450)
Got a keep-alive on session 2679292483863779
[6227092578789541] Retransmitted 2 packets due to NACK (video stream #0)
[150671042082258] Retransmitted 1 packets due to NACK (video stream #0)
[5081280449823432] Retransmitted 1 packets due to NACK (video stream #0)
[7346417459812653] Retransmitted 1 packets due to NACK (video stream #0)
[2784050585203576] Retransmitted 1 packets due to NACK (video stream #0)
[3918276759999753] Sent NACKs for 1 missing packets (video stream #0)
[6227092578789541] Retransmitted 1 packets due to NACK (video stream #0)
[5081280449823432] Retransmitted 1 packets due to NACK (video stream #0)
[7346417459812653] Retransmitted 1 packets due to NACK (video stream #0)
[150671042082258] Retransmitted 2 packets due to NACK (video stream #0)
Got a Janus API request from janus.transport.websockets (0x7f43d8005e80)
Got a keep-alive on session 6854430954361722
[2784050585203576] Retransmitted 10 packets due to NACK (video stream #0)
[150671042082258] Sending event to transport...
[150671042082258] Sending event to transport...; 0x7f4428008e00
[2784050585203576] Sending event to transport...
[2784050585203576] Sending event to transport...; 0x7f442800c7c0
[7346417459812653] Sending event to transport...
[7346417459812653] Sending event to transport...; 0x7f4428009950
[5081280449823432] Sending event to transport...
[5081280449823432] Sending event to transport...; 0x7f442800c0e0
[7346417459812653] Sending event to transport...
[7346417459812653] Sending event to transport...; 0x7f4428009950
[5081280449823432] Sending event to transport...
[5081280449823432] Sending event to transport...; 0x7f442800c0e0
[5081280449823432] Retransmitted 23 packets due to NACK (video stream #0)
[7346417459812653] Retransmitted 19 packets due to NACK (video stream #0)
[150671042082258] Retransmitted 22 packets due to NACK (video stream #0)
[2784050585203576] Sending event to transport...
[2784050585203576] Sending event to transport...; 0x7f442800c7c0
[150671042082258] Sending event to transport...
[150671042082258] Sending event to transport...; 0x7f4428008e00
[2784050585203576] Retransmitted 11 packets due to NACK (video stream #0)
@lorenzo@moderators I have checked the H264 profile in the log, the profile value is - “42e01f” , that is common for all. This is is not because of that. please help me what other thing we can check…
also iphone 14 pro max is not working in your demo option of your official site.
I am attaching janus log here of my web app. please help me out.
Transport task pool, serving request
[5589156355001332] There's a message for JANUS VideoRoom plugin
Configuring new participant
Configuring new publisher
-- Participant ID: 1118157012676198
Preparing JSON event as a reply
[5589156355001332] Sending event to transport...
>> 0 (Success)
Got a Janus API request from janus.transport.websockets (0x7f43d80041b0)
Transport task pool, serving request
[5589156355001332] There's a message for JANUS VideoRoom plugin
[5589156355001332] Remote SDP:
v=0
o=- 5437873605003190650 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1 2
a=extmap-allow-mixed
a=msid-semantic: WMS a7e5dffb-96c8-491a-a035-cc86bfb27ef4
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 13 110 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:mcVj
a=ice-pwd:Ml9Lq7SwjmRSCnsOhNPxIABm
a=ice-options:trickle
a=fingerprint:sha-256 E4:C4:C3:14:99:33:85:64:A5:18:CF:D9:CE:CB:4F:7C:C3:AB:C6:98:FD:F9:87:E6:39:D4:E2:C3:56:98:FB:EA
a=setup:actpass
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=sendonly
a=msid:a7e5dffb-96c8-491a-a035-cc86bfb27ef4 c6da1f90-3333-4dd6-afe7-b290baf7df02
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
a=ssrc:635572182 cname:1eRXjM7VLClPjmFo
a=ssrc:635572182 msid:a7e5dffb-96c8-491a-a035-cc86bfb27ef4 c6da1f90-3333-4dd6-afe7-b290baf7df02
m=video 9 UDP/TLS/RTP/SAVPF 96 97 102 103 104 105 106 107 108 109 127 125 39 40 45 46 98 99 100 101 112 113 116 117 118
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:mcVj
a=ice-pwd:Ml9Lq7SwjmRSCnsOhNPxIABm
a=ice-options:trickle
a=fingerprint:sha-256 E4:C4:C3:14:99:33:85:64:A5:18:CF:D9:CE:CB:4F:7C:C3:AB:C6:98:FD:F9:87:E6:39:D4:E2:C3:56:98:FB:EA
a=setup:actpass
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:13 urn:3gpp:video-orientation
a=extmap:3 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:4 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=sendonly
a=msid:a7e5dffb-96c8-491a-a035-cc86bfb27ef4 64217f46-f868-47e8-8873-44b7d753d7c4
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:103 rtx/90000
a=fmtp:103 apt=102
a=rtpmap:104 H264/90000
a=rtcp-fb:104 goog-remb
a=rtcp-fb:104 transport-cc
a=rtcp-fb:104 ccm fir
a=rtcp-fb:104 nack
a=rtcp-fb:104 nack pli
a=fmtp:104 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:105 rtx/90000
a=fmtp:105 apt=104
a=rtpmap:106 H264/90000
a=rtcp-fb:106 goog-remb
a=rtcp-fb:106 transport-cc
a=rtcp-fb:106 ccm fir
a=rtcp-fb:106 nack
a=rtcp-fb:106 nack pli
a=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=106
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:109 rtx/90000
a=fmtp:109 apt=108
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
a=rtpmap:125 rtx/90000
a=fmtp:125 apt=127
a=rtpmap:39 H264/90000
a=rtcp-fb:39 goog-remb
a=rtcp-fb:39 transport-cc
a=rtcp-fb:39 ccm fir
a=rtcp-fb:39 nack
a=rtcp-fb:39 nack pli
a=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f
a=rtpmap:40 rtx/90000
a=fmtp:40 apt=39
a=rtpmap:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0
a=rtpmap:46 rtx/90000
a=fmtp:46 apt=45
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:100 VP9/90000
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=fmtp:100 profile-id=2
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:112 H264/90000
a=rtcp-fb:112 goog-remb
a=rtcp-fb:112 transport-cc
a=rtcp-fb:112 ccm fir
a=rtcp-fb:112 nack
a=rtcp-fb:112 nack pli
a=fmtp:112 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f
a=rtpmap:113 rtx/90000
a=fmtp:113 apt=112
a=rtpmap:116 red/90000
a=rtpmap:117 rtx/90000
a=fmtp:117 apt=116
a=rtpmap:118 ulpfec/90000
a=ssrc-group:FID 1792365283 1569537930
a=ssrc:1792365283 cname:1eRXjM7VLClPjmFo
a=ssrc:1792365283 msid:a7e5dffb-96c8-491a-a035-cc86bfb27ef4 64217f46-f868-47e8-8873-44b7d753d7c4
a=ssrc:1569537930 cname:1eRXjM7VLClPjmFo
a=ssrc:1569537930 msid:a7e5dffb-96c8-491a-a035-cc86bfb27ef4 64217f46-f868-47e8-8873-44b7d753d7c4
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:mcVj
a=ice-pwd:Ml9Lq7SwjmRSCnsOhNPxIABm
a=ice-options:trickle
a=fingerprint:sha-256 E4:C4:C3:14:99:33:85:64:A5:18:CF:D9:CE:CB:4F:7C:C3:AB:C6:98:FD:F9:87:E6:39:D4:E2:C3:56:98:FB:EA
a=setup:actpass
a=mid:2
a=sctp-port:5000
a=max-message-size:262144
[5589156355001332] Peer advertised 'actpass' DTLS role, we'll be a DTLS client
[5589156355001332] There are 1 audio, 1 video and 1 data m-lines
[5589156355001332] Setting ICE locally: got OFFER
[5589156355001332] Creating ICE agent (ICE Lite mode, controlled)
[5589156355001332] Adding 10.10.10.241 to the addresses to gather candidates for
[5589156355001332] Parsing m-line #0...
[5589156355001332] ICE ufrag (local): mcVj
[5589156355001332] ICE pwd (local): Ml9Lq7SwjmRSCnsOhNPxIABm
[5589156355001332] Fingerprint (local) : sha-256 E4:C4:C3:14:99:33:85:64:A5:18:CF:D9:CE:CB:4F:7C:C3:AB:C6:98:FD:F9:87:E6:39:D4:E2:C3:56:98:FB:EA
[5589156355001332] DTLS setup (local): actpass
[5589156355001332] Setting connect state (DTLS client)
[5589156355001332] Setting remote credentials...
[5589156355001332] Peer audio SSRC: 635572182
[5589156355001332] Parsing m-line #1...
[5589156355001332] ICE ufrag (local): mcVj
[5589156355001332] ICE pwd (local): Ml9Lq7SwjmRSCnsOhNPxIABm
[5589156355001332] Fingerprint (local) : sha-256 E4:C4:C3:14:99:33:85:64:A5:18:CF:D9:CE:CB:4F:7C:C3:AB:C6:98:FD:F9:87:E6:39:D4:E2:C3:56:98:FB:EA
[5589156355001332] DTLS setup (local): actpass
[5589156355001332] Setting connect state (DTLS client)
[5589156355001332] Peer video SSRC: 1792365283
[5589156355001332] Peer video SSRC (rtx): 1569537930
[5589156355001332] Parsing m-line #2... (data channels)
[5589156355001332] ICE ufrag (local): mcVj
[5589156355001332] ICE pwd (local): Ml9Lq7SwjmRSCnsOhNPxIABm
[5589156355001332] Fingerprint (local) : sha-256 E4:C4:C3:14:99:33:85:64:A5:18:CF:D9:CE:CB:4F:7C:C3:AB:C6:98:FD:F9:87:E6:39:D4:E2:C3:56:98:FB:EA
[5589156355001332] DTLS setup (local): actpass
[5589156355001332] Setting connect state (DTLS client)
Will remove payload type 97 (97 rtx/90000)
Will remove payload type 103 (103 rtx/90000)
Will remove payload type 105 (105 rtx/90000)
Will remove payload type 107 (107 rtx/90000)
Will remove payload type 109 (109 rtx/90000)
Will remove payload type 125 (125 rtx/90000)
Will remove payload type 40 (40 rtx/90000)
Will remove payload type 46 (46 rtx/90000)
Will remove payload type 99 (99 rtx/90000)
Will remove payload type 101 (101 rtx/90000)
Will remove payload type 113 (113 rtx/90000)
Will remove payload type 116 (116 red/90000)
Will remove payload type 117 (117 rtx/90000)
Will remove payload type 118 (118 ulpfec/90000)
-------------------------------------------
>> Anonymized
-------------------------------------------
Preparing JSON event as a reply
This is involving a negotiation (offer) as well:
v=0
o=- 5437873605003190650 2 IN IP4 1.1.1.1
s=-
t=0 0
m=audio 9 UDP/TLS/RTP/SAVPF 111 63 9 0 8 13 110 126
c=IN IP4 1.1.1.1
a=sendonly
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=msid:a7e5dffb-96c8-491a-a035-cc86bfb27ef4 c6da1f90-3333-4dd6-afe7-b290baf7df02
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:63 red/48000/2
a=fmtp:63 111/111
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
m=video 9 UDP/TLS/RTP/SAVPF 96 102 104 106 108 127 39 45 98 100 112
c=IN IP4 1.1.1.1
a=sendonly
a=mid:1
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:13 urn:3gpp:video-orientation
a=extmap:3 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:4 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=msid:a7e5dffb-96c8-491a-a035-cc86bfb27ef4 64217f46-f868-47e8-8873-44b7d753d7c4
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtpmap:104 H264/90000
a=rtcp-fb:104 goog-remb
a=rtcp-fb:104 transport-cc
a=rtcp-fb:104 ccm fir
a=rtcp-fb:104 nack
a=rtcp-fb:104 nack pli
a=fmtp:104 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=rtpmap:106 H264/90000
a=rtcp-fb:106 goog-remb
a=rtcp-fb:106 transport-cc
a=rtcp-fb:106 ccm fir
a=rtcp-fb:106 nack
a=rtcp-fb:106 nack pli
a=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f
a=rtpmap:39 H264/90000
a=rtcp-fb:39 goog-remb
a=rtcp-fb:39 transport-cc
a=rtcp-fb:39 ccm fir
a=rtcp-fb:39 nack
a=rtcp-fb:39 nack pli
a=fmtp:39 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f
a=rtpmap:45 AV1/90000
a=rtcp-fb:45 goog-remb
a=rtcp-fb:45 transport-cc
a=rtcp-fb:45 ccm fir
a=rtcp-fb:45 nack
a=rtcp-fb:45 nack pli
a=fmtp:45 level-idx=5;profile=0;tier=0
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=fmtp:98 profile-id=0
a=rtpmap:100 VP9/90000
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=fmtp:100 profile-id=2
a=rtpmap:112 H264/90000
a=rtcp-fb:112 goog-remb
a=rtcp-fb:112 transport-cc
a=rtcp-fb:112 ccm fir
a=rtcp-fb:112 nack
a=rtcp-fb:112 nack pli
a=fmtp:112 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f
m=application 9 UDP/DTLS/SCTP webrtc-datachannel