Video does not play in Microsoft Edge 38

We’re running CE 11.2.0 with kWidget 2.37.1.

The same video plays on Chrome version 53 but not Microsoft Edge version 38. I get the Kaltura spinning wheel but video never plays. Here’s the manifest URL:

https://videohost/p/101/sp/10100/playManifest/entryId/0_kg6gl1ns/flavorIds/0_drso2ls6/format/applehttp/protocol/https/a.m3u8?referrer=aHR0cHM6Ly9vbWVvLmF1c3RyYWMuZ292LmF1&playSessionId=601b5d7f-22ab-1236-6efe-865cea425f7f&clientTag=html5:v2.37.1&preferredBitrate=464&uiConfId=23448188"

I’ve tried the DB fix as per Kaltura IOS play fine under 10 seg with no luck.

Any suggestions welcome as Edge is to be the default browser in our organisation.

Cheers, Michael.

Hi Michael,

I cannot reach the sample URL you provided, I guess you masked the host intentionally… without reaching it, there’s not much I can do.
At any rate, player version v2.37, shipped with 11.2.0 is quite old [current stable is v2.51 shipped with 12.8.0].
As usual with MS, it is hard to determine when Microsoft Edge version 38 was released but I bet it was AFTER the release of 2.37.

I suggest you upgrade to latest [v2.51]. If you still have issues post the upgrade, we’ll need a sample URL to look at.
Note that in general, it is recommended you upgrade all packages and not only the player [kaltura-html5lib] but it is possible to upgrade the player only. If that route is chosen, however, you’ll need to perform some manual changes to the server config, you can find those here:

Thanks for the speedy response Jess. I’ll upgrade the packages and let you know.

Hi Jess,

We’re using a self-hosted instance of Kaltura behind a firewall so unfortunately I don’t have a public URL.

After upgrade to Community Edition 12.9.0, player no longer works in Chrome, client is trying to access server on port 88. We configured nginx with ssl on port 8443 however client still attempting to connect to server on port 88

From browser console (Chrome):
It fails cause port 88 on nginx is configured for http

GET https://mytestserver.mydomain:88/hls/p/100/sp/10000/serveFlavor/entryId/0_om60kqjq/v/2/flavorId/0_klwtd4p9/name/a.mp4/index.m3u8 net::ERR_SSL_PROTOCOL_ERRORvalue @ load.php?debug=false&lang=en&modules=Hlsjs%2CacCheck%2CacPreview%2Cbase64_decode%2Cbase64_encode%2C…:1
auto:1 Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().

TDP dump capture fraction

16:19:36.821720 IP 192.168.XXX.XXX.443 > 192.168.NNN.NNN.54968: Flags [.], ack 1737, win 141, length 0
16:19:36.833163 IP 192.168.NNN.NNN.54969 > 192.168.XXX.XXX.88: Flags [S], seq 3955500888, win 8192, options [mss 1376,nop,wscale 8,nop,nop,sackOK], length 0
16:19:36.833231 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54969: Flags [S.], seq 970236052, ack 3955500889, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
16:19:36.834031 IP 192.168.NNN.NNN.54969 > 192.168.XXX.XXX.88: Flags [.], ack 1, win 258, length 0
16:19:36.839397 IP 192.168.NNN.NNN.54969 > 192.168.XXX.XXX.88: Flags [P.], seq 1:204, ack 1, win 258, length 203
16:19:36.839452 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54969: Flags [.], ack 204, win 123, length 0
16:19:36.839713 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54969: Flags [P.], seq 1:326, ack 204, win 123, length 325
16:19:36.839773 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54969: Flags [F.], seq 326, ack 204, win 123, length 0
16:19:36.842148 IP 192.168.NNN.NNN.54969 > 192.168.XXX.XXX.88: Flags [.], ack 327, win 256, length 0
16:19:36.842298 IP 192.168.NNN.NNN.54969 > 192.168.XXX.XXX.88: Flags [P.], seq 204:211, ack 327, win 256, length 7
16:19:36.842327 IP 192.168.NNN.NNN.54969 > 192.168.XXX.XXX.88: Flags [F.], seq 211, ack 327, win 256, length 0
16:19:36.842339 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54969: Flags [.], ack 212, win 123, length 0
16:19:37.966719 IP 192.168.NNN.NNN.54970 > 192.168.XXX.XXX.88: Flags [S], seq 1207419756, win 8192, options [mss 1376,nop,wscale 8,nop,nop,sackOK], length 0
16:19:37.966822 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54970: Flags [S.], seq 566435542, ack 1207419757, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
16:19:37.967907 IP 192.168.NNN.NNN.54970 > 192.168.XXX.XXX.88: Flags [.], ack 1, win 258, length 0
16:19:37.968167 IP 192.168.NNN.NNN.54970 > 192.168.XXX.XXX.88: Flags [P.], seq 1:204, ack 1, win 258, length 203
16:19:37.968208 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54970: Flags [.], ack 204, win 123, length 0
16:19:37.968331 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54970: Flags [P.], seq 1:326, ack 204, win 123, length 325
16:19:37.968387 IP 192.168.XXX.XXX.88 > 192.168.NNN.NNN.54970: Flags [F.], seq 326, ack 204, win 123, length 0
16:19:37.969044 IP 192.168.NNN.NNN.54970 > 192.168.XXX.XXX.88: Flags [.], ack 327, win 256, length 0
16:19:37.969237 IP 192.168.NNN.NNN.54970 > 192.168.XXX.XXX.88: Flags [P.], seq 204:211, ack 327, win 256, length 7
16:19:37.969350 IP 192.168.NNN.NNN.54970 > 192.168.XXX.XXX.88: Flags [F.], seq 211, ack 327, win 256, length 0

