Kaltura player Supported formats

Hi,

Does the kaltura player support RTMP/HLS/H264/AAC? Does it have a way of serving multiple formats like jwplayer? For instance Jwplayer allows something like RTMP fallback and HLS m3u8 for IOS devices.

Does Kaltura transcode into HLS streams? or that needs to be done by some 3rd party streaming engines?

Purpose is to have Kaltura player serving HLS/RTMP/RTMPE thus covering all devices and platforms.

Thanks

Hi Patrick,

The Kaltura player does know what flavor to serve according to the end device. It does support all the aforementioned profiles.
To see the default configured transcoding profiles, look under ‘Settings’->‘Transcoding settings’. Additional flavors can also be defined using our API.
For example, attaching a little script as an example.

jess@debian:~$ cat kalsource/ps/generic/create_session.php

<?php
require_once('/opt/kaltura/web/content/clientlibs/php5/KalturaClient.php');
function generate_ks($service_url,$partnerId,$secret,$type=KalturaSessionType::ADMIN,$userId=null,$expiry = null,$privileges = null)
{
    $config = new KalturaConfiguration($partnerId);
    $config->serviceUrl = $service_url;  
    $client = new KalturaClient($config);
    $ks = $client->session->start($secret, $userId, $type, $partnerId, $expiry, $privileges);
    $client->setKs($ks);
    return ($client);
}
?>
<?php
require_once('KalturaClient.php');
require_once('create_session.php');
$userId = null;
$expiry = null;
$privileges = null;
$secret = '';
$type = KalturaSessionType::ADMIN;
$partnerId=0;
$service_url= '';
$client=generate_ks($service_url,$partnerId,$secret,$type=KalturaSessionType::ADMIN,$userId=null,$expiry = null,$privileges = null);
$flavor_name='SD/Small - WEB/MBL (H264/900)';
$filter = new KalturaFlavorParamsFilter();
$filter->systemNameEqual = $flavor_name;
$filter->formatEqual = KalturaContainerFormat::MP4;
$results = $client->flavorParams->listAction($filter, null);
if(!count($results->objects)){
        $flavorParams = new KalturaFlavorParams();
        $flavorParams->name = $flavor_name ;
        $flavorParams->systemName = $flavor_name;
        $flavorParams->description = 'SD/Small - WEB/MBL (H264)';
        $flavorParams->tags = 'mobile,web,mbr,ipad,ipadnew';
        $flavorParams->videoCodec = KalturaVideoCodec::H264M;
        $flavorParams->videoBitrate = 900;
        $flavorParams->audioCodec = KalturaAudioCodec::AAC;
        $flavorParams->audioBitrate = 64;
        $flavorParams->width = 640;
        $flavorParams->height = 0;
        $flavorParams->isSystemDefault = false;
        $flavorParams->conversionEngines = '2,99,3';
        $flavorParams->conversionEnginesExtraParams = "-flags +loop+mv4 -cmp 256 -partitions +parti4x4+partp8x8+partb8x8 -trellis 1 -refs 1 -me_range 16 -keyint_min 20 -sc_threshold 40 -i_qfactor 0.71 -bt 300k -maxrate 900k -bufsize 1200k -rc_eq 'blurCplx^(1-qComp)' -level 31 -async 2  -vsync 1 -threads 4 | -flags +loop+mv4 -cmp 256 -partitions +parti4x4+partp8x8+partb8x8 -trellis 1 -refs 1 -me_range 16 -keyint_min 20 -sc_threshold 40 -i_qfactor 0.71 -bt 300k -maxrate 900k -bufsize 1200k -rc_eq 'blurCplx^(1-qComp)' -level 31 -async 2 -vsync 1 | -x264encopts qcomp=0.6:qpmin=10:qpmax=50:qpstep=4:frameref=1:bframes=0:threads=auto:level_idc=31:global_header:partitions=i4x4+p8x8+b8x8:trellis=1:me_range=16:keyint_min=20:scenecut=40:ipratio=0.71:ratetol=40:vbv-maxrate=900:vbv-bufsize=1200";

        $flavorParams->twoPass = 'true';
        $flavorParams->format = KalturaContainerFormat::MP4;

        $results = $client->flavorParams->add($flavorParams);
        $low_id=$results->id;
}else{
        $low_id=$results->objects[0]->id;
        error_log("$flavor_name with ID $low_id already exists. Skipping.\n",3,'/tmp/flavor_errors.log');
}
error_log("post creation of $flavor_name\n", 3, "/tmp/flavor_errors.log");

?>

You may also be interested in looking at this little API howto:

1 Like