How to retrieve all flavors from a custom Video Flavor Id

Hi,

I’m trying to figure out how I can customize Video Flavor Id to include higher end video flavors such as HD and higher bit-rates. I don’t find where I can change the 301971 Video Flavor Id to include those.

Your help is very appreciated.

Mathieu

My request:
http://kaltura-dev/p/101/sp/0/playManifest/entryId/0_sjxcll4c/format/applehttp/protocol/http/flavorParamId/301971/manifest.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=487424,RESOLUTION=640x360
http://kaltura-dev/hls/p/101/sp/10100/serveFlavor/entryId/0_sjxcll4c/v/2/flavorId/0_2kuhf50q/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=685056,RESOLUTION=640x360
http://kaltura-dev/hls/p/101/sp/10100/serveFlavor/entryId/0_sjxcll4c/v/2/flavorId/0_hpakp6d3/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=944128,RESOLUTION=640x360
http://kaltura-dev/hls/p/101/sp/10100/serveFlavor/entryId/0_sjxcll4c/v/2/flavorId/0_tjx15eny/name/a.mp4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1568768,RESOLUTION=1024x576
http://kaltura-dev/hls/p/101/sp/10100/serveFlavor/entryId/0_sjxcll4c/v/2/flavorId/0_io9fx8pj/name/a.mp4/index.m3u8

Hi @mpaquette,

See my reply here: Adding New Flavors in regards to how to add additional flavours.
My reply includes a script that uses the flavorParams->add() API. If you wish to edit existing ones you can use the flavorParams->update() API.

The flavour params are all stored in the DB in the kaltura.flavor_params table, however, direct manipulation of the table records is not recommended so always use the API.

You may also be interested in a general explanation about transcoding profiles, flavour params, delivery profiles and playback, for that, see here:

1 Like

@jess Thank you for your quick answer. Now I understand how to create and modify Flavors using the API but I don’t figure out how to associate different Flavors to a specific playback format. Suppose I have created a new Flavor and I want to add it to my applehttp playback format when my user is requesting the manifest file, how should I do that? I’m also wondering what is the purpose of Tags for Video Flavors?

Thank you again very much for your help!

Hi @mpaquette,

The flavours do not change based on the delivery method. Flavours are added to transcoding profiles, of which you can have several. During the upload process, you can choose which profile to use for the source file ingestion.
The delivery profiles are defined in the kaltura.delivery_profile DB table. The player’s embed code has an entry ID and an API request is made to the server to fetch the relevant flavour IDs for a given entry. A manifest for these is then returned to the player based on the playback [delivery] method of choice.

Tags are used for various purposes but the one you highlighted in the attached image, the ‘source’ tag, is used to mark which of the flavour IDs points to the original source file you’ve uploaded. That flavour will not be served during playback and will be used if a reconversion is requested or if a conversion to an additional flavour is needed.

Hi @jess,

Can you elaborate a bit more on the purpose of the tags in this case? Also how they are used by the player.
I’m creating more encoding profiles using H265 and also exploring the usage of HDR. I understand that I should use the tags to target devices. Is that the purpose?

Thanks!

@NAmorim1, Finally, I figured out myself by checking the source code. In fact, tags are also used for selecting which flavors will be used to a specific format. As an example, lets say I’m requesting playback format applehttp all flavors tagged as ‘ipadnew’, ‘iphonenew’, ‘ipad’, ‘iphone’. Look at the code: https://github.com/kaltura/server/blob/master/alpha/apps/kaltura/modules/extwidget/actions/playManifestAction.class.php method: getDefaultTagsByFormat($format)

Hope this helps.
Mathieu

Hi @mpaquette,

Thanks for the pointer. Understand it better.

@jess, how could one expand these tags? One scenario is to have the player verify if the client supports H265 and have it request the flavor with the HEVC tag, for example.