Zixi
AWS
Builder Lab
NAB 2026 · Las Vegas
NAB 2026 · AWS Builder Lab

Zixi × AWS Video Pipeline

This lab showcases Zixi's ZEN Master platform for resilient transport stream distribution with full monitoring and orchestration, as well as its ability to manage and monitor AWS compute and media infrastructure — all from a single pane of glass.

Lab structure — three roles, one platform
You'll wear different hats as you move through the parts
◈ Content Provider

In Parts 1–3, you play the role of a content provider building a resilient global channel distribution. You'll ingest a redundant source using hitless failover and distribute it downstream using the Zixi protocol.

◈ Content Platform

In Parts 4–5, you switch hats to a content platform receiving the provider's feed. You'll ingest the Zixi distribution and deliver it through an AWS HLS-based D2C pipeline — all managed within the same ZEN Master instance.

◈ Rights Management

In Part 6, you return to the content provider role to demonstrate how a SCTE-224 schedule can selectively embargo specific regional distributions — switching them to slate automatically, without manual intervention.

PART 01
Content Provider — Broadcaster Setup
Spin up a Zixi Broadcaster cluster in AWS, configure your compute, and prepare for resilient ingest.
→ ZEN MASTER · EC2 · BROADCASTER
PART 02
Sources — Primary, Secondary & Slate
Ingest a redundant Zixi Pull source pair with hitless failover, plus a file-based embargo slate.
→ ZIXI PULL · FAILOVER · FILE SOURCE
PART 03
Channels & Targets — Distribution
Create passthrough channels for content and slate, then build a Zixi Pull target for your downstream affiliate.
→ CHANNELS · TARGETS · ZIXI PULL
PART 04
Platform Ingest — MediaConnect
Switch roles to content platform. Ingest the Zixi feed via AWS MediaConnect to feed your D2C pipeline.
→ MEDIACONNECT · AWS FLOW
PART 05
HLS Delivery — MediaLive
Create a MediaLive channel with a multi-rendition HLS ladder, output to S3, and verify with the built-in stream player.
→ MEDIALIVE · HLS · S3
PART 06
Rights Management — SCTE-224
Watch a live demo: a SCTE-224 embargo schedule selectively blacks out regional outputs and switches them to slate.
→ SCTE-224 · ESNI · RIGHTS
Login credentials
Use these to access the ZEN Master platform throughout the lab
URL nab2026awsbl.zen.zixi.com
Username nab2026bl@zixi.com
Password AWSBuilderLab2026!
Use your name wherever the instructions say your-name or yourInitials to keep resources identifiable during the shared lab session.
PART 01 / 06
◈ Role: Content Provider

Broadcaster Cluster Setup

You will provision a Zixi Broadcaster cluster in ZEN Master backed by an AWS EC2 instance in us-east-1. This broadcaster will be used to ingest, process, and distribute the channel throughout the lab.

Make sure you are logged into ZEN Master at nab2026awsbl.zen.zixi.com before continuing. Credentials are on the Overview page.
1
Create a new Broadcaster Cluster
Broadcasters → Clusters → Add
  • In ZEN Master, navigate to the Broadcasters tab and click Add on the Clusters view
  • Set Name to bl-your-name
  • Select the tag owner=nab2026_aws_builderlab
  • Set Events Configuration Profile to default
  • Select Dual Mode
  • Set Management Type to AWS-account
  • Set Region to US East (N. Virginia)
  • Select key pair nab-aws-builder-lab
  • Set VPC to vpc-0a4c3b135645df943 | Default
  • Set Subnet to subnet-0a5d332fe36ccd20a | us-east-1a
  • Set Security Group to nab-aws-builder-lab
  • Confirm Architecture is 64-bit (Arm) and instance type is t4g.small
  • Set Activation Key to 6f4f-0056-9da3-01aa-ef89
  • Click the Key icon to generate a random API Password
  • Set Broadcaster Version to 18.11
  • Click Save
