New to Kaltura I have setup a CE proof of concept based on version 12.4.0.
After adding content and defining a playlist created a Universe player.
This one works on Windows and android but not on IOS.
On all devices we see the initial player with the thumbnails but after clicking the start button only the Kaltura loading icon is spinning. This is an example
What am I missing?
I see you’re using player v2.49, which is good, however, looking at the manifest being requested by the player, I see it is one for progressive download and not HLS, which, since version 2.48 is the default playback method… this can easily be seen when running a sniffer during playback, the playManifest request looks like this:
p/102/sp/10200/playManifest/entryId/0_pjgxfi0j/flavorId/0_m94ta2ub/format/url/protocol/http/a.mp4
when requesting a HLS manifest, it should be format/applehttp/protocol/http…
I assume this is because you’ve set disableHLSOnJs = true for this player? That would work on desktops but on iOS, it will fail, on iOS, we always use HLS for playback.
As part of CE, we have the kaltura-nginx package, which includes the nginx-vod-module [https://github.com/kaltura/nginx-vod-module], allowing you to serve m3u8 manifests to the player, without having to use external services.
If you set disableHLSOnJs = true, please unset it and let’s see if the player functions correctly when using a desktop machine [simply easier to debug from a desktop than from an iOS device, which I don’t have at my disposal at the moment anyhow], if it DOES play, then I’m afraid you’ll have to connect your iOS device to a Mac and look at the HTTP requests being made to understand what the issue is, if it does NOT play, then we need to troubleshoot that and afterwards, it will most likely playback from the iOS device as well.
I did not set/unset disableHLSOnJs
Now to unset it I added disableHLSOnJs = false in the player UI Variables
On MAC I see that it is trying to load the a.m3u8 but only shows spinning icon.
On Windows/Firfox I keep seeing the a.mp4 is that supposed to happen?
In general, I’d recommend upgrading to 12.5.0 which includes player version v2.50 before we continue troubleshooting, although v2.49 included in 12.4.0 should work as well.
You can find the changelog for 12.5.0 as well upgrade info, here:
Upgraded to 12.5.0-2
Created a new universal player without changing any of the setting. You can see it here
Still no luck on iPad… did not expect it to be so complicated.
The issue causing the player to use progressive download as the playback method was fixed in 12.7.0 and so, upgrading should make the player use HLS, which in turn, should make playback work correctly on iOS devices.
Just as a reminder, note that you should be using the HTML5 player and NOT the legacy Flash player [KDP]. To create an HTML5 player go to KMC->Studio and click on “Add New Player”
Yes, that should be changed in the DB. The table is called ‘delivery_profile’. Please make sure the ‘url’ column reflects the correct FQDN to where the Nginx runs [can be an LB if you’re doing SSL offloading]. Unless you overrode any of the default profiles, the relevant profile delivery IDs to change are 1001, 1002 and 1003.
Note that Nginx needs to be accessible from every client you intend to play from.
The post installation script does prompt for the Nginx hostname, the prompting is done in /opt/kaltura/bin/kaltura-nginx-config.sh if running the RPM version:
"Nginx server name [`hostname`]: "
or if using Deb, it happens in the kaltura-nginx postinst phase [/var/lib/dpkg/info/kaltura-nginx.postinst]:
db_get 'kaltura-nginx/nginx_hostname'
I suppose when it first ran, you may have chosen 127.0.0.1. Perhaps it would be wise to add a note stating it needs to be accessible from anywhere you intend to play from. I’ll think of a proper phrasing.
It is true that while you can always reconfigure Nginx by running /opt/kaltura/bin/kaltura-nginx-config.sh [RPM] or dpkg-reconfigure kaltura-nginx [Deb], the DB needs to be manually adjusted if something changes. That is explained here though:
"In addition, when changing the CDN hostname, the kaltura.delivery_profile table must be updated.
# mysql -h$DB1_HOST -u$DB1_USER -p$DB1_PASS $DB1_NAME
mysql> select id,name,url,host_name from delivery_profile;
Then use update statements to reset the url and hostname."
If you feel that’s not sufficiently clear, I’m certainly open to suggestion and pull requests.