Stream to CDNvideo from Wowza Streaming Engine

The Stream Targets feature in Wowza Streaming Engine™ media server software enables you to send live streams to widely distributed destinations. For example, you can send a live stream from a server running Wowza Streaming Engine to a CDN and use the CDN's edge network to deliver the stream to more viewers. This article describes how to create a Wowza Streaming Engine stream target to send a live stream to the CDNvideo network for distributed delivery to RTMP and Apple HLS players.

Note: Wowza Streaming Engine 4.2 or later is required. In earlier versions of Wowza Streaming Engine, you must use the Push Publishing module to send live streams to CDNs for distributed delivery.

Contents


Create a CDNvideo account
Configure the CDNvideo destination to receive and distribute the stream
Create a Wowza Streaming Engine application to ingest the live source video
Create a stream target to send the stream to CDNvideo
Start and test the live stream
More resources

Create a CDNvideo account


You must have a CDNvideo account before you can use a Wowza Streaming Engine stream target to send live streams to the CDNvideo network. If you're new to CDNvideo, you can sign up for a CDNvideo Free Trial account.

After your CDNvideo account is created, log in to the CDNvideo Dashboard with your CDNvideo account. After you get started, the dashboard will be your home to create and manage your streaming applications and services on the CDN, view your streaming statistics, and more.

Configure the CDNvideo destination to receive and distribute the stream


  1. Log in to the CDNvideo Dashboard, and then click the Service management tab.
  2. Click Live streaming, and then click the Add service button.
  3. In the dialog box that appears, select your level of experience with Internet video broadcasting, and then click Close. If you identify yourself as a novice broadcaster, the CDNvideo Dashboard will then provide you with the RTMP Push option for delivering a stream to the CDN. If you identify yourself as an expert broadcaster, you'll be presented with additional options for delivering a stream to the CDN.
    Note: This article only describes the RTMP Push option for delivering a stream, which CDNvideo prefers for ingesting video on their network. You can configure RTMP Push video delivery and begin streaming immediately after setup is completed. For other video delivery options, you should allow up to 3 days lead time before your streaming event to allow enough time for CDNvideo to provision your streaming application on its network. For information on how to use other publishing options, see the CDNvideo Knowledge base.
  4. In the Configure encoder panel, click a tab for one of the encoders supported by the CDNvideo destination (Adobe Flash Media Live Encoder, Telestream Wirecast, or XSplit Broadcaster), and then click Choice is made. If you want to use another RTMP encoder, click the tab for the encoder that has similar features and funtionality.
  5. In the Options panel, select Streaming on mobile devices.
    Note: To learn more about all of the available options, see CDN Services description and Pricing information.
  6. In the Streams information panel, enter a stream name and select its encoded frame height for the stream coming from the stream target in Wowza Streaming Engine.
  7. You can send up to 3 streams to your CDNvideo application. Click Add stream and then enter the unique stream name and specify the frame height of the next stream. Repeat until all streams are added.
    Note: Select the Standard quality option next to any stream for which you want to enable adaptive bitrate (ABR) playback of the CDN output. This option identifies the stream as the highest bitrate available in the ABR streaming presentation. To make lower bitrates available in the ABR presentation, you must subscribe to the CDNvideo Output transcoding service and provide the parameters for the additional bitrates to CDNvideo.
  8. Click Complete to send an automated request to CDNvideo to provision an application that will distribute your live stream to viewers. You'll get an email message response that has the information required to complete your Wowza Streaming Engine and encoding configuration so be sure to save this email.

Create a Wowza Streaming Engine application to ingest the live source video


In Wowza Streaming Engine Manager, create a live application that will receive the live stream from an H.264 video source and send it to CDNvideo for distributed delivery.

  1. Sign in to Wowza Streaming Engine Manager, click the Applications tab at the top of the page, and then click live in the contents panel.
    Note: This article uses the live application that's installed with Wowza Streaming Engine. You can create and use a different live application.
  2. In the contents panel, click Sources (Live).
  3. Select the camera or encoder that you want to use as your video source, and then complete the steps to connect it to Wowza Streaming Engine. For more information, see Connect a live source to Wowza Streaming Engine.

    Notes:

    • By default, Wowza Streaming Engine requires that RTMP and RTSP sources provide a user name and password to connect to a live application. For information on how to turn off authentication, see Managing live source authentication settings.
    • The following encoding settings are recommended for sending streams to your CDNvideo application:
      • Video codec: H.264
      • Bitrate: 1500 Kbps, constant bitrate (CBR)
      • Frame size: 1024x720 (recommended); 1920x1080, 640x480, 480x360 (supported)
      • Frame format: progressive scan (non-interlaced)
      • Keyframe interval: 2 or 4 seconds
      • Frame rate: 30 fps (recommended); 24 fps, 25 fps (supported)
      • Audio codec: 128 Kbps AAC-LC stereo, 48000 Hz sample rate. Many HTML5 players don't support MP3 audio very well, so you should use AAC audio encoding in your stream if possible. If you must use MP3 audio encoding, be sure to specify a sample rate value of 44100 Hz.

      If your encoder can't provide a stream to the CDNvideo application with acceptable settings, you can subscribe to the CDNvideo Input transcoding service. This service transcodes your input stream to the CDNvideo network so that it can be ingested.