where:
client ip - 192.168.NNN.NNN
servier ip - 192.168.XXX.XXX

Hi @michaelc123,

See my explanation on how to change the kaltura.delivery_profile DB records here:

In your case, just need to change the ‘url’ column so it uses port 8443 instead of 80.

Hi Jess,

Still no luck …in kaltlog we get:

2017/02/13 15:21:15 [error] 4885#4885: *1 SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream, client: 192.168.XXX.XXX, server: myserver.mydomain, request: “GET /hls/p/100/sp/10000/serveFlavor/entryId/0_om60kqjq/v/2/flavorId/0_klwtd4p9/name/a.mp4/index.m3u8 HTTP/1.1”, subrequest: “/kalapi_proxy/hls/p/100/sp/10000/serveFlavor/entryId/0_om60kqjq/v/2/flavorId/0_klwtd4p9/name/a.mp4”, upstream: “https://192.168.NNN.NNN:80/hls/p/100/sp/10000/serveFlavor/entryId/0_om60kqjq/v/2/flavorId/0_klwtd4p9/name/a.mp4?pathOnly=1”, host: “myserver.mydomain:8443”, referrer: "https://myserver.mydomain/index.php/extwidget/preview/partner_id/100/uiconf_id/23448189/entry_id/0_om60kqjq/embed/auto?&flashvars[streamerType]=auto"
2017/02/13 15:21:15 [error] 4885#4885: *1 open() “/etc/nginx/html/50x.html” failed (2: No such file or directory), client: 192.168.XXX.XXX, server: myserver.mydomain, request: “GET /hls/p/100/sp/10000/serveFlavor/entryId/0_om60kqjq/v/2/flavorId/0_klwtd4p9/name/a.mp4/index.m3u8 HTTP/1.1”, host: “myserver.mydomain:8443”, referrer: “https://myserver.mydomain/index.php/extwidget/preview/partner_id/100/uiconf_id/23448189/entry_id/0_om60kqjq/embed/auto?&flashvars[streamerType]=auto

Error in browser console:

XMLHttpRequest cannot load https://myserver.mydomain:8443/hls/p/100/sp/10000/serveFlavor/entryId/0_om60kqjq/v/2/flavorId/0_klwtd4p9/name/a.mp4/index.m3u8. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘https://myserver.mydomain’ is therefore not allowed access. The response had HTTP status code 404.

We have updated the URL in mysql,

±-------------------------------------
| url
±-------------------------------------
| http://myserver.mydomain |
| http://myserver.mydomain |
| NULL
| NULL
| NULL
| NULL
| NULL
| NULL
| NULL
| https://myserver.mydomain:8443/hls |
| https://myserver.mydomain:8443/hds |
| https://myserver.mydomain:8443/dash |

Fixed /etc/nginx/conf.d/kaltura.conf

proxy_pass https://kalapi/;

Added to /opt/kaltura/app/configurations/apache/kaltura.conf:

Header set Access-Control-Allow-Origin “*”

Hi @michaelc123,

The issue is with your certificate:

2017/02/13 15:21:15 [error] 4885#4885: *1 SSL_do_handshake() failed (SSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol) while SSL handshaking to upstream 

You need to make sure your pem file also includes the CA cert.

Until:

$ curl -I -v https://myserver.mydomain:8443

returns correctly, no point in checking other things.

Hi Jess

There’s no issue with the cert. curl -I -v https://myserver.mydomain:8443 returns correctly.

Still something forcing port 80 with SSL hence the handshake error.

upstream: “https://192.168.NNN.NNN:80/hls/p/100/sp/10000/serveFlavor/entryId/0_om60kqjq/v/2/flavorId/0_klwtd4p9/name/a.mp4?pathOnly=1

Hi @michaelc123,

A bit hard to debug without the actual domain but I assume the problem is caused because myserver.mydomain is an LB.
You should add the following to nginx.conf under the http section:

http {
        vod_base_url https://myserver.mydomain:8443;
        upstream kalapi {
                server myserver.mydomain:8443;
        }
...
}

And then reload kaltura-nginx.
Your delivery_profile.url column seems fine, also make sure the host_name column is set to myserver.mydomain.
If after this it still does not work, I’m afraid I’m going to need an actual player embed I can debug.