Send a stream from Wowza Streaming Engine for transcoding in Wowza Video

With Wowza Streaming Engine™ media server software version 4.2 and later and the Wowza Video™ service, you can send single bitrate streams from Wowza Streaming Engine to Wowza Video for adaptive bitrate transcoding and delivery to viewers over the Wowza CDN edge network. This workflow allows you to use Wowza Video's high-performance servers and high-bandwidth networks for the heavy lifting of transcoding before delivering the stream to viewers.

Push-based transcoding with Wowza Video overview


With Wowza Streaming Engine 4.8.27, we're deprecating the workflow for stream targets that utilize connection codes. This simplifies the exchange to push stream targets from Wowza Streaming Manager to Wowza Video for transcoding. It also lets you start and stop Wowza Video transcoders directly from Wowza Streaming Engine Manager.

Note: If you're using Wowza Video Legacy and Wowza Video Transcoder connection code stream targets in Wowza Streaming Manager, upgrading to Wowza Streaming Engine 4.8.27 introduces breaking changes. You need to update to the new Wowza Video experience to retain this functionality. Please contact support if you need help with your upgrade.

In this article, you can learn how to send a live stream from Wowza Streaming Engine to the new Wowza Video for transcoding and delivery over the Wowza CDN on Fastly edge network. Generally, using the Wowza Streaming Engine Transcoder for this workflow is more cost-effective at scale. However, you may want to use the Wowza Video Transcoder to offload work from your on-prem resources, to separate billing, or to view stream analytics for specific streams in Wowza Video.

For an API-based version of this workflow, see Send a stream from Wowza Streaming Engine for transcoding in Wowza Video using Wowza APIs.

Notes:
  • If you have an existing stream target created with the previous connection code workflow, it will still display in Wowza Streaming Engine 4.8.27. You can edit and continue to use this stream target, but you won't be able to create a new stream target of this type from the user interface. The REST API and PushPublishMap.txt methods are backward compatible.
  • Sending streams from Wowza Streaming Engine to Wowza CDN on Fastly in Wowza Video requires Wowza Streaming Engine 4.2 or later and a Wowza Video subscription. We recommend updating to Wowza Streaming Engine 4.7.5 or later.
  • Wowza Streaming Engine 4.7.4 has a known issue that may break the stream target functionality for sending streams to Wowza Video for transcoding. For more information, see Wowza Streaming Engine 4.7.4 may experience problems sending streams to Wowza Video for transcoding.
  • For additional options related to streaming to Wowza Video and delivering the stream to viewers over the Wowza CDN edge network, see Scaling Wowza Streaming Engine with Wowza CDN.

Before you start


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

1. Add a stream target


To send streams directly to Wowza Video for transcoding and 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.

After creating a live application in Wowza Streaming Engine, you must configure it to send the live stream to Wowza Video.

  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.

  1. 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 Wowza Video for transcoding. 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): Select the Push single stream for ABR transcoding in Wowza Video. With this option, you can create a single-bitrate video in Wowza Streaming Engine and send it to Wowza Video for transcoding and ABR ladder creation. The Wowza Video transcoders are entirely controlled from the Wowza Streaming Manager user interface.
  • Select Wowza Video Region: Select the location of the Wowza Video server to which the streams will be pushed. For the best performance and most reliable stream, pick the region closest to the physical location of your Wowza Streaming Engine instance. If the option to transcode your stream with Wowza Video is selected, this represents the geographic region where Wowza Video also transcodes and processes your live stream. In this case, you cannot edit the Wowza Video region once the stream target is created. You must create a new stream target to select a new region.
  • Height and Width (required): Add the height and width when pushing a single stream for ABR transcoding in Wowza Video. You must specify these dimensions to determine the stream profile for your live stream in Wowza Video. To avoid errors, use multiples of eight for your video dimensions.
  • 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.
  1. The stream target is created in a default Disabled state. In Wowza Video, the live stream for this stream target is not yet initialized.
  2. Restart the application for changes to take effect.

2. Enable stream targets


Before you push a stream, you must enable stream targets for your live Wowza Streaming Engine application.

  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. Restart the application for changes to take effect.

3. Push to Wowza Video for transcoding


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

  1. Go to the contents panel for your live application and click Stream Targets. The stream target's status initially appears as Disabled. In the Actions column, you can use the icons to edit, copy, enable, or delete the stream target.

  1. Click the icon to enable the stream target and confirm the action.
  2. When a stream target is enabled, transcoder usage billing applies. Its status on the Stream Targets page in Wowza Streaming Engine cycles through these states as it interacts with Wowza Video:
  • Starting: In Wowza Video, a live stream is created, and its respective transcoder is started as it moves to a Starting state. If the stream target appears to be Starting in Wowza Streaming Engine, you must wait for the Waiting status to disable it. When more than five minutes pass before you send a stream to the stream target, it times out, and it's disabled. 
  • Waiting: When the Wowza Video live stream appears as Running, the stream target updates to Waiting in Wowza Streaming Engine. This status means the target is enabled but is not yet pushing the stream to the Wowza Video destination, and your application is ready to receive the input stream from your camera or encoder. The live stream may be running but offline in Wowza Video until you start the stream in the next step.
  • Active: The Wowza Video target configuration is successful, and the stream is being pushed to the Wowza Video destination for transcoding and distribution.
  • Error: Errors occur due to an invalid Wowza Video API token, an invalid target configuration, or an issue with the destination server.
Note: 
To avoid unnecessary billing, Wowza Streaming Engine automatically disables stream targets based on different timeouts or errors. However, we recommend manually disabling the targets when they're not being used.
  1. Start the stream in the H.264 camera or encoder that's sending the stream to your Wowza Streaming Engine application. Ensure the stream is visible on your application's Incoming Streams page. Also, confirm that the name of the incoming stream matches the Source Stream Name for the stream target you created in the first section on this page.
  2. The stream target appears as Active in Wowza Streaming Engine.

The stream is online and running in Wowza Video as well. You can view the adaptive bitrate ladder on the Components tab in Wowza Video.

  1. Click the stream target in Wowza Streaming Engine to view details such as Live Stream Id, Playback URL, Playback Page, and Embed Code from Wowza Video.
  • Live Stream Id: Corresponds to the live stream identifier in the URL visible on the live stream details page in Wowza Video. For example, https://app.wowza.com/livestreams/[live-stream-id].
  • Playback URL: Corresponds to the HLS playback URL on the live stream details page in Wowza Video.
  • Playback Page: Corresponds to the Hosted page link from the Publish live stream modal in Wowza Video. For more, see Share live stream.
  • Embed Code: Corresponds to the JavaScript embed code from the Publish live stream modal in Wowza Video. For more, see Share live stream.

  1. To turn off delivery of the source stream from the stream target to Wowza Video, click the Disable icon for the stream target.
    Note: When you disable the stream target, wait at least one minute to enable it again.
  2. Stop the stream in the source camera or encoder.

More resources