android webrtc stream black screen

SLM

Member
Repeatedly we get reports that streams to an android phone are not working (not displaying). No discernible error can be found or is reported.

I've sent the logfiles to logs@flashphoner for one of those sessions, which in this case started Nov 3rd at 12:59:11 hours local Amsterdam time.

Also included are the javascript console files with local debug info for the session. The console log from the Android phone is _client_console_log.txt and the other one is the publisher's.

As you can see, a recent OS (Android 7.0 Lollipop) and Chrome browser is used (Chrome 61.0.3163.98) on the caller's side. The stream is said to be playing locally (video element event) but the caller doesn't see the stream.

Apparently the caller first refreshed his browser before the publisher could request a console log from the caller so this client log displays his second attempt at viewing the stream.

Could you look into this and advise?

WebSDK version is 0.5.25.2455-551fef66b35d83e4ac066e73c2483f3fe7e16d06

Server version is FlashphonerWebCallServer-5.0.2519

Here is some additional info as to what exactly happens / has been triggered in the client console log:
[13:00:50.331] 13:00:50 DEBUG core - Play stream 6c7c625a06fe36b01772dd173b6eda18
[13:00:50.375] 13:00:50 DEBUG core - Offer SDP:
v=0
o=- 7323880681113809946 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 9 0 8 105 13 110 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:rEqP
a=ice-pwd:MgxL8fNI1L0l/DfSd34TMAf6
a=ice-options:trickle
a=fingerprint:sha-256 0C:48:0A:B3:61:55:04:EC:76:5B:10:B8:44:4D:45:05:DB:62:C0:DE:97:8D:B8:FB:D8:26:87:A0:78:EA:22:3E
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=recvonly
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:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 104
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:rEqP
a=ice-pwd:MgxL8fNI1L0l/DfSd34TMAf6
a=ice-options:trickle
a=fingerprint:sha-256 0C:48:0A:B3:61:55:04:EC:76:5B:10:B8:44:4D:45:05:DB:62:C0:DE:97:8D:B8:FB:D8:26:87:A0:78:EA:22:3E
a=setup:actpass
a=mid:video
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=recvonly
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtpmap:100 red/90000
a=rtpmap:102 ulpfec/90000
a=rtpmap:127 H264/90000
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=fmtp:127 packetization-mode=1
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:104 rtx/90000
a=fmtp:104 apt=127

[13:00:50.451] 13:00:50 DEBUG webrtc - setRemoteSDP:
[13:00:50.453] 13:00:50 DEBUG webrtc - v=0
o=Flashphoner 0 1509624051137 IN IP4 XX.XX.XXX.XXX
s=Flashphoner/1.0
c=IN IP4 XX.XX.XXX.XXX
t=0 0
m=audio 31606 RTP/SAVPF 111 9 8
c=IN IP4 XX.XX.XXX.XXX
a=rtpmap:111 opus/48000/2
a=rtpmap:9 G722/8000
a=rtpmap:8 PCMA/8000
a=ptime:20
a=ice-pwd:ssie1r28mpfrr381d1vrui41f
a=ice-ufrag:78256a70-bfc5-11e7-8427-d96ffd3c1a7f4f96p1btu9ltds
a=fingerprint:SHA-256 8B:7C:47:35:00:35:B0:12:98:D2:46:73:52:A8:6C:39:03:8C:E6:46:52:E0:7C:02:86:F2:2A:70:FC:42:B4:C2
a=candidate:1 1 udp 2130706431 XX.XX.XXX.XXX 31606 typ host
a=candidate:1 2 udp 2130706431 XX.XX.XXX.XXX 31606 typ host
a=rtcp-mux
a=rtcp:31606 IN IP4 XX.XX.XXX.XXX
a=sendonly
a=ssrc:2094839125 cname:rtp/audio/78256a70-bfc5-11e7-8427-d96ffd3c1a7f
m=video 31608 RTP/SAVPF 127 96
c=IN IP4 XX.XX.XXX.XXX
a=rtpmap:127 H264/90000
a=fmtp:127 packetization-mode=1
a=rtpmap:96 VP8/90000
a=rtcp-fb:* ccm fir
a=rtcp-fb:* nack
a=rtcp-fb:* nack pli
a=rtcp-fb:* goog-remb
a=ice-pwd:ssie1r28mpfrr381d1vrui41f
a=ice-ufrag:78256a70-bfc5-11e7-8427-d96ffd3c1a7f4f96p1btu9ltds
a=fingerprint:SHA-256 8B:7C:47:35:00:35:B0:12:98:D2:46:73:52:A8:6C:39:03:8C:E6:46:52:E0:7C:02:86:F2:2A:70:FC:42:B4:C2
a=candidate:1 1 udp 2130706431 XX.XX.XXX.XXX 31608 typ host
a=candidate:1 2 udp 2130706431 XX.XX.XXX.XXX 31608 typ host
a=rtcp-mux
a=rtcp:31608 IN IP4 XX.XX.XXX.XXX
a=sendonly
a=ssrc:1658162883 cname:rtp/video/78256a70-bfc5-11e7-8427-d96ffd3c1a7f

