Skip to content

RTMP server

Experimental

An input type that allows Smelter to receive streams over RTMP. Each input starts a separate RTMP server.

Usage

To use RTMP server input you must register it first. You can do it by sending a request like this:

Example request

POST: /api/input/:input_id/register
Content-Type: application/json
{
"type": "rtmp_server",
"url": "rtmp://127.0.0.1:1935"
}

See HTTP Routes documentation to learn more about managing inputs.

Once the RTMP server input is registered and Smelter is listening on the configured URL, you can push a stream to it using any RTMP-compatible broadcaster (f.e. OBS, FFmpeg).

Reference

Type definition

type RtmpServerInput = {
type: "rtmp_server";
url: string;
required?: bool;
offset_ms?: f64;
decoder_map?: DecoderMap;
}

Parameters for registering an RTMP server input.

Properties

url

URL where the RTMP server will listen for incoming stream.
Format: rtmp://<ip_address>:<port>

  • Type: string

required

Determines if the input stream is essential for output frame production. If set to true and the stream is delayed, Smelter will postpone output frames until the stream is received.

  • Type: bool
  • Default value: false

offset_ms

Offset in milliseconds relative to the pipeline start (start request). If unspecified, the stream synchronizes based on the delivery time of the initial frames.

  • Type: f64

decoder_map

Assigns which decoder should be used for media encoded with a specific codec.

DecoderMap

Maps codecs to the provided decoders.

Type definitions

type DecoderMap = {
h264?: 'ffmpeg_h264' | 'vulkan_h264';
};

Properties

h264

H264 decoder configuration.

  • Type: 'ffmpeg_h264' | 'vulkan_h264'
  • Default value: If available vulkan_h264 will be used, otherwise ffmpeg_h264
  • Supported values:
    • "ffmpeg_h264" - Software H264 decoder based on FFmpeg.
    • "vulkan_h264" (Required feature: vk-video ) - Hardware decoder. Requires GPU that supports Vulkan Video decoding.