2
Add a Broadcaster to the cluster
This is the compute instance that will process and deliver video
  • Click Add Broadcaster within your new cluster
  • Name it bl-your-name-distribution and click Save
  • Wait a few minutes and confirm the Broadcaster status shows as Active
  • In the meantime, go ahead and spin up another Broadcaster named bl-your-name-ingest for the second part of this lab.
While the Broadcaster is spinning up in EC2, continue to Part 2 to prepare your source configurations. You can come back to verify the status.
PART 02 / 06
◈ Role: Content Provider

Source Configuration

Add three sources to your broadcaster: a primary Zixi Pull source, a secondary Zixi Pull source for redundancy, and a file-based embargo slate. Then combine them with a hitless failover source group.

1
Add Primary Zixi Pull Source
Sources → Add → Zixi
  • Navigate to the Sources tab and click Add
  • Select source type Zixi
  • Set Name to bl-source-yourInitials-primary
  • Set tag to owner=nab2026_aws_builderlab
  • Set Mode to Pull
  • Set Host to builder-lab-contribution-alqyk.nab2026awsbl.io.zixi.com
  • Set Stream ID to bl-source-origination-primary-smnkorp
  • Set Ingest Cluster and Target Broadcaster to your broadcaster
  • Click Save
2
Add Secondary Zixi Pull Source
Sources → Add → Zixi (secondary path for hitless failover)
  • Navigate to the Sources tab and click Add
  • Select source type Zixi
  • Set Name to bl-source-yourInitials-secondary
  • Set tag to owner=nab2026_aws_builderlab
  • Set Mode to Pull
  • Set Host to builder-lab-contribution-mqbgy.nab2026awsbl.io.zixi.com
  • Set Stream ID to bl-source-origination-secondary-serk24p
  • Set Ingest Cluster and Target Broadcaster to your broadcaster
  • Click Save
3
Add File-Based Embargo Slate Source
Sources → Add → File (used during SCTE-224 rights management in Part 6)
  • Navigate to the Sources tab and click Add
  • Select source type File
  • Set Name to bl-source-yourInitials-slate
  • Set tag to owner=nab2026_aws_builderlab
  • Set Broadcaster to your broadcaster
  • Enter URL: https://zixi-file-sources.s3.us-east-1.amazonaws.com/ts/EmbargoSlate_720_CBR.ts
  • Click Save
4
Create a Hitless Failover Source Group
Combine primary & secondary using Content Merge for seamless redundancy
  • Navigate to the Sources tab and click Add
  • Select Failover Source
  • Set Name to bl-source-yourInitials-fo
  • Set tag to owner=nab2026_aws_builderlab
  • Add your primary and secondary sources to the failover group
  • For Failover Mode choose Content Hitless Merge (handles cases with or without RTP headers)
  • Click Save
Content Merge uses sequence numbers to reconstruct a single seamless stream from both paths, eliminating any gap on failover — even without RTP headers.
PART 03 / 06
◈ Role: Content Provider

Channels & Targets

Create two passthrough channels — one for the live content and one for the embargo slate — then define a Zixi Pull target that your downstream affiliate (or your future self!) will use to receive the feed.

At this point you're ready to build the distribution layer. A channel output can be delivered over Zixi, SRT, RIST, RTMP, or HLS — to any number of B2B partners or, as we'll see in Parts 4–5, directly into an AWS media pipeline. We're still wearing the content provider hat here, so we'll create a Zixi Pull target that our downstream affiliate can connect to and receive with full telemetry and stream monitoring.
1
Create the Content Channel
Channels → Add → Passthrough Channel
  • Go to the Channels tab and click Add
  • Select Passthrough Channel
  • Set Name to bl-channel-yourInitials-content
  • Set tag to owner=nab2026_aws_builderlab
  • Set Broadcaster Cluster and Target Broadcaster to your broadcaster
  • Set Source to your failover source bl-source-yourInitials-fo
  • Under Advanced, set External ID to bl-content (used for SCTE-224 schedule binding in Part 6)
  • Click Save
