By default, the Kaltura HTML5 player always uses HLS for playback, unless the video is shorter than 10 seconds, in which case, there is no point in using adaptive bitrate protocols for delivery.
The Nginx VOD module is what’s responsible for generating HLS, HDS and DASH manifests, which is why it is critical for kaltura-nginx to be properly installed and for the daemon to run.
What happens when you run:
# /opt/kaltura/nginx/sbin/nginx -c /opt/kaltura/nginx/conf/nginx.conf
from the shell?
So it looks as though the Nginx daemon is running…
what does:
# service kaltura-nginx status
say?
if it says it is running, then let’s try:
# service kaltura-nginx stop
make sure it is down and run:
# aptitude install -f
this will rerun the kaltura-nginx postinst script again [/var/lib/dpkg/info/kaltura-nginx.postinst] since the last attempt returned with a return code other than a 0, causing the kaltura-nginx package status to be marked as incomplete.
root@kmc:~# service kaltura-nginx status
● kaltura-nginx.service - LSB: starts the nginx web server
Loaded: loaded (/etc/init.d/kaltura-nginx)
Active: active (running) since Wed 2017-05-03 12:34:52 UTC; 35min ago
Process: 16566 ExecStart=/etc/init.d/kaltura-nginx start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/kaltura-nginx.service
├─16570 nginx: master process /opt/kaltura/nginx/sbin/nginx
├─16571 nginx: worker process
├─16572 nginx: worker process
├─16573 nginx: worker process
├─16574 nginx: worker process
└─16575 nginx: cache manager process
May 03 12:34:52 kmc.abcdomain.com kaltura-nginx[16566]: Starting nginx: nginx.
May 03 12:34:52 kmc.abcdomain.com systemd[1]: Started LSB: starts the nginx web server.
root@kmc:~# service kaltura-nginx stop
root@kmc:~# aptitude install -f
The following partially installed packages will be configured:
kaltura-nginx
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Setting up kaltura-nginx (1.12-2) …
Job for kaltura-nginx.service failed. See ‘systemctl status kaltura-nginx.service’ and ‘journalctl -xn’ for details.
dpkg: error processing package kaltura-nginx (–configure):
subprocess installed post-installation script returned error exit status 1
Processing triggers for libc-bin (2.19-18+deb8u7) …
Errors were encountered while processing:
kaltura-nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)
Failed to perform requested operation on package. Trying to recover:
Setting up kaltura-nginx (1.12-2) …
Job for kaltura-nginx.service failed. See ‘systemctl status kaltura-nginx.service’ and ‘journalctl -xn’ for details.
dpkg: error processing package kaltura-nginx (–configure):
subprocess installed post-installation script returned error exit status 1
Processing triggers for libc-bin (2.19-18+deb8u7) …
Errors were encountered while processing:
kaltura-nginx
root@kmc:~# aptitude install -f
The following partially installed packages will be configured:
kaltura-nginx
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.
Setting up kaltura-nginx (1.12-2) …
OK, so looks like the postinst passed successfully… what’s the output for:
# dpkg -l kaltura-nginx
?
As for your last question, during the configuration phase, you provided 127.0.0.1 as the hostname for Nginx, this is why you cannot retrieve the manifest, it should be a hostname/IP that’s accessible from all machines you’d like playback to work from.
To fix it now, you’ll need to update the kaltura MySQL DB:
# source /etc/profile.d/kaltura-base.sh
# mysql -h$DB1_HOST -u$DB1_USER -p$DB1_PASS kaltura
mysql> update delivery_profile set url='http://$NGNIX_FQDN_HOST:88/hls' where id=1001;
mysql> update delivery_profile set url='http://$NGNIX_FQDN_HOST:88/hds' where id=1002;
mysql> update delivery_profile set url='http://$NGNIX_FQDN_HOST:88/dash' where id=1003;
Of course, port 88 TCP needs to be open for communication from the machine where you attempt playback.
Note that 88 is just a default, it can be changed to anything you want.
OK, good, so that’s fine. The status is ‘ii’ meaning the package is correctly installed and configured.
See my comment about the Nginx host. Once that’s fixed, everything should work.
I guess it’s now loading, but it’s loading the entire 5 minutes at one time, the /index.m3u8 is the entire file, how can we shrink it to 5 seconds per .ts?
Why do you think it’s loading the entire 5 minutes at one time?
The line you highlighted is just the request for the manifest… in the sniffer, you should see individual requests for the segments, like so:
$NGINX_HOST/hls/p/$PARTNER_ID/sp/$PARTNER_ID00/serveFlavor/entryId/$ENTRY_ID/v/12/flavorId/$FLAV_ID/name/a.mp4/seg-4-v1-a1.ts
The default segment duration is 10s but it can be changed.
See:
Sent you an email as an example - However i’ve tried to check the url you provided but could’t understand it correctly, is there a command or a configuration on the kaltura admin console can be changed for a quick edit?
I replied to your email.
You simply need to run these commands:
# source /etc/profile.d/kaltura-base.sh
# mysql -h$DB1_HOST -u$DB1_USER -p$DB1_PASS kaltura
mysql> update delivery_profile set url='http://$NGNIX_FQDN_HOST:88/hls' where id=1001;
mysql> update delivery_profile set url='http://$NGNIX_FQDN_HOST:88/hds' where id=1002;
mysql> update delivery_profile set url='http://$NGNIX_FQDN_HOST:88/dash' where id=1003;
The “Service Edition Type” is only meant for reporting/accounting purposes, same as “Class of Service” and "Vertical Classification"
The “Template Partner ID” selectbox only has one value by default but if you make the partner->register() API call directly, you can pass any existing partner as a template. This can be a powerful mechanism for cloning settings and content for different partner types.
If no templatePartnerId is passed as a parameter to the register action, the default behaviour is to clone content from partner 99 [which is a system partner created during deployment time] and different configuration profiles [delivery, storage, etc] from partner 0, likewise created during the deployment.
Thanks Jess, Would you please help what to insert in the fields requested when creating a new S3 storage? it requires username and password, but i’m not sure its related to the owner account, we use a key for backups using WHM anyway.
how to use a “CDN” url to replace all the live links with a CDN one, specially the ones embeded inside the player html5 code (that will be shared with a website owner to insert the code in his website).
I have to add that, the videos is uploaded to the ftp in just 1 file, not separate, i thought kaltura will send the transcoded ones, .m3u3 and .ts files - so this is correct? it should send the files to our ftp like that?