Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Recorder only picks up first track. #84

Open
igrooves opened this issue Jun 3, 2019 · 7 comments
Open

Recorder only picks up first track. #84

igrooves opened this issue Jun 3, 2019 · 7 comments
Assignees
Labels

Comments

@igrooves
Copy link

igrooves commented Jun 3, 2019

I recently updated to the latest version ( 0.64.5 ) in the hopes of implementing "unified-plan" ( since safari turned on the feature for everyone as an experimental).

I can get connections working fine now on both plans, but the recorder is only picking up the first track, sometimes video, sometimes audio.

[0x1059be5c0][1559586782.775][LOG]-MP4Recorder::Create() Opening mp4 recording [/tmp/tmp-B5xFeM]
[0x70000e68f000][1559586783.114][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:52262,use:0,prio:1845501695,dtls:1]
[0x70000e68f000][1559586783.117][LOG]-DTLSConnection::onSSLInfo() | DTLS handshake done
[0x70000e68f000][1559586783.117][DBG]-DTLSConnection::SetupSRTP() | fingerprint in remote SDP matches that of peer certificate (hash SHA-256)
[0x70000e68f000][1559586783.117][LOG]-DTLSICETransport::onDTLSSetup() [suite:1]
[0x70000e68f000][1559586783.117][LOG]-DTLSICETransport::SetLocalCryptoSDES() | [suite:AES_CM_128_HMAC_SHA1_80]
[0x70000e68f000][1559586783.117][LOG]-DTLSICETransport::SetRemoteCryptoSDES() | [suite:AES_CM_128_HMAC_SHA1_80]
[0x70000e68f000][1559586783.117][LOG]-SRTPSession::AddStream() | [ssrc:2083949702,OK]
[0x70000e68f000][1559586783.117][LOG]-SRTPSession::AddStream() | [ssrc:3088418538,OK]
[0x70000e68f000][1559586783.117][LOG]-SRTPSession::AddStream() | [ssrc:629011060,OK]
[0x70000e68f000][1559586783.164][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:49794,use:1,prio:1845501695,dtls:1]
[0x70000e68f000][1559586783.193][DBG]-DTLSICETransport::onData() | Assinging media stream id [ssrc:2083949702,mid:'0']
[0x70000e68f000][1559586783.193][DBG]-RTPDepacketizer::Create() | Creating depacketizer for [media:Video,codec:H264]
[0x70000e68f000][1559586783.212][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:52262,use:1,prio:1845501695,dtls:1]
[0x70000e68f000][1559586783.213][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:49794,use:1,prio:1845501695,dtls:1]
[0x70000e68f000][1559586783.253][LOG]mp4track::CreateVideoTrack [codec:99]
[0x1059be5c0][1559586783.780][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x70000e68f000][1559586784.270][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:52262,use:1,prio:1845501695,dtls:1]
[0x70000e68f000][1559586784.270][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:49794,use:1,prio:1845501695,dtls:1]
[0x1059be5c0][1559586784.784][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x70000e68f000][1559586785.273][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:52262,use:1,prio:1845501695,dtls:1]
[0x70000e68f000][1559586785.273][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:49794,use:1,prio:1845501695,dtls:1]
[0x1059be5c0][1559586785.788][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x1059be5c0][1559586786.791][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x70000e68f000][1559586787.793][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:52262,use:1,prio:1845501695,dtls:1]
[0x70000e68f000][1559586787.793][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:49794,use:1,prio:1845501695,dtls:1]
[0x1059be5c0][1559586787.795][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x1059be5c0][1559586788.801][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x1059be5c0][1559586789.805][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x70000e68f000][1559586790.309][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:52262,use:1,prio:1845501695,dtls:1]
[0x70000e68f000][1559586790.309][DBG]-DTLSICETransport::ActivateRemoteCandidate() | Activating candidate [192.168.1.134:49794,use:1,prio:1845501695,dtls:1]
[0x1059be5c0][1559586790.808][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x1059be5c0][1559586791.812][DBG]-DTLSICETransport::SendPLI() | [ssrc:2083949702]
[0x1059be5c0][1559586792.510][LOG]-MP4Recorder::Stop()
[0x1059be5c0][1559586792.510][LOG]-Created thread [0x7ffeefbf5c90]
[0x70000e712000][1559586792.510][LOG]>mp4close [0x10607ea00]
[0x70000e712000][1559586792.511][LOG]<mp4close [0x10607ea00,time:1]
[0x1059be5c0][1559586792.512][DBG]-RTPIncomingSourceGroup::RemoveListener() [listener:0x10286f070]
[0x1059be5c0][1559586792.512][LOG]-DTLSICETransport::RemoveIncomingSourceGroup() [mid:'0',rid:'',ssrc:2083949702,fec:0,rtx:3088418538]
[0x70000e68f000][1559586792.512][LOG]-SRTPSession::RemoveStream() | [ssrc:2083949702,OK]
[0x70000e68f000][1559586792.512][LOG]-SRTPSession::RemoveStream() | [ssrc:3088418538,OK]
[0x1059be5c0][1559586792.512][DBG]-RTPIncomingSourceGroup::RemoveListener() [listener:0x105d0a100]
[0x1059be5c0][1559586792.512][LOG]-DTLSICETransport::RemoveIncomingSourceGroup() [mid:'',rid:'',ssrc:629011060,fec:0,rtx:0]
[0x70000e68f000][1559586792.512][LOG]-SRTPSession::RemoveStream() | [ssrc:629011060,OK]
[0x1059be5c0][1559586792.512][LOG]-RTPBundleTransport::RemoveICETransport() [username:9425f685e5fb5ab4:Wtlh]
[0x70000e68f000][1559586792.512][DBG]>DTLSICETransport::Stop()
[0x70000e68f000][1559586792.512][LOG]-DTLSICETransport::Reset()
[0x70000e68f000][1559586792.512][DBG]>DTLSICETransport::Stop()
[0x70000e68f000][1559586792.512][LOG]-DTLSConnection::End()