2
Create the Embargo Slate Channel
Channels → Add → Passthrough Channel
  • Go to the Channels tab and click Add
  • Select Passthrough Channel
  • Set Name to bl-channel-yourInitials-embargo
  • Set tag to owner=nab2026_aws_builderlab
  • Set Broadcaster Cluster and Target Broadcaster to your broadcaster
  • Set Source to your file slate bl-source-yourInitials-slate
  • Under Advanced, set External ID to bl-slate
  • Click Save
3
Add a Zixi Pull Target
From your content channel → Targets tab → Add Target
  • Open your content channel and navigate to its Targets tab
  • Click Add Target and select Zixi
  • Set Name to bl-target-yourInitials
  • Set tag to owner=nab2026_aws_builderlab
  • Set Type to Pull
  • Enter your initials in the Receiver Name/ID field
  • Under Advanced, set External ID based on your seat location:
Seated on the RIGHT
External IDbl-region-1
Seated on the LEFT
External IDbl-region-2
  • Click Save
PART 04 / 06
◈ Role: Content Platform

Platform Ingest via MediaConnect

Switch hats — you are now the receiving content platform. You'll ingest the Zixi Pull feed you just created and route it into an AWS MediaConnect flow to feed your D2C pipeline.

We've built out the content provider's distribution system. In a real deployment there would be many more targets — SRT, Zixi, RIST, RTMP — potentially with localization, regional variants, and a full mirror of this setup in a second AWS region for redundancy. Now we switch roles. You are now the content platform receiving that feed. We'll use the broadcaster configured in Part 1 to pull the Zixi stream and route it into our own personal AWS-based D2C system.
Tip: Ctrl/Cmd-click the Targets tab to open a new browser tab — keep it open so you can reference your Target's configuration details while setting up the MediaConnect source.
1
Create a MediaConnect Source
Sources → Add → AWS MediaConnect
  • Go to the Sources tab and click Add
  • Select AWS MediaConnect under the AWS Media section
  • Set Name to bl-source-yourInitials-emx-in
  • Set tag to owner=nab2026_aws_builderlab
  • Confirm Protocol is set to Zixi
  • Set Application to Broadcaster
  • Set Broadcaster to your broadcaster
  • Set Source to bl-source-yourInitials-fo
  • Set CIDR to 0.0.0.0/0
  • Click Save
In production, set the CIDR to your Broadcaster's public IP with a /32 for security. The open 0.0.0.0/0 is for lab convenience only.
2
Create the MediaConnect Flow
Channels → Add → AWS MediaConnect Flow
  • Go to the Channels tab and click Add
  • Select AWS MediaConnect Flow
  • Set Name to bl-yourInitials-emx
  • Set tag to owner=nab2026_aws_builderlab
  • Select Create New
  • Set AWS Account to AWS-account
  • Set Region to US East (N. Virginia)
  • Set Availability Zone to us-east-1a
  • Set Source to bl-source-yourInitials-emx-in
  • Click Save to spin up the MediaConnect Flow
PART 05 / 06
◈ Role: Content Platform

MediaLive HLS Delivery

Create an AWS MediaLive channel fed from your MediaConnect Flow, configure a multi-rendition HLS ladder to S3, and verify the stream end-to-end with VLC.

1
Create the MediaLive Channel
Channels → Add → AWS MediaLive Channel
  • Navigate to Channels and click Add
  • Select AWS MediaLive Channel
  • Set Name to bl-yourInitials-eml
  • Set tag to owner=nab2026_aws_builderlab
  • Set AWS Account to AWS-account
  • Set Region to US East (N. Virginia)
  • Set Availability Zone to us-east-1a
  • Set Role ARN to MediaLiveAccessRole
  • Set Source to AWS MediaConnect Flow and select your flow bl-yourInitials-emx
  • Check the Disabled checkbox (we will enable it shortly)
  • Click Save
2
Add HLS Output Target
Targets → Add → MediaLive HTTP Output → S3
  • Navigate to the Targets tab and click Add
  • Select MediaLive HTTP Output
  • Set tag to owner=nab2026_aws_builderlab
  • Set Channel to bl-yourInitials-eml
  • Set Type to S3 Bucket
  • Set Bucket to s3://nab2026-awsbl/your-name
  • Add renditions: 480p and 320p
  • Click Save