Create a stream target to send the stream to CDNvideo


Note: If your live source is sending multiple streams with different bitrates to your live application in Wowza Streaming Engine, or if you've set up Wowza Transcoder to transcode the incoming live stream to multiple output renditions with different bitrates, and you want to send all of the renditions to your CDNvideo application, you must create a Stream Target for each rendition and configure a corresponding stream at the destination. Your CDNvideo application can ingest up to 3 streams. For more information, see the CDNvideo documentation if you need help with configuring its service to ingest multiple streams.

After the live application is created in Wowza Streaming Engine, create a stream target for each stream (up to 3) that you want to the CDNvideo destination.

  1. In the contents panel, click Stream Targets, and then click Add Stream Target.
  2. On the Add Stream Target page under Generic Target Destinations, click RTMP. CDNvideo receives the stream over RTMP.
  3. On the RTMP Configuration page, provide the following information:
    • Stream Target Name - A descriptive name for this target setup in Wowza Streaming Engine. The name must be unique and can't contain less-than (<), greater-than (>), colon ( : ), quotation (' and "), forward slash (/), backslash (), pipe (|), question mark (?), asterisk (*), double-dot (..), or tilde (~) characters.
    • Source Stream Name - The name of the encoded stream output in your video source encoder or camera configuration.
      Note: You can also view the encoded stream name(s) by going to the Incoming Streams feature for your live application and viewing the stream names in a list.
    • Destination Application Name - The name of the application in the CDNvideo destination URL provided to you. For example, if the URL is:
      rtmp://pub1.rtmp.s01.l.customer.cdnvideo.ru/wowzatest

      the application name is wowzatest.
    • Destination Host - The hostname or IP address in the CDNvideo destination URL provided to you. For example, if the URL is:
      rtmp://pub1.rtmp.s01.l.customer.cdnvideo.ru/wowzatest

      the host is pub1.rtmp.s01.l.customer.cdnvideo.ru.
    • Destination Port - The port number for your connection. RTMP connections use port 1935 by default.
    • Destination Stream Name - The name of the stream that you specified in your CDNvideo configuration request combined with an authorization token sent to you by CDNvideo. For example:
      <stream_name>?auth=123456abcdefg
  4. Click Add this target.
Note: If you want to send a multiple streams to the CDNvideo application, you must create a stream target for each stream rendition (you can send up to 3 streams to the CDNvideo application). Repeat the steps above in Create a stream target to send the stream to CDNvideo for each rendition that you want to send to CDNvideo. The easiest way to do this is to create a stream target for the first stream, and then click the Copy icon for the target and change the Stream Target Name, Source Stream Name, and Destination Stream Name in the new target.

Enable Stream Targets


Before you stream, you must enable the Stream Targets feature for the Wowza Streaming Engine application and the stream target you created.

If you don't see a checkmark next to Stream Targets in the contents panel of the application, click Stream Targets in the contents panel and then click Enable Stream Targets. When prompted, click Restart Now so your change takes effect. When Stream Targets is enabled, a checkmark appears next to Stream Targets in the contents panel and the Stream Targets page shows Status is Enabled.

If the Status of an individual stream target is Disabled, click the Enable icon for the stream in the Actions column.


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

  • Waiting. The target is enabled but isn't pushing the stream to the CDNvideo destination yet. This happens if the target's configured source stream isn't connected to the Wowza Streaming Engine input or Wowza Streaming Engine hasn't finished initializing the connection to the CDNvideo destination.
  • Active. The Wowza Streaming Engine instance successfully connected to the CDNvideo destination and is actively pushing the stream.
  • Error. The Wowza Streaming Engine instance failed to connect to the CDNvideo destination. Make sure the target's configured source stream is connected to the Wowza Streaming Engine input. Errors might be due to an invalid target configuration or issue with the destination server.

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.

Start and test the live stream


Configure your encoder and then test the live stream.

  1. Start the stream in the H.264 camera or encoder that's sending the stream to the live application in Wowza Streaming Engine.

    The live application ingests the live stream and sends it to the CDNvideo target destination.
  2. In Wowza Streaming Engine, verify that the stream is working by clicking Incoming Streams, and then clicking the stream name.

    The stream details page displays the Status of the stream (Active) as well as details about connections, uptime, and throughput for the live stream.
  3. Verify that CDNvideo is receiving the stream and distributing it to endpoints across its network. To do this, refer to the email message from CDNvideo in response to your stream request. The email message will have URLs for a test player webpage that you can use to test RTMP video playback. You'll also be provided with RTMP and Apple HLS playback URLs that you can use for playback on players that support these streaming protocols.
  4. Stop the stream in the source camera or encoder to end your test connection.

More resources