I've debugged out the Recorder.js and both tracks are added at

this.tracks.add

But only the first one seems to reach the recorder.

Do i have to add 2 separate recorders with "unified".

@igrooves
Copy link
Author

igrooves commented Jun 3, 2019

Sorry...

Offer:

v=0
o=- 1559586782761 0 IN IP4 127.0.0.1
s=semantic-sdp
c=IN IP4 0.0.0.0
t=0 0
a=msid-semantic: WMS *
a=group:BUNDLE 0 1
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101
a=rtpmap:96 H264/90000
a=rtpmap:97 rtx/90000
a=rtpmap:98 H264/90000
a=rtpmap:99 rtx/90000
a=rtpmap:100 VP8/90000
a=rtpmap:101 rtx/90000
a=fmtp:97 apt=96
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c1f
a=fmtp:99 apt=98
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=fmtp:101 apt=100
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=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=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:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type
a=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/video-timing
a=extmap:10 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=setup:actpass
a=mid:0
a=msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=sendrecv
a=ice-ufrag:Wtlh
a=ice-pwd:4ABHXTohM2IDqBs6mQ3UqZix
a=fingerprint:sha-256 01:BE:95:1B:6C:60:2E:79:5A:A1:B9:D9:37:9A:F2:56:A4:A8:F8:9D:6A:24:D9:03:4B:3E:75:35:1D:91:B7:C6
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:2083949702 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:2083949702 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc:3088418538 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:3088418538 msid:5017283f-d7fd-473f-b194-ae52a252c821 cdee84b3-4c66-41d0-96ba-7fc38300c09c
a=ssrc-group:FID 2083949702 3088418538
a=ssrc-group:FID 2083949702 3088418538
a=ssrc-group:FID 2083949702 3088418538
a=ssrc-group:FID 2083949702 3088418538
a=rtcp-mux
a=rtcp-rsize
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 9 102 0 8 105 13 110 113 126
a=rtpmap:111 opus/48000/2
a=rtpmap:103 ISAC/8000
a=rtpmap:9 G722/8000
a=rtpmap:102 ILBC/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:105 CN/8000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/8000
a=rtpmap:113 telephone-event/8000
a=rtpmap:126 telephone-event/8000
a=fmtp:111 minptime=10;useinbandfec=1
a=rtcp-fb:111 transport-cc
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=setup:actpass
a=mid:1
a=msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=sendrecv
a=ice-ufrag:Wtlh
a=ice-pwd:4ABHXTohM2IDqBs6mQ3UqZix
a=fingerprint:sha-256 01:BE:95:1B:6C:60:2E:79:5A:A1:B9:D9:37:9A:F2:56:A4:A8:F8:9D:6A:24:D9:03:4B:3E:75:35:1D:91:B7:C6
a=ssrc:629011060 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:629011060 msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=ssrc:629011060 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:629011060 msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=ssrc:629011060 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:629011060 msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=ssrc:629011060 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:629011060 msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=ssrc:629011060 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:629011060 msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=ssrc:629011060 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:629011060 msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=ssrc:629011060 cname:5017283f-d7fd-473f-b194-ae52a252c821
a=ssrc:629011060 msid:5017283f-d7fd-473f-b194-ae52a252c821 7f802e91-6eea-4811-9555-c985a499bbc0
a=rtcp-mux
a=rtcp-rsize

