Skip to content
  • There are no suggestions because the search field is empty.

Using CMAF Ingest with AWS MediaLive & MediaPackage

This article outlines how to configure AWS MediaLive to send a live CMAF Ingest stream to SyncWords for real-time captioning and translation, and then deliver the captioned and translated CMAF output to AWS MediaPackage for distribution.

This article assumes you are familiar with setting up MediaLive and MediaPackage, and will point out any requirements related to the captioning workflow.

Step 1 - Create a Service

To Create a Service, log in to your SyncWords account, go to Services and click "Create Service".

 

Give your Service a name and click the "Create Service" button.


Step 2 - Provide Input Media

From the "Input Stream Type" drop-down, select CMAF. Then click the "Create Port & Save" button to generate the URL.

Copy the value generated in the URL (Endpoint) and save it. We will use it when updating our MediaLive settings.

Step 3 - Set up Transcription

Now that we have set up the incoming stream we need to set up the Transcript section to create the captions. Use the available dropdowns to set the "Source Language" of the event, the "Speech Engine" you would like to use and optionally add or select an existing dictionary.

 

Step 4 - Set up Translations (optional)

If you want to include alternate language subtitles to your live stream along with the source language captions you can do so using the Translations section. Click the "Add Translation" button and select the language you want to add from the dropdown. 


 

Once you have selected your translation language you can configure it by selecting the translation engine you want to use and optionally add or select an existing glossary.

You can also add Translated Audio tracks to your live stream.

Step 5 - Set up the Output

The last step is to set up the stream that will go out to MediaPackage. Click the "Create Output" button and select CMAF from the drop-down. Ensure Elemental MediaPackage v2 is selected from the Packager Destination drop down, and the Mode is set to Relay. you can see where to get the Endpoint URL value in the MediaPackage Settings section below.

MediaLive Settings

  • In MediaLive, create or edit your channel.

  • Add a CMAF Ingest Output Group if one is not already present.

  • Paste the URL (Endpoint) copied in Step 2 into the CMAF Ingest Destination

  • Ensure you set up separate Audio and Video Tracks. This is required as  MediaPackage and SyncWords need distinct audio and video tracks for captions to function correctly.

 

  • Frame Rate: Although the frame rate of the source material can be anything the output must be set to 29.97 fps for captions to work properly in MediaPackage.

  • If your channel has more than one audio source, you must specify which audio track SyncWords should use to generate captions:

    • Copy the Name Modifier of the desired audio track from MediaLive.

    • Paste this value into your SyncWords Service in the Audio Track Name field.

MediaPackage Settings

  • In MediaPackage v2, create a Channel (or use an existing one) and ensure CMAF is selected as the Input Type

  • Under Channel Policy select Attach a custom policy to ensure SyncWords can publish to your MediaPackage channel. There are two methods available to do that. See articles below for additional help
  • Once your channel is created go to the Settings and copy the Ingest Endpoint and paste that in to the Endpoint URL field in your SyncWords Output in Step 5

  • Create an Origin Endpoint and ensure that the container type is set to CMAF.

  • Under Enpoint Policy make sure you have attached a Public or Custom Policy that allows SyncWords to publish to the endpoint.
  • Under Manifest definitions you can select either HLS or DASH

WARNING: Low-latency HLS manifests are currently not supported for CMAF workflows with SyncWords

WARNING: You must start your SyncWords Service in order for it to accept an incoming stream and deliver an output.