Kaltura Wowza Media Server


The Kaltura Wowza Media Server is an application built to run over the Wowza Streaming Engine infrastructure. It is compiled with a Kaltura Java client, allowing it access to the Kaltura API. The application utilizes the WSE dynamic streaming capabilities, combined with the Kaltura API for purposes of authentication and tracking.
By default, the Kaltura Wowza application is called kLive.


Kaltura API Integration


API Usage
The Kaltura media server can use API client in one of two configurable ways:

  1. Opposite built-in partner (-5), which impersonates the handled partner for all API calls.
  2. As an eCDN installation- in this case the Wowza Server is installed on the client's machine while the partner continues working opposite the SaaS installation (as opposed to on-prem installations). The Wowza server thus installed works only opposite the partnerId it belongs to and does not use impersonation.
    The KS is regenerated periodically according to the KS expiry time.

Broadcast URL
Example URL to kLive application: rtmp://domain/kLive/?p=102&e=0_rkij47dr&i=0&t=dj94kfit
The broadcast URL consists of the following arguments:

  • p – partner id.
  • e – entry id.
  • i – index (0 for primary and 1 for backup).
  • t – token.

Stream name example: 0_rkij47dr_1
The stream name consists of entry id, underscore and stream index (between 1 to 3). The stream index could be used for multiple bitrate streams ingestion, if only one bitrate is streamed the index should be 1.


Integration points

  • Connection – liveStream.authenticate action is called to validate the entry id with the supplied token. The action should return a KalturaLiveStreamEntry object, or an exception in case the authentication failed. The returned entry object could be used later to determine if DVR and recording are enabled for this entry.
  • Publish – liveStream.registerMediaServer action is called to inform the server that this entry is live. This API call is repeated every 60 seconds, otherwise a server-side batch process will remove the flag and mark the entry as non-live.
  • Transcoding - wowza_liveStreamConversionProfile.serve is called for each published entry. This action returns an XML formatted according to the Wowza required structure, indicating the transcoding that the stream should undergo.
  • Unpublish – liveStream.unregisterMediaServer action is called to inform the server that this entry is not live anymore.
  • Recorded segment end – liveStream.appendRecording action is called to ingest the recorded media file.
  • Server status report- the SaaS Wowza servers are logged as entries into the DB, and periodically report their status using the mediaServer.reportStatus action.

Configuration

  • DVR – set KalturaLiveStreamEntry::dvrStatus to determine if DVR should be enabled for the live stream, and use KalturaLiveStreamEntry::dvrWindow to get/set the configured DVR duration in minutes.
  • Recording – set KallturaLiveStreamEntry::recordStatus to determine if VOD recording should be enabled.
  • Transcoding – set KalturaLiveStreamEntry::conversionProfileId. The required flavors are fetched using conversionProfileAssetParams.list and flavorParams.getByConversionProfileId actions.

--

Media Server Installation

Instructions to install a Wowza SaaS server can be found here: https://github.com/kaltura/media-server/blob/3.0.8/Installation.md

Instructions to install an eCDN machine can be found here:

https://portal.kaltura.com/rnd/_layouts/WordViewer.aspx?id=/rnd/Shared%20Documents/3%20-%20BackEnd/IX/Hybrid%20eCDN%20and%20Multicast%20deployment%20instructions.docx&Source=https%3A%2F%2Fportal%2Ekaltura%2Ecom%2Frnd%2FSitePages%2FHome%2Easpx%3FRootFolder%3D%252Frnd%252FShared%2520Documents%252F3%2520%252D%2520BackEnd%252FIX%26FolderCTID%3D0x012000E514815DE8672D4EAF4A3C9789CDC4EF%26View%3D%7B18A3F1C8%2D2494%2D4389%2D87CE%2D31A955F3E502%7D&DefaultItemOpen=1&DefaultItemOpen=1