Add a Chrome-Firefox interoperability browser_tests for H264 |
|||||||||||||
Issue descriptionWe should automatically test so that H264 works between Chrome and Firefox, for example with webrtc_apprtc_browsertest.cc running a local apprtc.appspot.com server. Here's a WIP CL: https://codereview.chromium.org/2013803002/. It attempts to add VP8, VP9 and H264 tests. When testing between Chrome and Firefox manually both VP8 and H264 works, but not VP9 (Firefox does not support VP9? Remove the VP9 test from the CL?). For some reason, the H264 browser_tests does not work either. The test passes, but printfs reveal that H264 is not used. The test need to automatically confirm that the right codec is used and we need to figure out why H264 isn't used.
,
Jun 22 2016
,
Jul 6 2016
Moving this nonessential bug to the next milestone. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Aug 31 2016
sprang@ are you the right owner and if so, will it make it to M54?
,
Aug 31 2016
+sakal, weren't you looking into some chrome/firefox interop test recently? Can you extend that to h264?
,
Sep 6 2016
New WIP CL: https://codereview.chromium.org/2309823005/ H264 still doesn' work but at least it fails now. It seems chromium correctly says it prefers H264 but Firefox responds that only VP8 is supported. {"sdp":"v=0 o=- 137827748433027653 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS 7mcWQ8ksxgd8ovpWJNbVFOfLKJaw3LpClpio m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 126 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:Cuhj a=ice-pwd:KGqurN7P3Lg3lnPz8ArM3d1R a=fingerprint:sha-256 AA:F3:39:67:9E:BA:74:BA:7E:B3:76:E0:64:98:4C:C7:4D:BC:42:F6:90:DC:05:86:A8:4D:86:E3:F8:28:33:67 a=setup:actpass a=mid:audio a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=sendrecv 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:126 telephone-event/8000 a=ssrc:3715310634 cname:Paw7ywg+WfOMqQOB a=ssrc:3715310634 msid:7mcWQ8ksxgd8ovpWJNbVFOfLKJaw3LpClpio 53f28c08-45e9-428b-bba8-d04b09ba2b3d a=ssrc:3715310634 mslabel:7mcWQ8ksxgd8ovpWJNbVFOfLKJaw3LpClpio a=ssrc:3715310634 label:53f28c08-45e9-428b-bba8-d04b09ba2b3d m=video 9 UDP/TLS/RTP/SAVPF 107 100 101 116 117 96 97 99 98 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:Cuhj a=ice-pwd:KGqurN7P3Lg3lnPz8ArM3d1R a=fingerprint:sha-256 AA:F3:39:67:9E:BA:74:BA:7E:B3:76:E0:64:98:4C:C7:4D:BC:42:F6:90:DC:05:86:A8:4D:86:E3:F8:28:33:67 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:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay a=sendrecv a=rtcp-mux a=rtcp-rsize a=rtpmap:100 VP8/90000 a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=rtcp-fb:100 goog-remb a=rtcp-fb:100 transport-cc a=rtpmap:101 VP9/90000 a=rtcp-fb:101 ccm fir a=rtcp-fb:101 nack a=rtcp-fb:101 nack pli a=rtcp-fb:101 goog-remb a=rtcp-fb:101 transport-cc a=rtpmap:107 H264/90000 a=rtcp-fb:107 ccm fir a=rtcp-fb:107 nack a=rtcp-fb:107 nack pli a=rtcp-fb:107 goog-remb a=rtcp-fb:107 transport-cc a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f a=rtpmap:116 red/90000 a=rtpmap:117 ulpfec/90000 a=rtpmap:96 rtx/90000 a=fmtp:96 apt=100 a=rtpmap:97 rtx/90000 a=fmtp:97 apt=101 a=rtpmap:99 rtx/90000 a=fmtp:99 apt=107 a=rtpmap:98 rtx/90000 a=fmtp:98 apt=116 a=ssrc-group:FID 1655163434 4149924261 a=ssrc:1655163434 cname:Paw7ywg+WfOMqQOB a=ssrc:1655163434 msid:7mcWQ8ksxgd8ovpWJNbVFOfLKJaw3LpClpio 83b2d755-0248-4253-a610-f0616a93d865 a=ssrc:1655163434 mslabel:7mcWQ8ksxgd8ovpWJNbVFOfLKJaw3LpClpio a=ssrc:1655163434 label:83b2d755-0248-4253-a610-f0616a93d865 a=ssrc:4149924261 cname:Paw7ywg+WfOMqQOB a=ssrc:4149924261 msid:7mcWQ8ksxgd8ovpWJNbVFOfLKJaw3LpClpio 83b2d755-0248-4253-a610-f0616a93d865 a=ssrc:4149924261 mslabel:7mcWQ8ksxgd8ovpWJNbVFOfLKJaw3LpClpio a=ssrc:4149924261 label:83b2d755-0248-4253-a610-f0616a93d865 ","type":"offer"} {"msg":"{\"sdp\":\"v=0 o=mozilla...THIS_IS_SDPARTA-51.0a1 1531116921016591401 0 IN IP4 0.0.0.0 s=- t=0 0 a=fingerprint:sha-256 36:89:44:6C:F2:FA:EA:8B:94:BD:0E:AD:5E:F7:B6:76:66:31:DA:7F:9E:47:EF:69:1A:25:11:D4:55:CA:CA:8F a=group:BUNDLE audio video a=ice-options:trickle a=msid-semantic:WMS * m=audio 9 UDP/TLS/RTP/SAVPF 111 c=IN IP4 0.0.0.0 a=sendrecv a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=fmtp:111 maxplaybackrate=48000;stereo=1;useinbandfec=1 a=ice-pwd:448d483b6d0adab5e988e59c2753c639 a=ice-ufrag:cfdd65e9 a=mid:audio a=msid:{8f01d591-788f-448a-8d85-e82a08795b4c} {cddeb675-4776-4bf7-a5c7-130a21b57a70} a=rtcp-mux a=rtpmap:111 opus/48000/2 a=setup:active a=ssrc:1328970335 cname:{67cf4437-a20f-4788-aeab-b500530eb523} m=video 9 UDP/TLS/RTP/SAVPF 100 c=IN IP4 0.0.0.0 a=sendrecv a=fmtp:100 max-fs=12288;max-fr=60 a=ice-pwd:448d483b6d0adab5e988e59c2753c639 a=ice-ufrag:cfdd65e9 a=mid:video a=msid:{8f01d591-788f-448a-8d85-e82a08795b4c} {e8d15aaa-1083-4771-81af-d69b6919b5ad} a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=rtcp-fb:100 ccm fir a=rtcp-fb:100 goog-remb a=rtcp-mux a=rtpmap:100 VP8/90000 a=setup:active a=ssrc:1836494300 cname:{67cf4437-a20f-4788-aeab-b500530eb523} \",\"type\":\"answer\"}
,
Sep 6 2016
Note, if I manually open new tabs to the browsers, Firefox now responds correctly.
[84832:84832:0906/102915:INFO:CONSOLE(38)] "0.703: C->GAE: {"sdp":"v=0
o=- 5325965881165623601 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS dGWgeeNXvEdKF20EKzKpQa549MgFta70YVho
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:k/sw
a=ice-pwd:YcaxtNNIk4P9Wbh78TYojfBA
a=fingerprint:sha-256 91:70:12:8D:23:7A:09:07:D5:95:FB:DA:69:0B:92:76:DD:8E:F1:F6:4F:A0:A8:EB:B9:B8:29:DE:95:D4:9F:04
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=sendrecv
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:126 telephone-event/8000
a=ssrc:351298042 cname:z0Ct7OO3UEmLs0r4
a=ssrc:351298042 msid:dGWgeeNXvEdKF20EKzKpQa549MgFta70YVho 5ffdfd0b-1712-452d-83c9-8d102fca1626
a=ssrc:351298042 mslabel:dGWgeeNXvEdKF20EKzKpQa549MgFta70YVho
a=ssrc:351298042 label:5ffdfd0b-1712-452d-83c9-8d102fca1626
m=video 9 UDP/TLS/RTP/SAVPF 107 100 101 116 117 96 97 99 98
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:k/sw
a=ice-pwd:YcaxtNNIk4P9Wbh78TYojfBA
a=fingerprint:sha-256 91:70:12:8D:23:7A:09:07:D5:95:FB:DA:69:0B:92:76:DD:8E:F1:F6:4F:A0:A8:EB:B9:B8:29:DE:95:D4:9F:04
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:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=rtpmap:101 VP9/90000
a=rtcp-fb:101 ccm fir
a=rtcp-fb:101 nack
a=rtcp-fb:101 nack pli
a=rtcp-fb:101 goog-remb
a=rtcp-fb:101 transport-cc
a=rtpmap:107 H264/90000
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=rtcp-fb:107 goog-remb
a=rtcp-fb:107 transport-cc
a=fmtp:107 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:116 red/90000
a=rtpmap:117 ulpfec/90000
a=rtpmap:96 rtx/90000
a=fmtp:96 apt=100
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=101
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=107
a=rtpmap:98 rtx/90000
a=fmtp:98 apt=116
a=ssrc-group:FID 1136748752 1277594391
a=ssrc:1136748752 cname:z0Ct7OO3UEmLs0r4
a=ssrc:1136748752 msid:dGWgeeNXvEdKF20EKzKpQa549MgFta70YVho 6fdb7eb1-6a61-4582-8773-0ea435071234
a=ssrc:1136748752 mslabel:dGWgeeNXvEdKF20EKzKpQa549MgFta70YVho
a=ssrc:1136748752 label:6fdb7eb1-6a61-4582-8773-0ea435071234
a=ssrc:1277594391 cname:z0Ct7OO3UEmLs0r4
a=ssrc:1277594391 msid:dGWgeeNXvEdKF20EKzKpQa549MgFta70YVho 6fdb7eb1-6a61-4582-8773-0ea435071234
a=ssrc:1277594391 mslabel:dGWgeeNXvEdKF20EKzKpQa549MgFta70YVho
a=ssrc:1277594391 label:6fdb7eb1-6a61-4582-8773-0ea435071234
","type":"offer"}", source: http://localhost:9999/js/apprtc.debug.js (38)
[84832:84832:0906/102941:INFO:CONSOLE(38)] "26.790: WSS->C: {"msg":"{\"sdp\":\"v=0
o=mozilla...THIS_IS_SDPARTA-51.0a1 3471430426854408130 0 IN IP4 0.0.0.0
s=-
t=0 0
a=fingerprint:sha-256 1C:E1:C8:7E:33:2D:6E:52:8D:AC:5C:FF:21:25:1F:11:C6:73:DA:6C:7F:AD:B1:E6:6D:96:61:C2:86:7E:9D:31
a=group:BUNDLE audio video
a=ice-options:trickle
a=msid-semantic:WMS *
m=audio 9 UDP/TLS/RTP/SAVPF 111
c=IN IP4 0.0.0.0
a=sendrecv
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=fmtp:111 maxplaybackrate=48000;stereo=1;useinbandfec=1
a=ice-pwd:b36a063a7034f7dc7a3f7fa6c1168e02
a=ice-ufrag:c949b39d
a=mid:audio
a=msid:{f1180ac0-aee0-407c-8c96-1c89a2ce9085} {a4e061aa-abdc-49cc-8d91-38424eff93aa}
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=setup:active
a=ssrc:1055006695 cname:{2b384738-7cab-4636-a4fb-3c52b15ec54e}
m=video 9 UDP/TLS/RTP/SAVPF 107
c=IN IP4 0.0.0.0
a=sendrecv
a=fmtp:107 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1
a=ice-pwd:b36a063a7034f7dc7a3f7fa6c1168e02
a=ice-ufrag:c949b39d
a=mid:video
a=msid:{f1180ac0-aee0-407c-8c96-1c89a2ce9085} {6493f2e2-e6fe-4acd-9e25-fce33f38e5c3}
a=rtcp-fb:107 nack
a=rtcp-fb:107 nack pli
a=rtcp-fb:107 ccm fir
a=rtcp-fb:107 goog-remb
a=rtcp-mux
a=rtpmap:107 H264/90000
a=setup:active
a=ssrc:3975166086 cname:{2b384738-7cab-4636-a4fb-3c52b15ec54e}
\",\"type\":\"answer\"}","error":""}", source: http://localhost:9999/js/apprtc.debug.js (38)
,
Sep 6 2016
Firefox behaves differently in this regard when our test launches the browser or when we do it manually?
,
Sep 6 2016
I opened a tab with the same url in the Firefox window that the test had opened. The new tab correctly used H264. In the tab opened by the test it was incorrectly using VP8.
,
Sep 6 2016
Strange, sounds like the test is overriding default settings when it is opening tabs.
,
Sep 6 2016
Re #8: Yeah, I think I found that when the test launches firefox we can't get h264 to work. I investigated getting rid of the launcher script but I failed (can't bypass gUM in that case). Right hbos? Re #9: sakal, are you working on the WebRtcApprtcBrowserTest right?
,
Sep 6 2016
Re #9: You mean you ran the test, opened a new tab in the ff window, and the new tab connected to the room and correctly used h264?
,
Sep 9 2016
Ping sakal@.
,
Sep 9 2016
Re #9: You mean you ran the test, opened a new tab in the ff window, and the new tab connected to the room and correctly used h264? Yes. I created a new room with same parameters on both chrome and ff.
,
Sep 9 2016
Really. That sounds like a firefox bug. Ok, maybe if you try modifying webrtc.DEPS (which is next to your chromium src/ dir) and change webrtc.DEPS/run_firefox_webrtc.py so it loads an empty page first, or opens a second tab using mozrunner (I suppose that might be possible). That could be a workaround at least.
,
Sep 9 2016
I feel like this is a Firefox bug as well. As an experiment, I tried editing the run_firefox_webrtc.py to open google.com and open the page manually. It seems Firefox can only negotiate H264 after one connection has been opened and closed. Very strange.
,
Sep 29 2016
Ok, let's try to keep this going. Does FF fail if in the same way if you open manually, e.g. without using the script? I think this might be a bug that only manifests if we use the script. Please verify that; If it happens also without the script we must file a bug on FF. Otherwise we need to tinker with the script and see if we can make it go away (or maybe file another, lower-prio on FF).
,
Oct 18 2016
It didn't make it into M55 so moving to M56.
,
Nov 15 2016
Bumping to M57. Please update if that's wrong.
,
Jan 16 2017
,
Jan 18 2017
,
Feb 28 2017
I don't really have any more ideas how to solve this. It seems that we correctly prioritize H264 in SDP but Firefox ignores this. However, when I test this manually, there is no problem. If someone wants to take a look, you can start with my CL: https://codereview.chromium.org/2309823005/
,
May 21 2017
most likely you're running into the issue that Firefox has no built-in H264 but needs to download it. In https://github.com/fippo/testbed i'm using a firefox profile which has the plugin downloaded in advance.
,
May 21 2017
similar story for VP9 which was preffed off in Firefox when this issue as created. Its now on by default.
,
May 22 2017
Thank you for valuable info. I will look into this once I have time.
,
May 22 2017
This is almost certainly what fippo said in comment 24: Firefox delays downloading OpenH264 in a new profile (or checking for an update in an old profile) for ~ 1 minute after startup to avoid (over)loading someone's connection or slowing down their browser at a time when they likely are using it for the first time, or have just opened it and are either loading their first page, or are waiting for it to reload their active tabs. It is possible to force-preload OpenH264 into a profile for testing purposes, however if you're building a new profile every time it's more involved.
,
Jan 22 2018
,
Feb 12 2018
I'm about to delete the interop test, so this will not happen... :) |
|||||||||||||
►
Sign in to add a comment |
|||||||||||||
Comment 1 by pbos@chromium.org
, Jun 22 2016