Shaka-player: Wowza stream generation - https manifest refers to http location

Created on 26 Oct 2016  路  14Comments  路  Source: google/shaka-player

Hi,
I have problem with MPEG-DASH streams playing over HTTPS, same stream over HTTP (on different port too) works well.
Testing stream over HTTPS (it doesn't work): https://media.mojemedicina.cz:1936/vod/videos/smil:2015_ipad_petr_mara/manifest.mpd
Testing stream over HTTP (it works): http://media.mojemedicina.cz:1935/vod/videos/smil:2015_ipad_petr_mara/manifest.mpd
Testing streams are generated by wowza server (version 4.5.0.3). We are using primary JW Player, where this stream works in v7.6 (where is used older shaka version), but not in v7.7 (where is used shaka v2.0.0).
I have tested it in your demo player v2.0.0 (no licence required) and there is a problem that player starts downloading chunks on wrong protocol (http instead of https) and wrong port (default 80 instead of 1936) which are different from manifest file.

CORS issue archived external question

Most helpful comment

Since this appears to be a Wowza bug, it seems like it would be more appropriate to move discussion to Wowza support. Also, I believe a quick fix on Wowza's side would be to drop the protocol from the Location URL. For example: //foo.bar/baz instead of http://foo.bar/baz. The client should be able to resolve this using the protocol of the original manifest.

All 14 comments

I think the manifest is the problem. If you check your manifest you will see that Location in the manifest points to http://

curl -v "https://media.mojemedicina.cz:1936/vod/videos/smil:2015_ipad_petr_mara/manifest.mpd"

Manifest returns:

<Location>http://media.mojemedicina.cz/vod/videos/smil:2015_ipad_petr_mara/manifest_w788402249.mpd</Location>

Manifest file is generated by wowza server, so I don't have way how to change it:( But same manifest works well in older version of shaka. Something changed in working with manifest in this version?

What version of Wowza are you using? We are running WowzaStreamingEngine/4.5.0 and our Manifest looks OK, with HTTPS. I think the player is doing the correct thing, loading manifests/chunks from HTTP, since the manifest is pointing to that with Location.

How does the manifest look if you change your port to be on the normal 443 HTTP port?

We are using wowza version 4.5.0.3. Yes, I agree with you, that there should be correct location and that it should be used by player.
I could not check it on port 443, because there is running web server. But I have checked it with wowza stream lock certificate and with access over stream lock server, there is correct location with correct protocol and port (same as for you), so there is probably some problem with detection correct port and protocol on our wowza server. I will ask wowza support for help with it. Thanks!

I saw that you have wowza behind nginx. Sounds like the proxied traffic is transported over HTTP (which make sense) and therefor wowza detects it as a HTTP client.

Since Wowza 4.5.x wowza has an option to hardcode the chunk domain name using

From the release notes

Added HTTPStreamer String property "mpegdashChunkHostDomain", which modifies the domain name indicated in the MPD tag. Allows content files to be located on a different server than the MPD manifest file

Maybe you can use that to change to host/protocol?

I'll try it.

Browsers will not allow https pages to load http resources. This is called "mixed content". The restriction is implemented inside browsers and cannot be controlled by Shaka Player or any other JavaScript app.

I'll leave this open while you two work on the Wowza/nginx side, but this is working as intended for Shaka Player.

@joeyparrish this problem is not related to mixed content or cross origin requests;) it's about stream generation/interpretation...

Ah, I though that the page itself was also https. My mistake.

Mozilla hit this same Wowza HTTP/HTTPS manifest problem (with HLS.js: issue #281). We had to hook into HLS.js' network code and rewrite the Wowza manifest's HTTP URLs to HTTPS on the client-side during playback.

Since this appears to be a Wowza bug, it seems like it would be more appropriate to move discussion to Wowza support. Also, I believe a quick fix on Wowza's side would be to drop the protocol from the Location URL. For example: //foo.bar/baz instead of http://foo.bar/baz. The client should be able to resolve this using the protocol of the original manifest.

Yes, I'm discussing it with wowza support.

Solved, protocol could be set in HTTPStreamer properties mpegdashPlaylistHostProtocol and mpegdashChunkHostProtocol. Port has to set in Host header on proxy.

Glad to hear it! Let us know if we can do anything else for you.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

EstebanBP picture EstebanBP  路  4Comments

diogoazevedos picture diogoazevedos  路  5Comments

interpegasus picture interpegasus  路  3Comments

baseballbrad3 picture baseballbrad3  路  4Comments

diogoazevedos picture diogoazevedos  路  4Comments