The Real Time Messaging Protocol (RTMP) is the most common way to stream to video streaming platforms. Gcore Live Streaming supports both RTMP and RTMPS.

RTMP is limited to the H264 codec. If you want to use other codecs, please use SRT instead.

We plan to support H265/HVEC and other extensions from the Enhanced RTMP specification. Stay tuned for updates.

Push streams

Gcore Video Streaming provides two endpoints for pushing a stream: the default one and a backup one. The default endpoint is the one closest to your location. The backup endpoint is in a different location and is used if the default one is unavailable.

By default, Gcore will route your stream to free ingest points with the lowest latency. If you need to set a fixed ingest point or if you need to set the main and backup ingest points in the same region (i.e., to not send streams outside the EU or US), please contact our support team.

Obtain the server URLs and stream key

There are two ways to obtain the server URLs and stream key: via the Gcore Customer Portal or via the API.

Via the Gcore Customer Portal

  1. In the Gcore Customer Portal, navigate to Streaming > Live Streaming.

  1. Click on the stream you want to push to. This will open the Live Stream Settings.

  1. Ensure that the Ingest type is set to Push.
  2. Ensure that the protocol is set to RTMP or RTMPS in the URLs for encoder section. 5. Copy the Server URL and Stream Key from the URLs for encoder section.

Via the API

You can also obtain the URL and stream key via the Gcore API. The endpoint returns the complete URLs for the default and backup ingest points and the stream key.

Example of the API request:

GET /streaming/streams/{stream_id}

Example of the API response:

{
  "push_url": "rtmp://vp-push-anx2.domain.com/in/123?08cd54f0",
  "backup_push_url": "rtmp://vp-push-ed1.domain.com/in/123b?08cd54f0",
  ...
}

Read more in the API documentation.

Pull streams

Gcore Video Streaming can pull video data from your external server.

Main rules of pulling:

  • The URL of the stream to pull from must be publicly available and return a 200 status for all requests.
  • You can specify multiple media servers (separated with space characters) in the URL input field. The maximum length of all URLs is 255 characters and the round robin is used when polling the list of specified servers.
  • If a stream is closed (i.e., its connection is terminated) or there is no video data in the stream for 30 seconds, then the next attempt will be made in the next steps progressively (10s, 30s, 60s, 5min, 10min).
  • The stream will be deactivated after 24 hours of inactivity.
  • If you need to set an allowlist for access to the stream, please contact support to get an up-to-date list of networks.

Setting up a pull stream

There are two ways to set up a pull stream: via the Gcore Customer Portal or via the API.

Via the Gcore Customer Portal

  1. In the Gcore Customer Portal, navigate to Streaming > Live Streaming.

  1. Click on the stream you want to pull from. This will open the Live Stream Settings.

  1. Ensure that the Ingest type is set to Pull.
  2. In the URL field, insert a link to the stream from your media server.
  3. Click the Save changes button on the top right.

Via the API

You can also set up a pull stream via the Gcore API. The endpoint accepts the URL of the stream to pull from.

Example of the API request:

PATCH /streaming/streams/{stream_id}
{
  "stream": {
    "pull": true,
    "uri": "rtmp://example.com/path/to/stream",
    ...
  }
}

Read more in the API documentation.