Open Bug 1410390 Opened 7 years ago Updated 12 days ago

webrtc cannot encode or decode stream with h264

Categories

(Core :: WebRTC: Audio/Video, defect, P3)

56 Branch
defect

Tracking

()

UNCONFIRMED

People

(Reporter: mmzhw51, Unassigned)

Details

Attachments

(1 file)

Attached image 1.gif
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36 Steps to reproduce: we built a environment like 'https://pexipdemo.com' use webrtc to join meeting with h264 Actual results: probability can not codec media stream 2017-10-19 11:59:12.492000 UTC - 6784[abe400]: Flow is ready 2017-10-19 11:59:12.492000 UTC - 6784[abe400]: Transport ready for pipeline 0000000015826C80 flow 0a409f8a262034a5| Transmit video[{9546b6aa-090b-411b-8446-96b5faeaf98f}]: RTP 2017-10-19 11:59:12.492000 UTC - 6784[abe400]: Setting SRTP cipher suite SRTP_AES128_CM_HMAC_SHA1_80 2017-10-19 11:59:12.492000 UTC - 6784[abe400]: Setting SRTP cipher suite SRTP_AES128_CM_HMAC_SHA1_80 2017-10-19 11:59:12.492000 UTC - 6784[abe400]: Listening for RTP packets received on 000000000BEF7820 2017-10-19 11:59:12.492000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtp(none)]; Layer[dtls]: Receive would have blocked 2017-10-19 11:59:12.501000 UTC - 5648[2ebcb400]: MediaPipeline::NotifyRealtimeTrackData() listener=000000000BF1AE20, offset=0, duration=864 2017-10-19 11:59:12.504000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:660: mozilla::WebrtcAudioConduit::GetAudioFrame 2017-10-19 11:59:12.504000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:764: mozilla::WebrtcAudioConduit::GetAudioFrame GetAudioFrame:Got samples: length 320 2017-10-19 11:59:12.504000 UTC - 5648[2ebcb400]: Audio conduit returned buffer of length 320 2017-10-19 11:59:12.504000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:660: mozilla::WebrtcAudioConduit::GetAudioFrame 2017-10-19 11:59:12.504000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:764: mozilla::WebrtcAudioConduit::GetAudioFrame GetAudioFrame:Got samples: length 320 2017-10-19 11:59:12.504000 UTC - 5648[2ebcb400]: Audio conduit returned buffer of length 320 2017-10-19 11:59:12.504000 UTC - 5648[2ebcb400]: MediaPipeline::NotifyQueuedChanges() 2017-10-19 11:59:12.504000 UTC - 7668[1ff54800]: Sending an I420 video frame 2017-10-19 11:59:12.504000 UTC - 7668[1ff54800]: [VideoFrameConverter #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1762: mozilla::WebrtcVideoConduit::SendVideoFrame 2017-10-19 11:59:12.504000 UTC - 7668[1ff54800]: [VideoFrameConverter #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1773: mozilla::WebrtcVideoConduit::SendVideoFrame: call SelectSendResolution with 1280x720 2017-10-19 11:59:12.504000 UTC - 7668[1ff54800]: [VideoFrameConverter #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1559: mozilla::WebrtcVideoConduit::SelectSendResolution: resolution changing to 1280x720 (from 0x0) 2017-10-19 11:59:12.504000 UTC - 7668[1ff54800]: [VideoFrameConverter #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1611: mozilla::WebrtcVideoConduit::SelectSendResolution: proxying lambda to WebRTC thread for reconfig (width 1280/1280, height 720/720 2017-10-19 11:59:12.505000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:593: mozilla::WebrtcAudioConduit::SendAudioFrame 2017-10-19 11:59:12.505000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:914: mozilla::WebrtcAudioConduit::SendRtp: len 172 2017-10-19 11:59:12.505000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:937: mozilla::WebrtcAudioConduit::SendRtp Sent RTP Packet 2017-10-19 11:59:12.505000 UTC - 6784[abe400]: Successfully protected an SRTP packet of len 182 2017-10-19 11:59:12.505000 UTC - 6784[abe400]: 0a409f8a262034a5| Transmit audio[{63765730-3e6f-440c-b25c-cb4b38894737}] sending RTP packet 2017-10-19 11:59:12.505000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:0,rtp(none)]; Layer[ice]: SendPacket(182) succeeded 2017-10-19 11:59:12.508000 UTC - 7592[a2a800]: [main|WebrtcVideoSessionConduit] VideoConduit.cpp:1646: mozilla::WebrtcVideoConduit::ReconfigureSendCodec::<lambda_a321b3a397d13c05d10bed1996e4e1a7>::operator (): Requesting resolution change to 1280x720 (from 320x240), jsScaleDownBy=1.000000 2017-10-19 11:59:12.508000 UTC - 7592[a2a800]: [main|WebrtcVideoSessionConduit] VideoConduit.cpp:1661: mozilla::WebrtcVideoConduit::ReconfigureSendCodec::<lambda_a321b3a397d13c05d10bed1996e4e1a7>::operator (): new_width=1280 new_height=720 2017-10-19 11:59:12.508000 UTC - 7592[a2a800]: [main|WebrtcVideoSessionConduit] VideoConduit.cpp:1681: mozilla::WebrtcVideoConduit::ReconfigureSendCodec::<lambda_a321b3a397d13c05d10bed1996e4e1a7>::operator (): Encoder resolution changed to 1280x720 @ 30fps, bitrate 600000:2500000 2017-10-19 11:59:12.508000 UTC - 7592[a2a800]: [main|WebrtcVideoSessionConduit] VideoConduit.cpp:1695: mozilla::WebrtcVideoConduit::ReconfigureSendCodec Inserted a frame from reconfig lambda 2017-10-19 11:59:12.510000 UTC - 7592[a2a800]: [main|PeerConnectionImpl] PeerConnectionImpl.cpp:2423: Encountered media error! GMP Encode: Either init was aborted, or init failed to supply either a GMP Encoder or GMP host. 2017-10-19 11:59:12.511000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[ice]: PacketReceived(0-1508414349442000 (id=83 url=https://189.195.103.1/webrtc/login) aLevel=1,2,352) 2017-10-19 11:59:12.511000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: PacketReceived(352) 2017-10-19 11:59:12.513000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[ice]: SendPacket(673) succeeded 2017-10-19 11:59:12.513000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: Handshake would have blocked 2017-10-19 11:59:12.513000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: Setting DTLS timeout to 50 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: MediaPipeline::NotifyRealtimeTrackData() listener=000000000BF1AE20, offset=0, duration=1024 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:660: mozilla::WebrtcAudioConduit::GetAudioFrame 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:764: mozilla::WebrtcAudioConduit::GetAudioFrame GetAudioFrame:Got samples: length 320 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: Audio conduit returned buffer of length 320 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:660: mozilla::WebrtcAudioConduit::GetAudioFrame 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: [|WebrtcAudioSessionConduit] AudioConduit.cpp:764: mozilla::WebrtcAudioConduit::GetAudioFrame GetAudioFrame:Got samples: length 320 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: Audio conduit returned buffer of length 320 2017-10-19 11:59:12.521000 UTC - 5648[2ebcb400]: MediaPipeline::NotifyQueuedChanges() 2017-10-19 11:59:12.522000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:593: mozilla::WebrtcAudioConduit::SendAudioFrame 2017-10-19 11:59:12.522000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:593: mozilla::WebrtcAudioConduit::SendAudioFrame 2017-10-19 11:59:12.522000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:914: mozilla::WebrtcAudioConduit::SendRtp: len 172 2017-10-19 11:59:12.522000 UTC - 7668[1ff54800]: Sending an I420 video frame 2017-10-19 11:59:12.522000 UTC - 7668[1ff54800]: [VideoFrameConverter #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1762: mozilla::WebrtcVideoConduit::SendVideoFrame 2017-10-19 11:59:12.522000 UTC - 7668[1ff54800]: [VideoFrameConverter #1|WebrtcVideoSessionConduit] VideoConduit.cpp:1787: mozilla::WebrtcVideoConduit::SendVideoFrame Inserted a frame 2017-10-19 11:59:12.522000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:937: mozilla::WebrtcAudioConduit::SendRtp Sent RTP Packet 2017-10-19 11:59:12.522000 UTC - 4720[211e4400]: [AudioProxy #1|WebrtcAudioSessionConduit] AudioConduit.cpp:593: mozilla::WebrtcAudioConduit::SendAudioFrame 2017-10-19 11:59:12.522000 UTC - 6784[abe400]: Successfully protected an SRTP packet of len 182 2017-10-19 11:59:12.522000 UTC - 6784[abe400]: 0a409f8a262034a5| Transmit audio[{63765730-3e6f-440c-b25c-cb4b38894737}] sending RTP packet 2017-10-19 11:59:12.522000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:0,rtp(none)]; Layer[ice]: SendPacket(182) succeeded 2017-10-19 11:59:12.525000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[ice]: PacketReceived(0-1508414349442000 (id=83 url=https://189.195.103.1/webrtc/login) aLevel=1,2,1280) 2017-10-19 11:59:12.525000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: PacketReceived(1280) 2017-10-19 11:59:12.525000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: Handshake would have blocked 2017-10-19 11:59:12.525000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: Setting DTLS timeout to 38 2017-10-19 11:59:12.525000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[ice]: PacketReceived(0-1508414349442000 (id=83 url=https://189.195.103.1/webrtc/login) aLevel=1,2,1328) 2017-10-19 11:59:12.525000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: PacketReceived(1328) 2017-10-19 11:59:12.525000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: Checking digest, algorithm=sha-256 2017-10-19 11:59:12.527000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: Handshake would have blocked 2017-10-19 11:59:12.527000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[ice]: PacketReceived(0-1508414349442000 (id=83 url=https://189.195.103.1/webrtc/login) aLevel=1,2,385) 2017-10-19 11:59:12.527000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: PacketReceived(385) 2017-10-19 11:59:12.527000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[ice]: SendPacket(75) succeeded 2017-10-19 11:59:12.527000 UTC - 6784[abe400]: Flow[0a409f8a262034a5:1,rtcp(none)]; Layer[dtls]: ****** SSL handshake completed ****** Expected results: able to properly codec media stream
Component: Untriaged → WebRTC: Audio/Video
Product: Firefox → Core
The error message seems to originate here: http://searchfox.org/mozilla-central/rev/8a6a6bef7c54425970aa4fb039cc6463a19c0b7f/media/webrtc/signaling/src/media-conduit/WebrtcGmpVideoCodec.cpp#236. Could you please provide the local and remote SDP from about:webrtc for when this problem occurs? Can you verify that you have a copy of the gmp plugin (should be in a directory called gmp-gmpopenh264 in your firefox profile)? Thank you!
Rank: 15
Priority: -- → P2
Flags: needinfo?(mmzhw51)
SDP 本地 SDP v=0 o=mozilla...THIS_IS_SDPARTA-52.0 4746121682047991688 0 IN IP4 0.0.0.0 s=- t=0 0 a=sendrecv a=fingerprint:sha-256 E3:89:D1:91:15:8F:7D:03:FE:6F:DC:E4:F1:2D:CB:6A:3B:7F:E2:61:2D:C8:DA:A9:4F:43:A4:51:24:F3:5D:E9 a=group:BUNDLE sdparta_0 sdparta_1 a=ice-options:trickle a=msid-semantic:WMS * m=audio 49746 UDP/TLS/RTP/SAVPF 109 9 0 8 101 c=IN IP4 *.*.100.43 a=candidate:0 1 UDP 2122252543 *.*.100.43 49746 typ host a=candidate:0 2 UDP 2122252542 *.*.100.43 49747 typ host a=sendrecv a=end-of-candidates a=extmap:1/sendonly urn:ietf:params:rtp-hdrext:ssrc-audio-level a=fmtp:109 maxplaybackrate=48000;stereo=1;useinbandfec=1 a=fmtp:101 0-15 a=ice-pwd:bc311a79afdb0d9a1cb7d79b777bf6ef a=ice-ufrag:fb724263 a=mid:sdparta_0 a=msid:{075959fe-7639-4e8b-8800-192d843c8a97} {0f00faac-bdcc-4ff5-aa79-5189696de4f6} a=rtcp:49747 IN IP4 *.*.100.43 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=setup:actpass a=ssrc:446221885 cname:{3c44ba39-f5b7-4928-9c80-3c493df60d06} m=video 49748 UDP/TLS/RTP/SAVPF 120 121 126 97 c=IN IP4 *.*.100.43 a=candidate:0 1 UDP 2122252543 *.*.100.43 49748 typ host a=candidate:0 2 UDP 2122252542 *.*.100.43 49749 typ host a=sendrecv a=end-of-candidates a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1 a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1 a=fmtp:120 max-fs=12288;max-fr=60 a=fmtp:121 max-fs=12288;max-fr=60 a=ice-pwd:bc311a79afdb0d9a1cb7d79b777bf6ef a=ice-ufrag:fb724263 a=mid:sdparta_1 a=msid:{075959fe-7639-4e8b-8800-192d843c8a97} {4c50c552-cf65-47e7-920a-813177a21f9c} a=rtcp:49749 IN IP4 *.*.100.43 a=rtcp-fb:120 nack a=rtcp-fb:120 nack pli a=rtcp-fb:120 ccm fir a=rtcp-fb:120 goog-remb a=rtcp-fb:121 nack a=rtcp-fb:121 nack pli a=rtcp-fb:121 ccm fir a=rtcp-fb:121 goog-remb a=rtcp-fb:126 nack a=rtcp-fb:126 nack pli a=rtcp-fb:126 ccm fir a=rtcp-fb:126 goog-remb a=rtcp-fb:97 nack a=rtcp-fb:97 nack pli a=rtcp-fb:97 ccm fir a=rtcp-fb:97 goog-remb a=rtcp-mux a=rtpmap:120 VP8/90000 a=rtpmap:121 VP9/90000 a=rtpmap:126 H264/90000 a=rtpmap:97 H264/90000 a=setup:actpass a=ssrc:3261356826 cname:{3c44ba39-f5b7-4928-9c80-3c493df60d06} 远程 SDP v=0 o=- 1508760975 1508760976 IN IP4 127.0.0.1 s=- b=AS:1722 t=0 0 a=sendrecv m=audio 41620 UDP/TLS/RTP/SAVPF 109 9 0 8 101 c=IN IP4 *.*.101.60 a=candidate:1 1 udp 2042888703 *.*.101.60 41620 typ host a=candidate:2 1 tcp 855900927 *.*.101.60 41620 typ host tcptype passive a=candidate:3 1 tcp 864289791 *.*.101.60 41620 typ host tcptype active a=sendrecv a=fingerprint:sha-256 4A:C8:00:52:05:58:9C:C1:E6:2B:D4:00:AB:73:3A:6F:CB:86:8F:9A:BB:57:76:82:24:2B:2F:20:1F:D3:E0:5C a=fmtp:109 maxplaybackrate=0;stereo=0;useinbandfec=1 a=fmtp:101 0-15 a=ice-pwd:+1i/i9UNSZ+9AHL26OYM7C a=ice-ufrag:ks2E a=mid:sdparta_0 a=rtcp-mux a=rtpmap:109 opus/48000/2 a=rtpmap:9 G722/8000/1 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=setup:active a=ssrc:1159957710 cname:cf7238e1-7382-4753-9f39-7a3c384db543 a=ssrc:1159957710 msid:Vy5XX1U1DsaRJW4u1g8Bm0ODyOKocmDc 155992cc-a7ad-4be5-a995-8176b6065dab m=video 41624 UDP/TLS/RTP/SAVPF 97 126 120 c=IN IP4 *.*.101.60 b=AS:512 b=TIAS:512000 a=candidate:1 1 udp 2042888703 *.*.101.60 41624 typ host a=candidate:2 1 tcp 855900927 *.*.101.60 41624 typ host tcptype passive a=candidate:3 1 tcp 864289791 *.*.101.60 41624 typ host tcptype active a=sendrecv a=fingerprint:sha-256 4A:C8:00:52:05:58:9C:C1:E6:2B:D4:00:AB:73:3A:6F:CB:86:8F:9A:BB:57:76:82:24:2B:2F:20:1F:D3:E0:5C a=fmtp:97 profile-level-id=42c014;level-asymmetry-allowed=1;max-mbps=108000;max-fs=3600;max-br=1659 a=fmtp:126 profile-level-id=42c014;level-asymmetry-allowed=1;packetization-mode=1;max-mbps=108000;max-fs=3600;max-br=1659 a=fmtp:120 max-fs=3600;max-fr=30 a=ice-pwd:Ozg0Up0bOA2eTddvzERiQW a=ice-ufrag:vbCH a=label:11 a=mid:sdparta_1 a=rtcp-fb:* nack pli a=rtcp-fb:* nack a=rtcp-fb:* goog-remb a=rtcp-mux a=rtpmap:97 H264/90000 a=rtpmap:126 H264/90000 a=rtpmap:120 VP8/90000 a=setup:active a=ssrc:2721620779 cname:cf7238e1-7382-4753-9f39-7a3c384db543 a=ssrc:2721620779 msid:Vy5XX1U1DsaRJW4u1g8Bm0ODyOKocmDc c8e3370a-d103-4fb7-8380-3ab48ba33ab0 a=ssrc:475406091 cname:cf7238e1-7382-4753-9f39-7a3c384db543 a=ssrc:475406091 msid:Vy5XX1U1DsaRJW4u1g8Bm0ODyOKocmDc c8e3370a-d103-4fb7-8380-3ab48ba33ab0 yes ,the plugin files called gmp-gmpopenh264 and the issuse come in small probability about Hundreds of times only once
Flags: needinfo?(mmzhw51)
Severity: normal → S3
Priority: P2 → P3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: