Skip to main content

Wowza Streaming Engine

This guide is to demonstrate how to encode a video and apply DRM protection to it using the Axinom Integration Module. This guide is aimed towards Axinom customers who wish to integrate Wowza Streaming Engine with Axinom DRM. It covers how to protect MPEG-DASH and HLS media using Widevine, PlayReady and FairPlay DRMs.

Prerequisites​

  • Have set up and have access to a Wowza Streaming Engine account.
  • Register on the Axinom Portal
  • Start a free trial
  • Go to My Mosaic / DRM and acquire credentials
  • You will need the following information:
  • Download Axinom Integration Module
    • v1.0.2
      • For WSE v4.8.28+4 and later
      • Utilizes the "setScheme" API method, which is not available in older WSE versions.
      • Built using Java 17
    • v1.0.1
      • For WSE pre-4.8.28+4 versions
      • Built using Java 1.8
  • Once you are ready to go to production, upgrade your Axinom account to a paid plan.

Set up Axinom Integration Module​

Axinom Integration Module setup is the same for video on demand (VOD) and live streaming service.

  1. Place the AxinomIntegration.jar into the [Wowza-Streaming-Engine-Installation-Path]\lib folder.

  2. Navigate to your Wowza Streaming Engine Manager using any web browser.

    1. If set up locally, it can be accessed at http://localhost:8088.
  3. Click the Applications tab and click on the application you wish to use with the Axinom Integration Module.

    width=600

  4. Make sure that desired Playback Types are enabled.

    1. It is recommended to enable only the playback that you are using.

    2. If any desired playback type is missing, click Edit in the Setup menu, tick to enable and click save.

      width=600

  5. Click the Modules tab and click Edit.

    width=600

  6. Click Add Module….

    width=600

  7. Fill the fields in Add New Module and then click Save.

    1. Name: "AxinomIntegration".

    2. Description: "AxinomIntegration".

    3. Fully Qualified Class Name: "com.axinom.wowza.AxinomIntegration".

      width=600

  8. To make sure that the changes take effect, the service must be restarted. The "Restart" button in the web interface does not always work correctly. The recommended approach is to open the Services application, Stop and then Start (Not Restart) the "Wowza Streaming Engine" service. The "Wowza Streaming Engine Manager" service does not need to be restarted.

Configure Axinom Integration Module​

Once the module is installed, it has to be configured. To configure the Axinom Integration Module, navigate to [Wowza-Streaming-Engine-Path]\conf\[ApplicationName]\Application.xml and open with a text editor. Inside the file, navigate to the bottom and add the following lines between the <Properties> tags and replace the values between the Value brackets with your own values.

Axinom Integration configuration block
<Property>
<Name>AxinomWidevineProviderName</Name> // #1
<Value>[ProviderName]</Value>
<Type>String</Type>
</Property>
<Property>
<Name>AxinomWidevineSigningKey</Name> // #2
<Value>[SigningKey]</Value>
<Type>String</Type>
</Property>
<Property>
<Name>AxinomWidevineSigningIv</Name> // #3
<Value>[SigningIV]</Value>
<Type>String</Type>
</Property>
<Property>
<Name>AxinomPlayReadyLicenseUrl</Name> // #4
<Value>[PlayReadyLicenseServiceUrl]</Value>
<Type>String</Type>
</Property>
<Property>
<Name>AxinomKeyServiceWidevineCencApiUrl</Name> // #5
<Value>[WidevineCencApiUrl]</Value>
<Type>String</Type>
</Property>
<Property>
<Name>cupertinoEncryptionAPIBased</Name> // #6
<Value>true</Value>
<Type>Boolean</Type>
</Property>
  • #1 Widevine CENC API Provider Name found in the PDF shared with you at the DRM tenant creation.
  • #2 Widevine CENC API Signing Key in hex format found in the PDF shared with you at the DRM tenant creation.
  • #3 Widevine CENC API Signing IV in hex format found in the PDF shared with you at the DRM tenant creation.
  • #4 URL to the Axinom PlayReady License Service found in the PDF shared with you at the DRM tenant creation.
  • #5 URL to the Axinom Widevine Key Service URL found in your Service Fact Sheet.
  • #6 Must be set to "true" to support HLS protection for FairPlay DRM.

Optional configuration values​

Axinom Integration configuration block
<Property>
<Name>AxinomContentKeyIdAsBase64</Name> // #1
<Value>[ContentKeyIdAsBase64]</Value>
<Type>String</Type>
</Property>
<Property>
<Name>AxinomWidevineCencAlgorithm</Name> // #2
<Value>CTR</Value>
<Type>String</Type>
</Property>
<Property>
<Name>AxinomDebugMode</Name> // #3
<Value>[true/false]</Value>
<Type>Boolean</Type>
</Property>
  • #1 (Optional) - If you wish to set a specific content key ID, it’s possible to set the GUID here in base64 format.
  • #2 (Optional) - Widevine CENC API algorithm. Valid options are "CTR" and "CBCS". If not specified, default is "CTR".
  • #3 (Optional) - To disable verbose logging to access logs, set this to "false". Default is "true".

Configuration values to be added in HTTPStreamer section​

Properties defined here will override any properties defined in conf/Application.xml for any HTTPStreamer loaded by this applications

<Property>    
<Name>cupertinoAppendQueryParamsToEncUrl</Name> // #1
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>cupertinoExtXVersion</Name> // #2
<Value>5</Value>
<Type>Integer</Type>
</Property>
  • #1 Must be set to "false" to omit adding non compatible parameters for FairPlay DRM.
  • #2 Must be set to "5" to get a correct EXT-X-VERSION to support HLS protection for FairPlay DRM.

To make sure that the changes take effect, restart the service as described above.

Stream map file​

Every time the Axinom Integration Module runs, it checks for the presence of the StreamMapFile.txt inside [Wowza-Streaming-Engine-Path]\conf{Application} folder. If it is not there when a request to play media is made, it creates it. This file contains the filenames of available video content and the associated content key ID that the module creates with each new video. You can specify a media with a specific content key ID manually, but this is entirely optional. Manual adding can be used to specify a certain content key ID to a specific video. The expected format inside stream map file is stream-name:guid and only one entry per line.

video1.mp4:20fc67d5-917e-42e8-a391-25115734f9d9
video2.mp4:0c00e59a-3c7d-4896-aca2-bed46fc4e554
video3.mp4:47064333-a1db-4bf8-8a2b-48ff1993f8ea

Testing Playback​

Once you have produced a DRM-protected video or stream, you can test the playback using Axinom’s DRM Video Playback tool. Hints for filling out the form:

  • Video Source URL: the URL of the generated manifest file
    • Content that is to be encrypted must be present in the folder defined in the application settings in the Wowza Streaming Engine Manager application Setup Content Directory. By default the location is [Wowza-Streaming-Engine-Path]\content.
  • Content Key ID and Content Key: according to your Stream Map File (see above)
  • Communication Key and Communication Key ID: The values you received from Axinom DRM configuration (see the prerequisites above)
  • License Service: keep defaults (or enter the value you received from Axinom DRM configuration)
  • Player: pick any, e.g. Shaka Player

If encrypted content does not play on Microsoft Edge, contact Wowza support for additional information and possible solutions.

See also​