Answer:

v=0
o=- 1559586782774 1 IN IP4 127.0.0.1
s=semantic-sdp
c=IN IP4 0.0.0.0
t=0 0
a=ice-lite
a=msid-semantic: WMS *
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101
a=rtpmap:96 H264/90000
a=rtpmap:97 rtx/90000
a=rtpmap:98 H264/90000
a=rtpmap:99 rtx/90000
a=rtpmap:100 VP8/90000
a=rtpmap:101 rtx/90000
a=fmtp:97 apt=96
a=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c1f
a=fmtp:99 apt=98
a=fmtp:98 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=fmtp:101 apt=100
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=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=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:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:4 urn:3gpp:video-orientation
a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid
a=setup:passive
a=mid:0
a=recvonly
a=ice-ufrag:9425f685e5fb5ab4
a=ice-pwd:21905c4d875e8b009957770fedb572076d1a65f7464b5dd8
a=fingerprint:sha-256 91:74:29:C5:C5:96:9E:D3:39:A4:D7:2D:C9:4E:F9:AC:67:5B:5B:F3:0B:24:04:F0:8C:99:08:6D:55:AF:3D:1B
a=candidate:1 1 UDP 33554431 192.168.1.134 62901 typ host
a=rtcp-mux
a=rtcp-rsize
m=audio 9 UDP/TLS/RTP/SAVPF 111
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=setup:passive
a=mid:1
a=recvonly
a=ice-ufrag:9425f685e5fb5ab4
a=ice-pwd:21905c4d875e8b009957770fedb572076d1a65f7464b5dd8
a=fingerprint:sha-256 91:74:29:C5:C5:96:9E:D3:39:A4:D7:2D:C9:4E:F9:AC:67:5B:5B:F3:0B:24:04:F0:8C:99:08:6D:55:AF:3D:1B
a=candidate:1 1 UDP 33554431 192.168.1.134 62901 typ host
a=rtcp-mux
a=rtcp-rsize

@igrooves
Copy link
Author

igrooves commented Jun 5, 2019

Seems its an audio issue, if i attach the video track first, or only attach the video track the video is always recorded. Looking at the logs, the recorder gives up and stops posting after it adds the audio ( opus ) "RTPDepacketizer" when audio is attached.

@murillo128 murillo128 self-assigned this Jun 5, 2019
@murillo128 murillo128 added the bug label Jun 5, 2019
@murillo128
Copy link
Member

can you send me a sample mp4 file created? want to check if the tracks are created and is the media what is missing or the tracks are not even created.

Also can you check with params.waitForIntra=false when creating the recorder?

@igrooves
Copy link
Author

igrooves commented Jun 5, 2019

I did have tried waitForIntra on and off. off, you get the origin behaviour, i.e. only one track gets recorded.

No video example:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/tmp-Hcotcr':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2019-06-05T15:15:32.000000Z
  Duration: 00:00:04.71, start: 0.000000, bitrate: 39 kb/s
    Stream #0:0(und): Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp, 17 kb/s (default)
    Metadata:
      creation_time   : 2019-06-05T15:15:32.000000Z
    Stream #0:1(und): Data: none (rtp  / 0x20707472), 12 kb/s
    Metadata:
      creation_time   : 2019-06-05T15:15:32.000000Z
Unsupported codec with id 0 for input stream 1

And example without audio:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/tmp-XaYZaS':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
    creation_time   : 2019-06-05T15:25:02.000000Z
  Duration: 00:00:07.49, start: 0.000000, bitrate: 274 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x480, 295 kb/s, 28.96 fps, 90k tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2019-06-05T15:25:02.000000Z
      encoder         : JVT/AVC Coding
    Stream #0:1(und): Data: none (rtp  / 0x20707472), 11 kb/s
    Metadata:
      creation_time   : 2019-06-05T15:25:02.000000Z
