Multi-Platform Simultaneous Streaming: One Capture, Multiple Destinations

How-to: Achieve Multi-Platform Live Streaming with Happytime RTMP Pusher

Why Multi-Destination Streaming?

Imagine this scenario: you're hosting a product launch and need to simultaneously reach overseas audiences on YouTube, domestic users on Bilibili, and internal employees on a private RTMP server. The traditional approach requires multiple computers running multiple OBS instances — not only wasteful in resources but also prone to desynchronization and stream interruptions.

Multi-destination push is designed precisely to solve this pain point — it allows you to push a single audio/video source to multiple RTMP servers or CDNs simultaneously.

Its core values are:

  • Wider reach: No need to choose between mainstream and niche platforms — you can cover audiences on all platforms at once
  • Reduced single point of failure: If one platform experiences issues or rate limiting, streams on other platforms remain unaffected
  • Time and effort savings: Configure once, output uniformly — eliminate repetitive setup and multiple push operations
  • Maximized content ROI: One live event, multiple channels — significantly improved content return on investment

Prerequisites

  • Happytime RTMP Pusher: Download from the official website. This portable command-line tool requires no installation — just run it directly
  • RTMP push URLs and stream keys for each target platform: Obtain these from platforms such as YouTube Live, Facebook Live, Twitch, Bilibili Live, etc.
  • Stable upstream network bandwidth: Total bandwidth consumption equals the sum of bitrates of all push streams. It is recommended that upstream bandwidth be at least 1.5 times the total bitrate

Configuration Steps

Happytime RTMP Pusher's multi-destination push is implemented by editing the configuration file rtmppusher.cfg. The core idea is to define multiple <pusher> nodes in the configuration file, each representing an independent push target.

Step 1: Obtain RTMP URLs from Target Platforms

Example for three common platforms:

Platform RTMP URL Format
YouTube Live rtmp://a.rtmp.youtube.com/live2/your_stream_key
Twitch rtmp://live.twitch.tv/app/your_stream_key
Facebook Live rtmp://live-api-s.facebook.com:80/rtmp/your_stream_key
Self-hosted RTMP Server rtmp://your_server_ip/live/stream_name

Step 2: Edit the rtmppusher.cfg Configuration File

Below is a complete configuration example that pushes the screen to YouTube Live, Twitch, and a self-hosted server simultaneously:

<config>

    <!-- Target 1: YouTube Live -->
    <pusher>
        <srcurl>screenlive+audiodevice</srcurl>
        <dsturl>rtmp://a.rtmp.youtube.com/live2/your_youtube_stream_key</dsturl>
        <width>1920</width>
        <height>1080</height>
        <framerate>30</framerate>
        <videobitrate>2500</videobitrate>
    </pusher>

    <!-- Target 2: Twitch -->
    <pusher>
        <srcurl>screenlive+audiodevice</srcurl>
        <dsturl>rtmp://live.twitch.tv/app/your_twitch_stream_key</dsturl>
        <width>1920</width>
        <height>1080</height>
        <framerate>30</framerate>
        <videobitrate>2500</videobitrate>
    </pusher>

    <!-- Target 3: Self-hosted RTMP Server -->
    <pusher>
        <srcurl>screenlive+audiodevice</srcurl>
        <dsturl>rtmp://192.168.1.100/live/production_stream</dsturl>
        <width>1920</width>
        <height>1080</height>
        <framerate>30</framerate>
        <videobitrate>2500</videobitrate>
    </pusher>

</config>

Key notes:

  • <srcurl> defines the input source: screenlive for screen capture, audiodevice for audio device capture. You can also use a camera (videodevice), local media file (filename), or RTSP stream (rtsp://...) as the input source.
  • Each <pusher> node defines an independent push target. RTMP Pusher will push to all targets simultaneously — truly "one capture, multiple destinations".
  • Resolution, frame rate, video bitrate and other parameters can be adjusted individually based on each platform's best practices.

Step 3: Start Pushing

Place the configuration file in the same directory as RTMP Pusher and run the following command:

rtmppusher.exe -c rtmppusher.cfg

Step 4: Verify the Stream

  • Check the live dashboard or backend of each target platform to confirm the stream is received
  • Use an RTMP player (e.g., VLC, FFplay) to pull the stream for verification: ffplay rtmp://destination_address

Configuration for Different Input Sources

RTMP Pusher supports various input source types. Choose flexibly based on your scenario:

Input Source Type srcurl Example Use Case
Screen + Microphone screenlive+audiodevice Desktop streaming, game streaming
Camera + Microphone videodevice0+audiodevice Presenter‑facing live streaming
Local video file myvideo.mp4 Looped programming, recorded content
RTSP camera rtsp://192.168.1.100:554/stream1 Video surveillance to cloud
Application window window (with window title config) Software demos, tutorial recording

Best Practices

1. Bandwidth Planning

When pushing multiple destinations, total bandwidth consumption equals the sum of bitrates of all push streams. For the example above (3 streams at 2500 kbps each), total upstream bandwidth requirement is approximately 7.5 Mbps. It is recommended to reserve at least 20% headroom, i.e., no less than 9 Mbps.

2. Encoding Parameter Optimization

  • Resolution and bitrate matching: 1080p@30fps recommended bitrate 2500-4000 kbps; 720p@30fps recommended 1500-2500 kbps
  • H.265 encoding: If all target platforms support H.265, use this codec to save 30%-50% bandwidth compared to H.264
  • Audio encoding: AAC recommended, 44100 Hz sample rate, 128 kbps bitrate

3. Cross-Platform Operation

RTMP Pusher supports Windows, Linux, macOS, and even embedded Linux environments. It can run directly on edge devices without relying on a PC host.

Important Notes

  • Network stability: Multi-destination pushing demands higher upstream network quality. Wired connections are strongly recommended over WiFi.
  • Platform restrictions: Some live platforms have upper limits on bitrate and resolution. Check each platform's technical specifications in advance.
  • Latency considerations: RTMP push inherently has low latency (typically 3-5 seconds), but CDN distribution latency may vary across platforms.
  • Test before going live: Before a formal live event, test connectivity for all destinations in non-public mode.

Summary

Happytime RTMP Pusher's multi-destination push functionality turns the ideal of "one capture, multiple destinations" into reality. With simple configuration file editing, you can distribute a single audio/video source to multiple RTMP platforms simultaneously — reducing operational costs for streamers and content creators while improving the reach of live content. Whether you're a content creator covering multiple social platforms or a system integrator sending surveillance feeds to the cloud, this feature delivers tangible efficiency gains.