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
In SyncWords, create a new service or navigate to your existing service configuration. Please see Step 1: General Settings - How do I create a Service using the new UI? for more information.
Step 2 - Provide Input Media
From the Input Media section, Select CMAF as your stream type. This determines how your live stream is received by the Service for processing.
NOTE: For CMAF input, only PUSH is available.

Please see Step 2: Input Media (CMAF) - How do I use CMAF as an Input source for my Service using the new UI? for more information.
NOTE: The streaming URL will be available once the service is fully saved and configured.
Once the Service is configured, copy the value generated in the URL (Ingest 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.
Configure the transcription settings to create captions from your live stream audio.
Please see Step 3: Transcription - How do I enable Transcription for my Service using the new UI? for more information.
Step 4 - Set up Translations (optional)
If you need translations, you can add real-time AI text translations and audio dubbing to your live stream. You can also add Translated Audio tracks to your live stream.
Please see Step 4: Translation - How do I enable Translation for my Service using the new UI? for more information.
Step 5 - Set up the Output
The last step is to set up the stream that will go out to MediaPackage.
-
In your SyncWords Service configuration, navigate to the Output section
-
Stream Type: The default CMAF will be automatically selected
-
Delivery Method: The default PUSH will be automatically selected
-
Ensure MediaPackage v2 is selected from the Destination drop down
-
Ensure the Mode is set to Relay.
-
You can find the Ingest Endpoint 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 (Ingest 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 the Audio Stream Name field, located in Step 2 of your SyncWords Service configuration.
-

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.