[h264 @ 0x7fc84c00f800] Invalid NAL unit 0, skipping.
Unsupported codec with id 0 for input stream 1

Archive.zip

@murillo128
Copy link
Member

The SDPs doesn't seem to contain proper unified SDP, could you create a small sample repo to try to reproduce the issue?

@igrooves
Copy link
Author

igrooves commented Jun 5, 2019

Client side i've removed everything, even adapter.js, back to pure RTCPeerConnection

            let
                peer = this.pc = new window.RTCPeerConnection({
                    iceServers: [],
                    sdpSemantics: 'unified-plan'
                });

            peer.onicecandidate = function(event) {
                if (event.candidate) {
                    console.log( "ice", event );
                }
                    // options.onICE(event.candidate);
            };

            peer.onnegotiationneeded = function( event ) {
                console.log( "onnegotiationneeded", event );
            };

            peer.onconnectionstatechange = function( event ) {
                console.log( "onconnectionstatechange", event, peer.connectionState );
            };

            let audio, video;
            this.stream.getTracks().map( ( track ) => {
                if ( track.kind === "video" ) {
                    video = track;

                }
                if ( track.kind === "audio" ) {
                    audio = track;
                }
            } );

            if ( video ) {
                let trans = peer.addTransceiver( video, this.stream );
                trans.direction = "sendonly";
            }

            if ( audio ) {
                let trans = peer.addTransceiver( audio, this.stream );
                trans.direction = "sendonly";
            }

            peer.oniceconnectionstatechange = peer.onsignalingstatechange = function ( event ) {
                console.log( "oniceconnectionstatechange", event, peer.iceConnectionState)
                if (peer && peer.iceConnectionState && peer.iceConnectionState.search(/disconnected|closed|failed/gi) !== -1) {
                    console.info( "connection closed", peer.iceConnectionState );
                }
            };

            peer.createOffer().then(function(sessionDescription) {
                console.log( "OFFER", sessionDescription.sdp );
                return peer.setLocalDescription( sessionDescription );
            })
            .then( () => {
                let offer = peer.localDescription;
                this.socket.emit( "offer", offer );
            })
            .catch(this.props.onSDPError);

            this.socket.once( "answer", ( answer ) => {
                console.log( "incoming answer", answer );
                peer.setRemoteDescription( new RTCSessionDescription( {
                    type: 'answer',
                    sdp: answer
                } ) );
            } );

            this.socket.once( "answer", ( answer ) => {
                console.log( "incoming answer", answer );
                peer.setRemoteDescription( new RTCSessionDescription( {
                    type: 'answer',
                    sdp: answer
                } ) );
            } );

offer produced:

v=0
o=- 1119302660583033453 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0 1
a=msid-semantic: WMS
m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:Qs6M
a=ice-pwd:wovgukivTqqU9p4WwA2S6I12
a=ice-options:trickle
a=fingerprint:sha-256 17:17:4A:02:6B:53:D2:8B:57:05:72:26:50:34:D8:24:23:D3:A2:07:B3:06:48:23:A8:DE:73:51:F3:51:80:ED
a=setup:actpass
a=mid:0
a=extmap:14 urn:ietf:params:rtp-hdrext:toffset
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:12 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:11 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://tools.ietf.org/html/draft-ietf-avtext-framemarking-07
a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendonly
a=msid:- 415e7b30-b670-4da3-bcf0-d1e0bde78dbc
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: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: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:122 rtx/90000
a=fmtp:122 apt=102
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=0;profile-level-id=42001f
a=rtpmap:121 rtx/90000
a=fmtp:121 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
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:124 H264/90000
a=rtcp-fb:124 goog-remb
a=rtcp-fb:124 transport-cc
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack
a=rtcp-fb:124 nack pli
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=124
a=rtpmap:123 H264/90000
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 transport-cc
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
a=rtpmap:119 rtx/90000
a=fmtp:119 apt=123
a=rtpmap:114 red/90000
a=rtpmap:115 rtx/90000
a=fmtp:115 apt=114
a=rtpmap:116 ulpfec/90000
a=ssrc-group:FID 557630897 1216544423
a=ssrc:557630897 cname:hKDhkJii8RjdsuLI
a=ssrc:557630897 msid:- 415e7b30-b670-4da3-bcf0-d1e0bde78dbc
a=ssrc:557630897 mslabel:-
a=ssrc:557630897 label:415e7b30-b670-4da3-bcf0-d1e0bde78dbc
a=ssrc:1216544423 cname:hKDhkJii8RjdsuLI
a=ssrc:1216544423 msid:- 415e7b30-b670-4da3-bcf0-d1e0bde78dbc
a=ssrc:1216544423 mslabel:-
a=ssrc:1216544423 label:415e7b30-b670-4da3-bcf0-d1e0bde78dbc
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:Qs6M
a=ice-pwd:wovgukivTqqU9p4WwA2S6I12
a=ice-options:trickle
a=fingerprint:sha-256 17:17:4A:02:6B:53:D2:8B:57:05:72:26:50:34:D8:24:23:D3:A2:07:B3:06:48:23:A8:DE:73:51:F3:51:80:ED
a=setup:actpass
a=mid:1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendonly
a=msid:- 3be534a3-4467-46b7-a52a-28dd1687718a
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:66239055 cname:hKDhkJii8RjdsuLI
a=ssrc:66239055 msid:- 3be534a3-4467-46b7-a52a-28dd1687718a
a=ssrc:66239055 mslabel:-
a=ssrc:66239055 label:3be534a3-4467-46b7-a52a-28dd1687718a