3
Enable the Channel & Verify
Start the video flowing and check it in the stream player below
  • In ZEN Master, navigate to Channels and find your MediaLive channel
  • Enable the channel to start the video pipeline
  • Wait ~30 seconds for the first segments to land in S3
  • Enter your stream URL below and click Play to verify
HLS Stream Player
Enter your stream URL above and click Play
URL format: https://nab2026-awsbl.s3.us-east-1.amazonaws.com/your-name.m3u8
PART 06 / 06
◈ Role: Content Provider — Rights Management

SCTE-224 Embargo Schedule

This section is an instructor-led demo. Watch how ZEN Master's SCTE-224 integration can selectively switch specific regional outputs to slate on a schedule — using the external IDs and channels you configured in earlier steps as the binding mechanism.

How it works — SCTE-224 in ZEN Master
The wiring behind the demo

SCTE-224 is the industry standard for media audience restriction policies. ZEN Master exposes an ESNI (External Schedule and Network Interface) endpoint that accepts a SCTE-224 XML schedule via a standard PUT request authenticated with AWS Signature Version 4.

Once received, ZEN Master parses the policy actions and maps them to channels and targets using the External ID fields set earlier — bl-content, bl-slate, bl-region-1, bl-region-2. No manual switching is needed at run time.

When an embargo window is triggered for a given region, ZEN Master automatically routes that target's output to the slate channel. When the window closes, it restores the live content — seamlessly, on schedule.

A SCTE-224 schedule can act on either Time based triggers or SCTE-35 Signaling observed on the content. In this case, we're just using a simple time based schedule set to apply blackouts every 30 seconds.

Your seat position — and the corresponding External ID (bl-region-1 or bl-region-2) — determines which regional output gets embargoed during the demo. Check the stream player in Part 5 to observe the switch.
1
PUT the schedule via AWS Signature 4 API
Instructor demo — delivering the SCTE-224 XML to ZEN Master's ESNI endpoint

The instructor sends the SCTE-224 schedule XML via an authenticated HTTP PUT to the ZEN Master ESNI endpoint, signed with AWS Signature Version 4. This is exactly how a rights management system or scheduling platform would deliver embargo policies in a production workflow.

2
View the schedule in the ZEN Master ESNI GUI
Confirming ZEN Master has parsed and mapped the policy windows

In ZEN Master, navigate to the ESNI schedule view to see the embargo windows visualized in playlist format, with each row mapped to appropriate content change event. You can also verify that your External IDs have been correctly resolved.

3
Observe the ZEN Master target update
Watching the platform respond as embargo windows open

As embargo windows become active, watch the affected target in ZEN Master reflect the source switch in real time. No manual action is required — the platform handles routing automatically based on the schedule. In this case we are using a Time based schedule, but the ESNI backend can respond to matching SCTE-35 on the channel as well.

4
Watch the stream — content switches to slate
End-to-end verification in the HLS player from Part 5

Keep your stream player from Part 5 open. When your region's embargo window is active, the HLS output will switch from live content to the embargo slate. When the window closes, the content is automatically restored.

HLS has inherent segment latency, so the slate switch may appear a few seconds after the scheduled window opens. This is normal behavior for segment-based delivery.
Lab Complete!
You've built an end-to-end IP video pipeline on Zixi and AWS

You successfully provisioned a Zixi Broadcaster cluster in AWS, ingested a resilient dual-path source with hitless failover, distributed via Zixi Pull to an affiliate, ingested through AWS MediaConnect, transcoded with MediaLive to HLS, and demonstrated SCTE-224 rights management — all orchestrated from a single ZEN Master platform.

PROTOCOL
Zixi · HLS · SCTE-224
AWS SERVICES
EC2 · EMX · EML · S3
PLATFORM
Zixi ZEN Master
Live Stream
● LIVE
No stream loaded yet —
play it in Part 5 first
Diagram
Architecture Reference
Lab Pipeline Diagram
Zixi Builder Lab architecture diagram