Edge supports VP8/VP9 on newest creator's update


#1

Hi guys,
I’m trying to figure out how to make Licode support Edge browser.
It seems that on the newest creator’s update (which was rolled out since April 11) Edge now natively supports VP8 and VP9 and the webrtc 1.0 standard.
Said that, I was able to test it including adapter js, (as suggested in that PR#743 and bowserStack.

It actually worked partially:
The publisher publish to Licode max of. 300kbit/s, ignore the REMBS from Licode server and when an user subscribe to that stream, his feedbacks can’t be routed by Licode to the publisher causing tons of:

DEBUG [0x7f9f077fe700] WebRtcConnection - id: 955155535629264100, unknownSSRC: 0, localVideoSSRC: 3212481450, localAudioSSRC: 3212481350

So, i decided to try to first make edge speak p2p to edge.
I made an AdapterP2PStack.js that can be found here: AdapterP2PStack.js

and modified Connection.js

/global L, window, chrome, navigator/
‘use strict’;
var Erizo = Erizo || {};

Erizo.sessionId = 103;

Erizo.Connection = function (spec) {
var that = {};

spec.sessionId = (Erizo.sessionId += 1);
// Check which WebRTC Stack is installed.
that.browser = Erizo.getBrowser();
if (that.browser === 'fake') {
    L.Logger.warning('Publish/subscribe video/audio streams not supported in erizofc yet');
    that = Erizo.FcStack(spec);
} else if (that.browser === 'mozilla') {
    L.Logger.debug('Firefox Stack');
    that = Erizo.FirefoxStack(spec);
} else if (that.browser === 'chrome-stable') {
    L.Logger.debug('Chrome Stable Stack');
    that = Erizo.ChromeStableStack(spec);
} else {
    L.Logger.debug('Trying to use AdapterJS stack');
    that = Erizo.AdapterP2PStack(spec);
}
if (!that.updateSpec){
    that.updateSpec = function(newSpec, callback){
        L.Logger.error('Update Configuration not implemented in this browser');
        if (callback)
            callback ('unimplemented');
    };
}
return that;

};

With this I was able to make a p2p edge to edge, BUT ONLY IN THE SAME PC on 2 separate tabs.
Seems that neither with the help of the turn, I can make this works. Neither in the same local network.
Only get an spinning icon and black screen (same edge version on both machines).

I then tried to analyze the traffic they exchange with WireShark to comprehend how the RTCP feedbacks are made and this is the dump:
RTCP Dump

And this is the proof that he can go up to 7mbit/s edge2edge

Also, this is the SDP filtered by my function to only get VP8 and opus.

v=0
o=thisisadapterortc 8169639915646943137 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE jl7hc4bauv 1010b6l3po
a=ice-options:trickle
m=audio 9 UDP/TLS/RTP/SAVPF 104 102 9 0 8 103 97 13 118 101
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=rtpmap:102 opus/48000/2
a=rtcp-fb:102 x-message app send:dsh recv:dsh
a=maxptime:100
a=rtcp-mux
a=extmap:1 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2
a=ice-ufrag:InM1
a=ice-pwd:DjsqPkj833kMQBpEN6qA7WHN
a=setup:actpass
a=fingerprint:sha-256 16:75:4B:29:7C:A1:3E:B4:0F:5D:38:47:69:4E:80:4A:D8:3C:85:12:FE:14:9D:FC:FB:18:2B:EA:52:7C:62:B8
a=mid:jl7hc4bauv
a=sendonly
a=msid:AF9FEEEF-1827-4103-93A7-27FBF546BAD4 BF9735F6-59D4-47B9-99DC-8899007C0D8B
a=ssrc:1001 msid:AF9FEEEF-1827-4103-93A7-27FBF546BAD4 BF9735F6-59D4-47B9-99DC-8899007C0D8B
a=ssrc:1001 cname:cl3sh76gcg
a=rtcp-rsize
m=video 9 UDP/TLS/RTP/SAVPF 122 107 100 99 96 123
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-mux
a=extmap:1 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2
a=ice-ufrag:InM1
a=ice-pwd:DjsqPkj833kMQBpEN6qA7WHN
a=setup:actpass
a=fingerprint:sha-256 16:75:4B:29:7C:A1:3E:B4:0F:5D:38:47:69:4E:80:4A:D8:3C:85:12:FE:14:9D:FC:FB:18:2B:EA:52:7C:62:B8
a=mid:1010b6l3po
a=sendonly
a=msid:AF9FEEEF-1827-4103-93A7-27FBF546BAD4 DC85CE85-6BDC-4B05-B9EC-4703E6519B03
a=ssrc:3003 msid:AF9FEEEF-1827-4103-93A7-27FBF546BAD4 DC85CE85-6BDC-4B05-B9EC-4703E6519B03
a=ssrc:3004 msid:AF9FEEEF-1827-4103-93A7-27FBF546BAD4 DC85CE85-6BDC-4B05-B9EC-4703E6519B03
a=ssrc-group:FID 3003 3004
a=ssrc:3003 cname:cl3sh76gcg
a=ssrc:3004 cname:cl3sh76gcg
a=rtcp-rsize

Any help to analyze the RTCP packets would be really appreciated.

Last useful things:
You can get an free VM of Win10 Preview 15 (latest version which supports webrtc) from:
Microsoft Dev Site