Push streams to Wowza CDN from Wowza Streaming Engine

With version 4.8.23 of the Wowza Streaming Engine™ media server software, you can stream directly to Wowza CDN™ and use its edge network to deliver streams to global audiences over HLS. You can send a single stream or a group of transcoded live stream renditions straight to a Wowza CDN on Fastly endpoint for distribution.

Push-based workflow overview

This guide provides information about creating a Fastly stream target for a push-based CDN workflow introduced with Wowza Streaming Engine 4.8.23.

You can use the steps to send a single stream without transcoding to Wowza Video or to push an adaptive bitrate (ABR) stream that's transcoded with Wowza Streaming Engine. To achieve the same workflow and transcode with Wowza Video instead, see Send a stream from Wowza Streaming Engine for transcoding in Wowza Video. After a successful setup, you can utilize the Wowza Video edge network to deliver your live stream to viewers.

For this article, you don't need to make any firewall changes. You can alternatively set up your connection to Wowza CDN on Fastly for a pull-based workflow, which does require some firewall configuration. To add your stream targets using a pull connection, see Pull streams from Wowza Streaming Engine to Wowza CDN.

To help you determine which CDN workflow best fits your streaming needs, see Scaling Wowza Streaming Engine with Wowza CDN.

Note:  You can only use the built-in push-based CDN workflow described in this guide with Wowza Streaming Engine 4.8.23. For earlier versions, we recommend the following to achieve the same push-based functionality:

Before you start

Before you can add a stream target for distribution to Wowza Video, make sure to complete these tasks:

1. Add a stream target

To send streams directly to Wowza Video for CDN distribution, you must add stream targets to an existing live application in Wowza Streaming Engine. The steps in this section assume you've already created a Live (Single server or origin) application. For help with this task, see Create applications.

  1. In Wowza Streaming Engine Manager, click the Applications tab.
  2. Select your live application from the list.
  3. From the selected live application, click Stream Targets in the contents panel.
  4. On the Stream Targets page, click the Add Stream Target button.
  5. Select Wowza Video from the Wowza Target Destinations options.
  6. Complete the fields on the Wowza Video Configuration page.

  • Stream Target Name (required): Enter the name of the stream target. Use a name to help you identify it from other stream targets.
  • Source Stream Name (required): Add the name of the incoming source stream you plan to send to the destination. Whether you're pushing a single stream or an adaptive bitrate stream, the value in this field should match the stream's name as it appears on the Incoming Streams page.
  • Select Single Stream or Adaptive Bitrate Stream (ABR):
    • Push single stream without transcoding: Select to upload and push a single stream to Wowza Video without any transcoding.
    • Push ABR stream from Wowza Streaming Engine Transcoder: Select to upload and push a group of transcoded streams for adaptive bitrate content. With this option, when sending a set of adaptive bitrate renditions to a CDN endpoint, you must enable the Wowza Streaming Engine Transcoder feature to produce renditions with the same stream name prefix. The stream target uses the Source Stream Name prefix to find all stream names beginning with this prefix, then pushes all matching transcoded renditions while ignoring the original input stream. For example, myStream would match myStream_360p and myStream_720p, but not myStream.
    • Push single stream for ABR transcoding in Wowza Video: Select to upload a single stream and send it to Wowza Video for transcoding. For more, see Send a stream from Wowza Streaming Engine for transcoding in Wowza Video.
  • Select Protocol: This selection is only available when you're not pushing a single stream for ABR transcoding in Wowza Video. Select the protocol that determines the packetizer for the stream target you create. The protocol should match the packetizer enabled for your application. By default, the selected option matches the packetizer you've configured for the application.
    • HLS: Select this option to package and deliver your stream target using the HLS protocol.
    • CMAF: Select this option to package and deliver your stream target using CMAF and the HLS protocol.

  • Select Region: Indicate the location of the Wowza Video server to which the streams will be pushed. For the best performance and most reliable stream, choose the region closest to the physical location of your Wowza Streaming Engine instance.
  • Wowza Video API Token (required): Paste your Wowza Video API token when adding it for the first time. Its value is saved and can be edited later. This token is set up at the application level, superseding any tokens in the Server.xml file. If you're using multiple Wowza Video accounts, create different applications in Wowza Streaming Engine for them. Existing Wowza Video customers can use the Access Token Management page to manage their personal tokens. See Generate an access token (JWT) for additional instructions. For those new to Wowza Video, see Wowza Streaming Engine with Video to get started.

Note: After the initial entry, the Wowza Video API token is obfuscated on all Wowza Streaming Engine Manager pages. You can never view the original API token again. Only the last five characters display if you edit the Wowza Video stream target or when you view the application's custom properties. This token is also displayed in its encrypted form in XML files. If something happens to this key or if you need to update it, you must revoke it and create a new personal token.
  1. Click Add this target to save the configuration.
Note: At this point, the Application.xml file containing all configurations for your application is updated to contain the API token value you added in this section.

2. Enable stream targets

Before you stream, you must enable stream targets for your live Wowza Streaming Engine application or for the individual stream target you created.

  1. Go to the contents panel of your live application and click Stream Targets.
  2. On the Stream Targets page, click Enable Stream Targets.

When stream targets are enabled, a checkmark appears next to the Stream Targets text in the contents panel. The Stream Targets page shows the status as Enabled.

  1. If the status of an individual stream target is Disabled, click the corresponding Enable icon in the Actions column for that stream target.

When a stream target is enabled, its status on the Stream Targets page is set to one of the following:

  • Waiting: The target is enabled but is not yet pushing the stream to the target destination because either the target's configured source stream is not connected to the Wowza Streaming Engine input, or Wowza Streaming Engine has not completed initializing the connection to the target destination.  
  • Active: The Wowza Streaming Engine instance successfully connected to the target destination. It's actively pushing the stream.  
  • Error: The Wowza Streaming Engine instance unsuccessfully tried to connect to the target destination. Ensure the target's configured source stream is connected to the Wowza Streaming Engine input. Errors might be due to an incorrect target configuration, an issue with the destination server, or an invalid Wowza Video API token.
  • The status of each stream target updates automatically if your Wowza Streaming Engine application has fewer than 100 stream targets. If your application has more than 100 stream targets, you can click Refresh to update the status.
  • When you push a single stream for adaptive bitrate transcoding in Wowza Video, the stream target cycles through statuses a bit differently. For more details, see Push to Wowza Video for transcoding.
  1. When prompted, click Restart Now so your change takes effect.

3. Push to Wowza Video

Once the stream target is created and enabled, you can check its status and push it to Wowza Video for distribution.

  1. Go to the contents panel for your live application and click Stream Targets. The status of the stream target initially appears as Waiting.

  1. Start a stream and send it to your Wowza Streaming Engine server. For more about publishing live streams, see Connect a live source to Wowza Streaming Engine.
  2. To verify your incoming stream, check the Incoming Streams page for your application. Incoming adaptive bitrate streams include the transcoded versions of your stream.
  3. When you publish the live stream, the status of your stream target changes to ActivePlayback URL and Stream Target Id are imported from the Wowza Video CDN service. To view these details, click the stream target name in Wowza Streaming Engine Manager. For more, see About playing Wowza Streaming Engine streams.

Next steps

Viewer data for Wowza CDN on Fastly stream targets is available in near-real time. Use the following resources to get viewer data:

More resources