How to transcode the video to HLS or DASH format

can we make some transcoding setting to transcode the video to HLS or DASH format to support adaptive streaming?

I suppose the nginx server is intended to do the HLS HDS DASH streaming of the entries.

Hi @xwarrior,

You’re confusing between transcoding profiles and delivery profiles.
See my explanation here:

By default, since player version 2.48.1, the default delivery method used is HLS. As @roger78 said, the delivery is done by the Nginx VOD module [https://github.com/kaltura/nginx-vod-module]. By default, the following 3 delivery profiles are created:

mysql> select * from delivery_profile where id in (1001,1002,1003)\G                 
*************************** 1. row ***************************
             id: 1001
     partner_id: 0
     created_at: 2015-07-03 19:19:17
     updated_at: 2015-07-03 19:19:17
           name: Kaltura HLS segmentation
           type: 61
    system_name: Kaltura HLS segmentation
    description: Kaltura HLS segmentation
            url: http://NGINX_HOST:88/hls
      host_name: 
     recognizer: NULL
      tokenizer: NULL
         status: 0
media_protocols: NULL
  streamer_type: applehttp
     is_default: 1
      parent_id: 0
    custom_data: NULL
       priority: 0
*************************** 2. row ***************************
             id: 1002
     partner_id: 0
     created_at: 2015-07-03 19:19:17
     updated_at: 2015-07-03 19:19:17
           name: Kaltura HDS segmentation
           type: 63
    system_name: Kaltura HDS segmentation
    description: Kaltura HDS segmentation
            url: http://NGINX_HOST:88/hds
      host_name: 
     recognizer: NULL
      tokenizer: NULL
         status: 0
media_protocols: NULL
  streamer_type: hdnetworkmanifest
     is_default: 1
      parent_id: 0
    custom_data: NULL
       priority: 0
*************************** 3. row ***************************
             id: 1003
     partner_id: 0
     created_at: 2015-07-03 19:19:17
     updated_at: 2015-07-03 19:19:17
           name: Kaltura DASH segmentation
           type: 68
    system_name: Kaltura DASH segmentation
    description: Kaltura DASH segmentation
            url: http://NGINX_HOST:88/dash
      host_name: 
     recognizer: NULL
      tokenizer: NULL
         status: 0
media_protocols: NULL
  streamer_type: mpegdash
     is_default: 1
      parent_id: 0
    custom_data: NULL
       priority: 0
3 rows in set (0.00 sec)

Additional profiles can be created but profile ID 1001 is the one the player will use by default and you shouldn’t need to do anything else to get HLS playback.

I checked the embeded player playback, I found that the whole mp4 file is being downloaded for playback. If it is HLS, it should be downloaded segment by segment, correct?

Versions older than 2.48.1 used progressive download as the default playback method. Starting from 2.48.1 HLS is used.
However, if your entry is shorter than 10 seconds, progressive download will still be used because there is no added value in using HLS for such short entries. Additionally, if you have only one flavour for a given entry, progressive download will also be used since there is no value in adaptive bitrate delivery if the entry does not include flavours of different bitrates.

What player version are you using, what CE version and finally, what does the playManifest request look like?
To see the playManifest request, just run a HTTP sniffer while hitting play. You can use your browser’s dev tools and look under the “network” tab. The player’s version is outputted by use of console.log() you can see it in the “Console” tab of your browser’s dev tools UI.

The player version is: kWidget: Kaltura HTML5 version: 2.51
Kaltura version is: Community Edition 12.8.0

Attached is the captured screen for manifest, and the whole video download request.

Hi @xwarrior,

Please compare your local copy of /opt/kaltura/web/html5/html5lib/v2.51/modules/KalturaSupport/UiConfResult.php with https://github.com/kaltura/mwEmbed/raw/v2.51/modules/KalturaSupport/UiConfResult.php
If “hlsjs”=>array() is commented out in your local copy, please override it with https://github.com/kaltura/mwEmbed/raw/v2.51/modules/KalturaSupport/UiConfResult.php, then clear the cache with:
# rm /opt/kaltura/web/html5/html5lib/v2.51/cache/*

In the event the two files are the same and you’re still getting progressive download in the manifest [./playManifest/./format/http/protocol/http], what’s the entry’s duration? if it’s very short, that would explain it. Another possible reason is the entry does not include several converted flavours.

Also, the current stable version is 12.11.0, in general, it’s best to upgrade.

The video duration is 10 minutes.
You can see that it has several flavors as the uploaded screen:

OK. Did you see what I wrote about UiConfResult.php?

what is in UConfResult.php, the ““hlsjs”=>array()” isn’t commented.

	// Add Core plugins
	$basePlugins = array(
		'statistics' => array(),
		'controlBarContainer' => array(),
		'qualitySettings' => array(),
		'morePlugins' => array(),
		'keyboardShortcuts' => array(),
		'id3Tag' => array(),
		'liveCore' => array(),
		'liveStatus' => array(),
		'reportError' => array(),
		"sideBarContainer" => array(),
		"liveAnalytics"=>array(),
		"kAnalony"=>array(),
		"hlsjs"=>array()
		//"playersJsReceiver" => array()
	);
	// Default set of plugins, always enabled
	$plugins = array(
		"topBarContainer" => array(),
		"controlBarContainer" => array(),
		"qualitySettings" => array(),
		"morePlugins" => array(),
		"sideBarContainer" => array(),
		"scrubber" => array(),
		"largePlayBtn" => array(),
		"playHead" => array(),
		"playPauseBtn" => array(),
		"volumeControl" => array(),
		"durationLabel" => array(),
		"currentTimeLabel" => array(),
		"keyboardShortcuts" => array(),
		"id3Tag" => array(),
		"liveCore" => array(),
		"liveStatus" => array(),
		"reportError" => array(),
        "hlsjs"=>array()
	);

I can’t expand the capture screens, but it looks like you’re requesting the flv flavor. Are you using the flash player? The mimetype of the response is video/x-flv?

Can you present the request and response as RAW in Fiddler?

-Nuno