{{ page.title }}

{{ page.description }}

Overview

general-block-diagram
Block Diagram

RTMP (or RTMPS) output lets you simulcast a Brightcove Live event to social platforms. This guide covers both the programmatic API approach and the Live module point‑and‑click approach. Notes:

Adding RTMP Outputs to a new Channel

  1. While Creating a New Channel, scroll down to the RTMP Output section.
  2. Add your Output Url and select your renditions.

  3. Click Add RTMP Output

Adding RTMP Outputs to previously created Channels

With Live 2.0, you can add RTMP Outputs to Channels that have already been created.
To do this; select your Channel and scroll down to the RTMP Output section.

Streaming to Facebook Live

Facebook Live lets you broadcast to your followers through a Page or profile. The steps below assume your Facebook account is already enabled for live streaming (see Facebook documentation for details).

  1. Log in to Facebook  → create a new post  → click Live Video.
  2. In Go Live, click Create Live Video. Close the “Video Producer” dialog if it appears.
  3. Under Select a video source, choose Streaming Software.
  4. Facebook displays a Stream Key. Expand Advanced Settings to reveal the Server URL.
  5. Copy the Server URL.
  6. Follow the steps for Adding RTMP Outputs to a new Channel or Adding RTMP Outputs to previously created Channels.
  7. Back in Facebook, the preview appears — add your post details, then click Go Live.
  8. When finished, in Facebook locate the post  → Edit Live Video  → End Live Video. Stop your encoder as well.

Streaming to YouTube Live

Before your first livestream, enable your YouTube channel for live streaming (can take up to 24 hours). See the YouTube docs.

  1. Log in to YouTube  → open YouTube Studio.
  2. Click CREATE > Go Live.
  3. In the left menu, choose Stream.
  4. YouTube shows a Stream Key and Stream URL.
  5. Copy the Stream URL to clipboard.
  6. Follow the steps for Adding RTMP Outputs to a new Channel or Adding RTMP Outputs to previously created Channels.
  7. YouTube shows the preview  → click Go Live.
  8. When finished, click END STREAM in YouTube Studio. A VOD copy is automatically published. Stop the encoder.

Configuring RTMP Restream Outputs with the Live API

You can add RTMP (or RTMPS) restream targets to a Brightcove Live channel by including them in the job definition you send to the Live API.

  • To create a live job with RTMP outputs, send a POST request to:

            
    https://api.live.brightcove.com/v2/accounts/{account_id}/jobs
            
          

    Example request body (please adjust to your needs):

            {
      "type": "channel",
      "name": "Live RTMP Output",
      "region": "us-east-1",
      "input": {
        "protocol": "srt",
        "fixed_ingest_ip": false
      },
      "outputs": {
        "video": [
          {
            "label": "hls270p",
            "height": 270,
            "width": 480,
            "bitrate": 450000,
            "codec": "h264",
            "codec_options": { "level": "3", "profile": "main" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 675000,
            "max_bitrate": 540000
          },
          {
            "label": "hls360p",
            "height": 360,
            "width": 640,
            "bitrate": 780000,
            "codec": "h264",
            "codec_options": { "level": "3", "profile": "main" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 1170000,
            "max_bitrate": 936000
          },
          {
            "label": "hls540p",
            "height": 540,
            "width": 960,
            "bitrate": 1500000,
            "codec": "h264",
            "codec_options": { "level": "3.2", "profile": "main" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 2250000,
            "max_bitrate": 1800000
          },
          {
            "label": "hls720p",
            "height": 720,
            "width": 1280,
            "bitrate": 2400000,
            "codec": "h264",
            "codec_options": { "level": "4", "profile": "high" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 3600000,
            "max_bitrate": 2880000
          },
          {
            "label": "hls1080p",
            "height": 1080,
            "width": 1920,
            "bitrate": 4500000,
            "codec": "h264",
            "codec_options": { "level": "4.2", "profile": "high" },
            "framerate": "30/1",
            "num_b_frames": 3,
            "num_reference_frames": 4,
            "keyframe_rate": 0.5,
            "sample_aspect_ratio": "1:1",
            "decoder_buffer_size": 6750000,
            "max_bitrate": 5400000
          }
        ],
        "audio": [
          {
            "label": "aac1",
            "input_selector_name": "default",
            "language_code": "eng",
            "codec": "aac",
            "bitrate": 128000,
            "sample_rate": 48000
          }
        ],
        "rtmp": [
          {
            "label": "primary_rtmp",
            "url": "rtmp://primary.example.com/live/stream_key_1",
            "video_label": "hls1080p",
            "audio_label": "aac1"
          },
          {
            "label": "backup_rtmp",
            "url": "rtmps://backup.example.com/live/stream_key_2",
            "video_label": "hls720p",
            "audio_label": "aac1"
          }
        ]
      },
      "manifest": {
        "name": "playlist",
        "segment_duration_seconds": 6,
        "playlist_window_seconds": 30,
        "hls": {}
      },
      "maintenance_preferences": {
        "day": "WEDNESDAY",
        "start_time": "02:00"
      },
      "playback_rights_id": "primary"
    }
          

Billing & Limitations

Additional Limitations

  • RTMP output to LinkedIn is not supported at this time.