How To Use Stream Targets For Simulcasting And Restreaming
Stream targets let Wowza Streaming Engine send one live stream to YouTube, Facebook, a CDN such as Akamai, or any Real-Time Messaging Protocol (RTMP), Secure Reliable Transport (SRT), or WebRTC-HTTP ingestion protocol (WHIP) endpoint at the same time. Simulcasting and restreaming both use stream targets, so one encoder and one Wowza Streaming Engine application can reach every destination an event needs.

Setting up a stream target takes a few minutes in Wowza Streaming Engine Manager. Many stream target support requests follow the same pattern, where a target works for weeks or months and then stops after a platform changes a key, token, or permission.
This guide explains what stream targets are, shows how to set them up for simulcasting and restreaming, and the fixes for a stream target when it stops working.
What Is A Stream Target?
A stream target is a destination that Wowza Streaming Engine pushes a live stream to, such as a social media platform, a CDN (content delivery network), or another media server. Stream targets are how a Wowza Streaming Engine application sends a live stream to CDNs and multi-protocol services. This has also been called “push publishing” in the past.
Stream targets deliver video feeds to three types of destinations. First, stream targets can feed content into third-party platforms like YouTube Live, Facebook Live, and Akamai. It is important to note that Akamai is discontinuing MSL4 as of December 31, 2026. Anyone using Akamai should upgrade to Wowza Streaming Engine version 4.12 and integrate MSL5 to avoid facing a hard cutoff on Jan 1, 2027. Second, stream targets can be configured to deliver content over protocols like RTMP, RTMPS, SRT, MPEG-TS, WHIP endpoints, or RTP destinations. Third, Wowza has a proprietary Wowza CDN that acts as a stream target destination, but any Wowza Streaming Engine instance can also be designated as a stream target. This allows users to build simulcasting and restreaming workflows that derive from one central feed, delivered at scale with reliability.
Configure stream targets in Wowza Streaming Engine Manager or through the REST API. Configuration via Wowza Streaming Engine Manager is the simplest option because it requires no module installation or map file edits.
Why Use Stream Targets?
Stream targets remove the need for a separate encoder or upload for each destination. One source stream feeds every target, and Wowza Streaming Engine manages the connection to each platform. Teams use stream targets to reach audiences on several social platforms at once, to have a CDN handle large-scale audience delivery, and to move streams between servers in a distributed workflow.
What Is The Difference Between Simulcasting And Restreaming?
Simulcasting and restreaming are similar in that both repurpose a single original feed for multiple delivery destinations at once. Simulcasting splits the source stream and sends it to several destinations at the same time. Restreaming forwards a live stream that a media server has already ingested to another platform, CDN, or another media server. Wowza Streaming Engine runs both workflows on stream targets, and one application often does both at once. Read our guide on What Is Simulcast? to learn more about simulcasting.
How Do Stream Targets Work In Wowza Streaming Engine?
Each stream target belongs to a live application and sends one incoming stream to one destination. The incoming stream’s name goes in the Source Stream Name field. When that source stream connects, Wowza Streaming Engine opens a connection to the destination and starts pushing. Stream targets need to be enabled for the application and for each individual target. Wowza Streaming Engine Manager will then prompt a restart so the changes take effect.
The Stream Targets page in Wowza Streaming Engine Manager shows one of three statuses for each enabled target. Statuses refresh automatically when an application has fewer than 100 stream targets. Applications with more than 100 targets need an active Refresh to update them.
| Status | What it means | What to check first |
|---|---|---|
| Waiting | The target is enabled, but the source stream isn’t connected to Wowza Streaming Engine, or Wowza Streaming Engine hasn’t finished initializing the connection. | The source stream name and the incoming stream |
| Active | Wowza Streaming Engine is connected to the destination and is pushing the stream. | The stream on the destination platform itself |
| Error | Wowza Streaming Engine tried to connect to the destination and failed. | The destination, credentials, and target settings |
An Active status confirms the connection from Wowza Streaming Engine. It doesn’t confirm that the platform accepted the stream and published it. For SRT stream targets, the documentation notes that the status can show Active while Wowza Streaming Engine is still attempting to connect, and then change to Waiting or Error if the connection fails. Check the destination’s own dashboard, such as YouTube Live Studio or Facebook Live Producer, before treating a target as healthy.
How To Set Up Stream Targets For Simulcasting To YouTube and Facebook
Simulcasting to YouTube Live and Facebook Live takes one live application, one connected source stream, and one stream target per platform. The steps below follow the Stream to YouTube and Stream to Facebook Live guides.
- Connect the encoder to a live application in Wowza Streaming Engine and note the stream name on the Incoming Streams page.
- In the application’s contents panel, click Stream Targets, and then click Add Stream Target.
- Under Third-Party Target Destinations, choose YouTube Live or Facebook Live, and enter the incoming stream name as the Source Stream Name.
- Complete the destination fields described below and click Add this target.
- Repeat steps 2 through 4 for each additional platform, with the same Source Stream Name.
- Enable stream targets for the application and click Restart Now when prompted.
- Start the stream, confirm that each target reports Active, and then confirm the stream on each platform.
What Does A YouTube Live Stream Target Need?
Wowza Streaming Engine sends YouTube Live targets over RTMP. Each field maps to the Stream URL and stream key in YouTube Live Control Room in YouTube Studio:
- Destination Host is where you enter the server address from the Stream URL, such as abc.rtmp.youtube.com.
- Destination Application Name is where you enter the application after the host, such as live2.
- Destination Application Instance can stay blank.
- Destination Stream Name is where you enter the 20-character alphanumeric code that the Copy button in YouTube Live Control Room gives you. The label given to the stream key in YouTube Studio doesn’t work in this field.
The source stream needs an audio track and a keyframe at least every two seconds, never more than four seconds apart. A video-only source can get an audio track through ModuleAddAudioTrack. YouTube automatically creates lower-bitrate renditions for adaptive bitrate playback, with no additional configuration.
What Does A Facebook Live Stream Target Need?
The Facebook Live stream target authorizes with a Facebook login instead of a stream key. Click Login, grant Wowza Streaming Engine permission to post, and choose the Video Destination. Wowza Streaming Engine sends the stream to Facebook over RTMPS whenever possible. A Facebook Live setup requires a source with AAC audio and a keyframe at least every two seconds. Facebook ends live video posts after 8 hours. Wowza Streaming Engine will automatically start a new post with the same settings.
Meta also requires an account that is at least 60 days old, and a Page or professional mode profile needs at least 100 followers to go live (more details can be found on the Facebook Help Center). Wowza recommends no more than 10 Facebook stream targets per Facebook account running at the same time. For additional simultaneous stream targets, a second Facebook account is recommended.
How Do Source Settings Affect A Simulcast?
A simulcast has to meet the strictest requirement across every destination. For YouTube and Facebook together, the source needs an audio track and a keyframe at least every two seconds. Every target also sends its own copy of the stream, so outbound bandwidth grows with each destination. The Simulcast to Facebook and YouTube with Wowza Streaming Engine video tutorial walks through the same setup on screen.
How to Restream To A CDN, Custom RTMP Destination, Or Another Server
Restreaming follows the same stream target workflow, but with a generic or Wowza destination in place of a social platform. Choose the destination type under Generic Target Destinations, or choose the dedicated target type for Akamai or Wowza CDN.
What Does A Generic RTMP Stream Target Need?
Generic RTMP targets fail when parts of a destination URL land in the wrong fields. Use RTMP to distribute live streams, and take care to avoid making the following common mistakes:
| Field | What it holds | Common mistake |
|---|---|---|
| Destination Host | The hostname or IP address of the RTMP server | Leaving the rtmp:// prefix in place |
| Destination Port | The connection port (1935 by default for RTMP) | Using the default when the provider specifies another port |
| Destination Stream Name | The stream name or stream key at the destination | Using an old or expired stream key |
| User Name and Password | Credentials for destinations that require authentication | Leaving them blank when the destination requires them |
When Does A Stream Target Need RTMPS?
RTMPS (RTMP over TLS/SSL) encrypts the connection between Wowza Streaming Engine and the destination, and some platforms require it. Facebook has required RTMPS for all live video posts since May 1, 2019.
To send RTMPS from a generic RTMP target, set Secure Sockets Layer (SSL) Encryption to true on the target’s Advanced tab, or add “sendSSL”:”true” to the target’s entry in the PushPublishMap.txt file. The Advanced tab requires a Wowza Streaming Engine Manager administrator account with advanced permissions.
How Do Stream Targets Handle Adaptive Bitrate Streams?
ABR (adaptive bitrate) streaming delivers several renditions of one stream so video players can dynamically switch between resolutions and adapt to fluctuating network conditions. To push an ABR stream to a generic RTMP destination, create one stream target per rendition and a matching stream at the destination. Then, set Adaptive Streaming to true on the Advanced tab of each target. The Copy icon on the Stream Targets page speeds this up, and putting the bitrate in each Stream Target Name keeps the set readable. Akamai also accepts an ABR set through a single stream target, through the REST API or map file.
Which Restreaming Destinations Does Wowza Streaming Engine Support?
Wowza Streaming Engine supports the following restreaming destinations:
- Akamai: Learn about Akamai configuration, including primary and backup destinations, here: https://www.wowza.com/docs/how-to-stream-to-akamai
- Wowza CDN: Wowza Streaming Engine pushes a single stream or a set of transcoded ABR renditions straight to a Wowza CDN for HTTP Live Streaming (HLS) delivery, in versions 4.8.23 and later.
- Wowza Streaming Engine: Send the stream to a second instance for distributed delivery.
- SRT and WHIP endpoints: SRT targets push over Secure Reliable Transport, and WebRTC WHIP targets in Wowza Streaming Engine 4.12 and later publish to any WHIP endpoint, such as a CDN or another media server.
- Cloud storage: Send HLS content to cloud storage services, like AWS S3.
Targets created or edited through the REST API follow the same rules.
Why Do Stream Targets Stop Working?
A stream target that stops working after weeks of normal use usually fails because something changed at the destination. Check the destination, credentials, and permissions first, then the target settings, and then the logs. Use our guide to troubleshoot problems upstream of stream targets, such as ingest failures and codec mismatches: Troubleshooting Wowza Streaming Engine Configuration Issues
Step 1: Check The Destination, Credentials, And Permissions
Open the platform’s own dashboard and look for ingest errors or account restrictions. YouTube Live Control Room reports stream health and errors for the incoming stream. For CDNs and custom RTMP endpoints, confirm with the provider that the ingest endpoint, stream ID, or event still exists.
Next, refresh any expired credentials. Stream keys and access tokens expire, rotate, or lose their authorization, and a target that stores an old key or token will keep trying to connect until it ultimately fails.
- For YouTube Live targets, copy the current stream key code from YouTube Live Control Room and paste it into the stream target’s Destination Stream Name field.
- For Facebook Live targets, the Facebook user access token becomes invalid when it expires, when someone changes the Facebook account password, or when someone removes the Wowza Streaming Engine app’s Facebook permissions. Edit the target in Wowza Streaming Engine Manager, log in to the Facebook account again, and save the stream target.
- For generic RTMP stream targets to Facebook, Facebook won’t accept a standard stream key on more than one live video. Each new live video needs a fresh key in the target, unless the account uses a persistent stream key.
Schedule these fixes between broadcasts. Editing and saving a Facebook stream target can close the active Facebook live video post, and Wowza Streaming Engine will start a new post when the stream resumes.
Finally, check the permissions. Wowza Streaming Engine can only post where the connected account has permission to post. The Facebook Live target’s My Pages list shows a maximum of 25 Pages. A Page missing from the list may mean the account lacks permission to post to that page.
Step 2: Check The Target Settings
If the destination accepts streams and the credentials are current, check the stream target itself.
- Confirm that stream targets are enabled for the application and for the target.
- If a stream target shows as Disabled, click Enable in the Actions column, then restart.
- Match the Source Stream Name to the name on the Incoming Streams page.
- A renamed encoder output or a new transcoder rendition name can stop a target that used to work properly.
- Recheck the destination fields, the RTMPS setting, and the ABR settings against the generic RTMP setup steps.
Why Is A Wowza Stream To YouTube Live Not Working?
A YouTube Live stream target usually stops delivering because of a stream key mismatch, a missing audio track, or an event problem on the YouTube side. Confirm the current stream key code, audio track, and keyframe interval of two seconds or less. Then, open the event in the YouTube Live Control Room and check for a stream preview and any Live Control Room errors.
Why Is A Facebook Live Stream Target Failing Or Missing Pages?
Most Facebook Live target failures trace back to an invalid access token, a Page permission, or a stream that doesn’t meet Facebook’s requirements. Here are three more checks:
- Check Facebook Live API URLs
- An RTMP URL generated by the Facebook Live API requires a generic RTMP target in place of the Facebook Live target.
- Remove the rtmp:// prefix, and click Go Live on Facebook, otherwise the stream stays in preview.
- Check Timeouts
- A timeout can cause intermittent failures.
- Add the custom property facebook.readWriteTimeout to the target with a value of 15000 milliseconds (the default is 6000). Then, restart the application.
- Check REST API Targets
- Avoid editing a Facebook target in Wowza Streaming Engine Manager after creating it through the REST API.
- Learn more about streaming to Facebook Live with the Wowza Streaming Engine REST API.
Why Does An Akamai Stream Target Show An Error?
An Akamai stream target shows an Error when the source stream is unavailable, the target configuration is incorrect, or the Akamai destination has a problem. Confirm that the stream still exists in Akamai Control Center and that its ingest credentials match the target. When a target sends to both a primary and a backup destination, verify each one separately on the Akamai side. A healthy primary connection doesn’t confirm that the backup path works.
Why Is A Generic RTMP Or SRT Stream Target Not Connecting?
Generic targets fail most often on field formatting, authentication, or the network path to the destination. Recheck the field table earlier in this guide, then confirm that a firewall allows outbound traffic to the destination port. For SRT targets, the Connect Timeout property (Wowza Streaming Engine 4.8.5 and later) sets how long Engine waits for the destination to respond, in milliseconds (Use SRT to distribute live streams).
How To Find The Cause Of Stream Target Issues In Wowza Streaming Engine Logs
The Wowza Streaming Engine logs confirm whether a stream target started, which destination it tried to reach, and why a connection might have failed. First, check the access log. When a target starts a session, Wowza Streaming Engine writes a ModulePushPublish.startPublishSession message to [install-dir]/logs/wowzastreamingengine_access.log. The message lists the target profile and the full destination URL, which makes a mistyped host or stream name easy to spot. A missing message after the application starts points to a configuration problem in the target or map file.
Next, enable the pushPublishDebug property. This application-level custom property adds logging for map file entries, source stream detection, and every published stream and its destination. Add it to the application’s Properties tab under Custom. Then, turn on the target’s Debug Log option. Set Debug Log to true on a target’s Advanced tab to record target-specific errors. For Facebook Live targets, this setting writes a “token is invalid” message to [install-dir]/logs/wowzastreamingengine_error.log when the access token expires.
Debug logging can produce very large log files. Don’t forget to turn it off after identifying the cause.
Stream Target Troubleshooting Checklist
This checklist matches common stream target symptoms to their most likely causes. Work through it to troubleshoot your issues, and if nothing works reach out and open a support ticket.
| Symptom | Likely cause | Where to check | Fix |
|---|---|---|---|
| Target stuck in Waiting | The source stream isn’t connected, or its name doesn’t match | Incoming Streams page | Match the Source Stream Name to the incoming stream |
| YouTube target shows Error | The stream key changed, or fields hold the wrong parts of the Stream URL | YouTube Live Control Room | Copy the current stream key code into Destination Stream Name |
| Facebook target shows Error | The Facebook access token is invalid | wowzastreamingengine_error.log with Debug Log on | Edit the target, log in to Facebook again, and save |
| Facebook Page missing from My Pages | The account can’t post to the Page, or the list reached its 25-Page limit | Facebook Page roles | Grant the connected account posting access |
| Target shows Active, but nothing plays | The platform rejected the stream, or the event isn’t live | Platform dashboard | Check audio, keyframe interval, and the platform’s Go Live step |
| Generic RTMP target fails to connect | URL parts sit in the wrong fields, or the destination requires RTMPS | Target settings | Remove rtmp:// from the host, and set SSL Encryption to true |
| ABR set arrives incomplete | A rendition lacks a target, or Adaptive Streaming is off | Each target’s Advanced tab | Create one target per rendition with Adaptive Streaming set to true |
| Akamai backup receives nothing | No test has confirmed the backup destination | Akamai Control Center | Verify the primary and backup destinations separately |
For issues the checklist doesn’t resolve, Wowza’s Community and Wowza Support can help.
Keep Simulcasting And Restreaming With Stream Targets
Stream targets turn one Wowza Streaming Engine application into a simulcasting and restreaming hub for YouTube Live, Facebook Live, CDNs, and other servers. Setup takes a source stream name, the right destination fields, and an enabled target. Most later failures start at the destination with an expired stream key, a revoked access token, or a lost posting permission, so checking the destination, then target settings, and then the logs resolves most stream target problems without a support ticket.
The stream targets overview and the destination guides linked above cover setup in full. For help designing or scaling a Wowza Streaming Engine simulcasting or restreaming workflow, talk to a Wowza expert.
Frequently Asked Questions
What is a stream target?
A stream target is a destination that Wowza Streaming Engine pushes a live stream to, such as YouTube Live, Facebook Live, a CDN, or another media server. In Wowza Streaming Engine 4.2 and later, stream targets can be configured in the Wowza Streaming Engine Manager or the PushPublishMap.txt file. Wowza Streaming Engine 4.3 and later support stream target configuration via the REST API.
What are stream targets used for?
Stream targets send one live source to several destinations without extra encoders. Common uses include simulcasting to social platforms, restreaming through a CDN such as Akamai, and distributing streams to other Wowza Streaming Engine instances.
What is the difference between simulcasting and restreaming?
Simulcasting sends the same live stream to several destinations at the same time. Restreaming forwards a live stream that a media server already receives to another platform, CDN, or server. Wowza Streaming Engine handles both workflows with stream targets.
How does Wowza Streaming Engine simulcast to YouTube and Facebook at the same time?
Wowza Streaming Engine simulcasts by adding one stream target per destination to the same live application. Each target uses the same Source Stream Name and pushes its own copy of the stream to its platform.
Why is my Wowza stream target stuck on Waiting?
A Wowza stream target shows as “Waiting” when its source stream isn’t connected or Wowza Streaming Engine hasn’t finished connecting to the destination. Confirm that the target’s Source Stream Name exactly matches a stream on the Incoming Streams page.
Why did my Facebook Live stream target stop working?
A Facebook Live target stops working when its Facebook access token becomes invalid. The token becomes invalid when it expires, when the account password changes, or when someone removes the app’s permissions. Edit the target in Wowza Streaming Engine Manager, log in to Facebook again, and save the target.
Why are Facebook Pages missing from a Wowza Facebook Live target?
The My Pages list in a Wowza Streaming Engine Facebook Live target displays a maximum of 25 Pages. A Page that doesn’t appear may also mean the connected Facebook account lacks permissions to post to it.
Why is my Wowza stream to YouTube Live not delivering?
A Wowza stream to YouTube Live usually stops delivering because the stream key changed or the source lacks an audio track. Copy the 20-character stream key code from YouTube Live Control Room into the stream target’s Destination Stream Name field, and confirm that the source has an audio track.
Does YouTube need an adaptive bitrate stream from Wowza Streaming Engine?
YouTube needs no extra configuration for adaptive bitrate playback. YouTube automatically creates lower-bitrate renditions from a single stream from the Wowza Streaming Engine YouTube Live stream target.
Can Wowza Streaming Engine send RTMPS to a custom destination?
Wowza Streaming Engine can send RTMPS from a generic RTMP stream target. Set the target’s Secure Sockets Layer (SSL) Encryption property to true on the Advanced tab, or add “sendSSL”:”true” to the target’s PushPublishMap.txt entry.