[13:00:50.841] stream status RESIZE NW
=> on(STREAM_STATUS.RESIZE, function(stream)

[13:00:50.842] Stream resolution: undefined / undefined
=> stream.videoResolution() width and height

[13:00:50.889] strmid:78256a70-bfc5-11e7-8427-d96ffd3c1a7f
=> session.createStream(options).on(STREAM_STATUS.PLAYING, function(stream)
=> stream.id()

[13:00:50.890] playing str: bandwidth 0 bitrate 0
=> apparently stream.getNetworkBandwidth() only works when STREAM_STATUS.NOT_ENOUGH_BANDWIDTH

[13:00:50.894] STATUS:pLAYING
[13:00:50.894] playing stream

[13:00:51.416] stream status resize 78256a70-bfc5-11e7-8427-d96ffd3c1a7f
=> document.getElementById(stream.id()).addEventListener('resize', vidResize);
=> e.target.id

[13:00:51.416] stream status resize dims 640/480
=> e.target.videoWidth and e.target.videoHeight

[13:00:51.419] stream status resize cont 747/560
=> e.target.clientWidth and e.target.clientHeight

[13:00:51.423] stream status resize 78256a70-bfc5-11e7-8427-d96ffd3c1a7f
[13:00:51.423] stream status resize dims 640/480
[13:00:51.424] stream status resize cont 747/560
=> apparently event triggers twice

[13:00:51.430] Video is playing locally
=> document.getElementById(stream.id()).addEventListener('playing', vidIsPlaying);

[13:00:51.437] vidplayid 78256a70-bfc5-11e7-8427-d96ffd3c1a7f
=> e.target.id

[13:00:51.437] vidplayid dims 640/480
=> e.target.videoWidth and e.target.videoHeight

[13:00:51.438] vidplayid cont 747/560
=> e.target.clientWidth and e.target.clientHeight

[13:00:57.680] Send debug
=> send this console to publisher
 

Max

Administrator
Staff member
Hello
This is known Chrome 61 issue reproduced with Android 6 and 7.
Try to add such code line to your css file and make sure it is applied to the video element. It should fix the issue.
Code:
video {border-radius: 1px;}
 

SLM

Member
Could be a coincidence but after applying this fix, we get reports of video stuttering on Chrome 61. At least the video showed but stuttering without a bandwidth problem is also not very good.
 

Max

Administrator
Staff member
On our tests it worked well without any stuttering.
Could you please test with our latest demo server at https://wcs5-eu.flashphoner.com 2542

For your installation, we need to play your stream and see server-side logs to reproduce the issue.
Please:
1. Provide ssh access to server to monitor logs and settings.
2. Dashboard access at https://host:8888
Then we will be able to play a stream on your server, check logs and reproduce the issue on Android 7 + Chrome 61.
You can send details to logs@flashphoner.com
 

Max

Administrator
Staff member
For ssh, please add our wcs5-eu server IP 46.101.108.90 to the white-list
 
Top