Red5 · Schema

Red5 Pro Stream

Schema representing a live stream on a Red5 Pro server, including publishing configuration, subscriber tracking, and media codec details.

Live StreamingMediaReal-TimeRTMPStreamingVideoWebRTC

Properties

Name Type Description
name string Unique stream name identifier within the application scope
appName string Red5 Pro application scope that contains this stream
clientId string Identifier of the publishing client connection
status string Current operational status of the stream
protocol string Streaming protocol used by the publisher
duration integer Stream duration in milliseconds since publishing began
subscriberCount integer Number of currently active subscribers to this stream
bytesIn integer Total bytes received from the publisher
bytesOut integer Total bytes sent to all subscribers
video object
audio object
recording object
View JSON Schema on GitHub

JSON Schema

red5-stream-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.red5.net/schemas/stream.json",
  "title": "Red5 Pro Stream",
  "description": "Schema representing a live stream on a Red5 Pro server, including publishing configuration, subscriber tracking, and media codec details.",
  "type": "object",
  "required": ["name"],
  "properties": {
    "name": {
      "type": "string",
      "description": "Unique stream name identifier within the application scope",
      "maxLength": 255
    },
    "appName": {
      "type": "string",
      "description": "Red5 Pro application scope that contains this stream",
      "default": "live"
    },
    "clientId": {
      "type": "string",
      "description": "Identifier of the publishing client connection"
    },
    "status": {
      "type": "string",
      "description": "Current operational status of the stream",
      "enum": ["publishing", "idle", "error"]
    },
    "protocol": {
      "type": "string",
      "description": "Streaming protocol used by the publisher",
      "enum": ["rtmp", "webrtc", "rtsp", "srt"]
    },
    "duration": {
      "type": "integer",
      "description": "Stream duration in milliseconds since publishing began",
      "minimum": 0
    },
    "subscriberCount": {
      "type": "integer",
      "description": "Number of currently active subscribers to this stream",
      "minimum": 0
    },
    "bytesIn": {
      "type": "integer",
      "description": "Total bytes received from the publisher",
      "minimum": 0
    },
    "bytesOut": {
      "type": "integer",
      "description": "Total bytes sent to all subscribers",
      "minimum": 0
    },
    "video": {
      "$ref": "#/$defs/VideoTrack"
    },
    "audio": {
      "$ref": "#/$defs/AudioTrack"
    },
    "recording": {
      "$ref": "#/$defs/RecordingConfig"
    }
  },
  "$defs": {
    "VideoTrack": {
      "type": "object",
      "description": "Video track properties for a live stream",
      "properties": {
        "codec": {
          "type": "string",
          "description": "Video codec identifier (e.g., H264, H265, VP8)",
          "examples": ["H264", "H265", "VP8", "VP9"]
        },
        "width": {
          "type": "integer",
          "description": "Video frame width in pixels",
          "minimum": 1,
          "maximum": 7680
        },
        "height": {
          "type": "integer",
          "description": "Video frame height in pixels",
          "minimum": 1,
          "maximum": 4320
        },
        "frameRate": {
          "type": "number",
          "description": "Video frame rate in frames per second",
          "minimum": 1,
          "maximum": 120
        },
        "bitrate": {
          "type": "integer",
          "description": "Video bitrate in bits per second",
          "minimum": 0
        },
        "keyFrameInterval": {
          "type": "number",
          "description": "Interval between keyframes in seconds"
        }
      }
    },
    "AudioTrack": {
      "type": "object",
      "description": "Audio track properties for a live stream",
      "properties": {
        "codec": {
          "type": "string",
          "description": "Audio codec identifier (e.g., AAC, MP3, Opus)",
          "examples": ["AAC", "MP3", "Opus", "Speex"]
        },
        "sampleRate": {
          "type": "integer",
          "description": "Audio sample rate in Hz",
          "enum": [8000, 11025, 16000, 22050, 32000, 44100, 48000]
        },
        "channels": {
          "type": "integer",
          "description": "Number of audio channels (1 for mono, 2 for stereo)",
          "minimum": 1,
          "maximum": 8
        },
        "bitrate": {
          "type": "integer",
          "description": "Audio bitrate in bits per second",
          "minimum": 0
        }
      }
    },
    "RecordingConfig": {
      "type": "object",
      "description": "Configuration for stream recording",
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Whether recording is currently active for this stream"
        },
        "format": {
          "type": "string",
          "description": "Recording file format",
          "enum": ["mp4", "flv"]
        },
        "filePath": {
          "type": "string",
          "description": "Server filesystem path where the recording is saved"
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when recording started"
        }
      }
    }
  }
}