Answer back from media server:

v=0
o=- 1559751281713 1 IN IP4 127.0.0.1
s=semantic-sdp
c=IN IP4 0.0.0.0
t=0 0
a=ice-lite
a=msid-semantic: WMS *
m=video 9 UDP/TLS/RTP/SAVPF 102 122 127 121 125 107 108 109 124 120 123 119
a=rtpmap:102 H264/90000
a=rtpmap:122 rtx/90000
a=rtpmap:127 H264/90000
a=rtpmap:121 rtx/90000
a=rtpmap:125 H264/90000
a=rtpmap:107 rtx/90000
a=rtpmap:108 H264/90000
a=rtpmap:109 rtx/90000
a=rtpmap:124 H264/90000
a=rtpmap:120 rtx/90000
a=rtpmap:123 H264/90000
a=rtpmap:119 rtx/90000
a=fmtp:122 apt=102
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=fmtp:121 apt=127
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f
a=fmtp:107 apt=125
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=fmtp:109 apt=108
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f
a=fmtp:120 apt=124
a=fmtp:124 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0032
a=fmtp:119 apt=123
a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032
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=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=rtcp-fb:125 goog-remb 
a=rtcp-fb:125 transport-cc 
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack 
a=rtcp-fb:125 nack pli
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=rtcp-fb:124 goog-remb 
a=rtcp-fb:124 transport-cc 
a=rtcp-fb:124 ccm fir
a=rtcp-fb:124 nack 
a=rtcp-fb:124 nack pli
a=rtcp-fb:123 goog-remb 
a=rtcp-fb:123 transport-cc 
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack 
a=rtcp-fb:123 nack pli
a=extmap:13 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:12 urn:3gpp:video-orientation
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=setup:passive
a=mid:0
a=recvonly
a=ice-ufrag:c661ea14c7ef2590
a=ice-pwd:95a6a21e4fe7d425bc74cc8014d4aa6c833d41fd9b9cc826
a=fingerprint:sha-256 BB:67:11:AB:F1:51:8F:8D:92:95:44:7D:6E:85:DA:94:73:8E:8B:74:C3:82:DA:1D:81:5D:4E:02:FC:47:C1:27
a=candidate:1 1 UDP 33554431 192.168.1.134 62188 typ host
a=rtcp-mux
a=rtcp-rsize
m=audio 9 UDP/TLS/RTP/SAVPF 111
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=setup:passive
a=mid:1
a=recvonly
a=ice-ufrag:c661ea14c7ef2590
a=ice-pwd:95a6a21e4fe7d425bc74cc8014d4aa6c833d41fd9b9cc826
a=fingerprint:sha-256 BB:67:11:AB:F1:51:8F:8D:92:95:44:7D:6E:85:DA:94:73:8E:8B:74:C3:82:DA:1D:81:5D:4E:02:FC:47:C1:27
a=candidate:1 1 UDP 33554431 192.168.1.134 62188 typ host
a=rtcp-mux
a=rtcp-rsize

This is from chrome, but same behaviour on safari.

Issue still persists.

Can you point me to what is wrong or invalid with SDP's? I may help me trace the issue.

@dahabit
Copy link

dahabit commented Jun 29, 2020

It will be great if we found solution for this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants