SDK Docs ← HOME

Stegawave API

Explore, compose, and share requests across the Stegawave media pipeline.

Input Configuration Reference

RTMP_PUSH

Push RTMP stream to Stegawave-provided endpoints.

Required Parameters

  • Type: "RTMP_PUSH"

Optional Parameters

  • whitelist: Array of CIDR blocks (default: ["0.0.0.0/0"])

Behavior

  • Sources: Not applicable (push destination provided by Stegawave)
  • Pipeline: Always STANDARD (dual redundant inputs created)
  • Security: Whitelist applied via encoder security group

Example

{
  "Type": "RTMP_PUSH",
  "whitelist": ["203.0.113.0/24", "198.51.100.0/24"]
}

RTP_PUSH

Push RTP stream to Stegawave-provided endpoints.

Required Parameters

  • Type: "RTP_PUSH"

Optional Parameters

  • whitelist: Array of CIDR blocks (default: ["0.0.0.0/0"])

Behavior

  • Sources: Not applicable (push destination provided)
  • Pipeline: Always STANDARD
  • Security: Whitelist applied via encoder security group

Example

{
  "Type": "RTP_PUSH",
  "whitelist": ["198.51.100.0/24"]
}

RTMP_PULL

Pull RTMP stream from external source(s).

Required Parameters

  • Type: "RTMP_PULL"
  • Sources: Array of source objects with Url field

Sources

  • 1 source → SINGLE_PIPELINE (no redundancy, lower cost)
  • 2 sources → STANDARD (automatic failover)

Behavior

  • Security: No whitelist (outbound pull connection)
  • Pipeline Mode: Auto-selected based on source count

Example (Single Source)

{
  "Type": "RTMP_PULL",
  "Sources": [
    {"Url": "rtmp://origin.example.com/live/stream"}
  ]
}

Example (Redundant)

{
  "Type": "RTMP_PULL",
  "Sources": [
    {"Url": "rtmp://origin1.example.com/live/stream"},
    {"Url": "rtmp://origin2.example.com/live/stream"}
  ]
}

HLS

Pull HLS stream from external source(s).

Required Parameters

  • Type: "HLS"
  • Sources: Array of source objects with Url field

Sources

  • 1 source → SINGLE_PIPELINE
  • 2 sources → STANDARD (failover)

Behavior

  • Security: No whitelist (outbound connection)
  • Pipeline Mode: Auto-selected based on source count

Example

{
  "Type": "HLS",
  "Sources": [
    {"Url": "https://origin.example.com/playlist.m3u8"}
  ]
}

SRT_LISTENER

Creates SRT listener flow that listens for incoming SRT connections from external encoders.

Required Parameters

  • Type: "SRT_LISTENER"
  • SrtListenerSettings.IngestPort: Port number (1024-65535, excluding 2077, 2088)

Optional Parameters

  • whitelist: Array with exactly ONE CIDR (SRT listener limitation)
  • SrtListenerSettings.MinLatency: Milliseconds (default: 2000)
  • SrtListenerSettings.MaxLatency: Milliseconds
  • SrtListenerSettings.PassphraseEnabled: Boolean (default: false)

Port Restrictions

  • Valid range: 1024 - 65535
  • Forbidden: 2077, 2088

Passphrase Management

  • Auto-generated (32 hex chars) if PassphraseEnabled: true
  • Retrieve via GET /passphrase
  • Rotate via POST /passphrase/rotate
  • Custom passphrase must be exactly 32 hex characters

Behavior

  • Sources: Not applicable (listener accepts connections)
  • Pipeline: Always STANDARD (SRT listener creates redundant outputs)
  • Security: Single CIDR whitelist enforced by SRT listener
  • Flow State: Created in STANDBY, must be started manually via POST /state

Example (Basic)

{
  "Type": "SRT_LISTENER",
  "SrtListenerSettings": {
    "IngestPort": 9000,
    "MinLatency": 2000
  }
}

Example (With Passphrase)

{
  "Type": "SRT_LISTENER",
  "whitelist": ["203.0.113.50/32"],
  "SrtListenerSettings": {
    "IngestPort": 5000,
    "MinLatency": 1500,
    "PassphraseEnabled": true
  }
}

SRT_CALLER

Creates SRT caller flow that initiates SRT connection to remote SRT listener(s).

Required Parameters

  • Type: "SRT_CALLER"
  • SrtCallerSources: Array of source configurations
  • Each source must have:
    • SrtListenerAddress: IP or hostname
    • SrtListenerPort: Port number

Optional Parameters

  • SrtCallerDecryption: Decryption settings for encrypted streams
  • StreamId: Identifier for remote stream routing (optional)

Sources

  • 1 source → SINGLE_PIPELINE
  • 2 sources → STANDARD (redundancy)

Behavior

  • Security: No whitelist (outbound caller)
  • Pipeline Mode: Auto-selected based on source count

Example (Single Source)

{
  "Type": "SRT_CALLER",
  "SrtCallerSources": [
    {
      "SrtListenerAddress": "encoder.example.com",
      "SrtListenerPort": 9000,
      "SrtCallerDecryption": {
        "Algorithm": "AES128",
        "Passphrase": "A1B2C3D4E5F6071827364556677889900A1B2C3D4E5F60718"
      },
      "StreamId": "primary-feed"
    }
  ]
}

Example (Redundant)

{
  "Type": "SRT_CALLER",
  "SrtCallerSources": [
    {
      "SrtListenerAddress": "encoder1.example.com",
      "SrtListenerPort": 9000,
      "StreamId": "feed-a"
    },
    {
      "SrtListenerAddress": "encoder2.example.com",
      "SrtListenerPort": 9000,
      "StreamId": "feed-b"
    }
  ]
}

Encoder Configuration Reference

Encoder Overview

Encoder configuration controls video/audio transcoding, output renditions, and archive settings.

Structure

  • InputSpecification: Defines input codec, bitrate, and resolution capabilities
  • output_group: Contains array of output renditions (ABR ladder)
  • vodArchive: Enable/disable automatic VOD archiving to S3

Key Concepts

  • Single Output Group: User provides one output_group which gets duplicated into A/B pipelines automatically
  • CMAF Output: All outputs are CMAF format for packager
  • Segment Duration: Top-level parameter (default: 4 seconds, range: 1-30)
  • Unified Framerate: All outputs in a group must use the same framerate

Minimal Example

{
  "vodArchive": false,
  "InputSpecification": {
    "Codec": "AVC",
    "MaximumBitrate": "MAX_20_MBPS",
    "Resolution": "HD"
  },
  "output_group": {
    "Outputs": [
      {
        "resolution": "1920x1080",
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      }
    ]
  }
}

Input Specification

Defines the input video codec, maximum bitrate, and resolution tier.

Required Parameters

  • Codec: Video codec type
  • MaximumBitrate: Maximum input bitrate capability
  • Resolution: Input resolution tier

Codec Options

  • "AVC" - H.264/AVC codec
  • "HEVC" - H.265/HEVC codec

MaximumBitrate Options

  • "MAX_10_MBPS" - Up to 10 Mbps
  • "MAX_20_MBPS" - Up to 20 Mbps (default, recommended)
  • "MAX_50_MBPS" - Up to 50 Mbps

Resolution Options

  • "SD" - Standard Definition
  • "HD" - High Definition (default, recommended)
  • "UHD" - Ultra High Definition (4K)

Examples

// H.264 HD (recommended default)
{
  "Codec": "AVC",
  "MaximumBitrate": "MAX_20_MBPS",
  "Resolution": "HD"
}

// H.265 4K
{
  "Codec": "HEVC",
  "MaximumBitrate": "MAX_50_MBPS",
  "Resolution": "UHD"
}

Output Configuration

Each output represents a single rendition (video + audio track) in your ABR ladder.

Required Parameters (Per Output)

  • FramerateNumerator: Framerate numerator (e.g., 30 for 30fps)
  • FramerateDenominator: Framerate denominator (e.g., 1 for 30fps)
  • Resolution: Either:
    • resolution: String format "WIDTHxHEIGHT" (e.g., "1920x1080")
    • OR Width + Height: Separate integer fields

Optional Parameters

  • Bitrate or VideoBitrate: Video bitrate in bps (default: 5000000)
  • AudioBitrate: Audio bitrate in bps (default: 128000)
  • SampleRate: Audio sample rate in Hz (default: 48000)
  • OutputName: Custom name for this output
  • Profile: H.264/H.265 profile (see Video Advanced tab)
  • AdaptiveQuantization: AQ mode (see Video Advanced tab)

Common Framerates

  • 24 fps: FramerateNumerator: 24, FramerateDenominator: 1
  • 23.976 fps: FramerateNumerator: 24000, FramerateDenominator: 1001
  • 30 fps: FramerateNumerator: 30, FramerateDenominator: 1
  • 29.97 fps: FramerateNumerator: 30000, FramerateDenominator: 1001
  • 60 fps: FramerateNumerator: 60, FramerateDenominator: 1

Important Notes

  • Unified Framerate: All outputs in a group MUST use the same framerate
  • Bitrate Flexibility: Use Bitrate or VideoBitrate interchangeably
  • String Shorthand: Bitrates support "5M", "3000k" notation (converted to integers)

Single Output Example

{
  "resolution": "1920x1080",
  "VideoBitrate": 5000000,
  "AudioBitrate": 128000,
  "SampleRate": 48000,
  "FramerateNumerator": 30,
  "FramerateDenominator": 1
}

ABR Ladder Example (4 Renditions)

{
  "Outputs": [
    {
      "Width": 3840,
      "Height": 2160,
      "VideoBitrate": 15000000,
      "AudioBitrate": 192000,
      "FramerateNumerator": 30,
      "FramerateDenominator": 1
    },
    {
      "resolution": "1920x1080",
      "VideoBitrate": 5000000,
      "AudioBitrate": 128000,
      "FramerateNumerator": 30,
      "FramerateDenominator": 1
    },
    {
      "resolution": "1280x720",
      "VideoBitrate": 2500000,
      "AudioBitrate": 128000,
      "FramerateNumerator": 30,
      "FramerateDenominator": 1
    },
    {
      "resolution": "854x480",
      "VideoBitrate": 1200000,
      "AudioBitrate": 96000,
      "FramerateNumerator": 30,
      "FramerateDenominator": 1
    }
  ]
}

Audio Configuration

Audio encoding settings for each output rendition.

Parameters

  • AudioBitrate: Bitrate in bps (default: 128000)
  • SampleRate: Sample rate in Hz (default: 48000)

Common Audio Bitrates

  • 96 kbps: 96000 - Low quality, suitable for mobile/low bitrate tiers
  • 128 kbps: 128000 - Standard quality (default, recommended)
  • 192 kbps: 192000 - High quality, suitable for 4K/premium tiers
  • 256 kbps: 256000 - Premium quality

Sample Rate Options

  • 48000 Hz: Standard for video (default, recommended)
  • 44100 Hz: CD quality
  • 32000 Hz: Lower quality option

Codec

  • AAC: Only supported codec (automatic, no configuration needed)

Example

{
  "AudioBitrate": 128000,
  "SampleRate": 48000
}

Advanced Video Settings

Optional advanced H.264/H.265 encoding parameters for fine-tuning quality and compatibility.

H.264 (AVC) Profile

  • "BASELINE" - Basic compatibility, lower complexity
  • "MAIN" - Standard profile (default, recommended)
  • "HIGH" - Better compression, higher quality
  • "HIGH_10BIT" - 10-bit color depth
  • "HIGH_422" - 4:2:2 chroma subsampling
  • "HIGH_422_10BIT" - 4:2:2 with 10-bit

H.265 (HEVC) Profile

  • "MAIN" - Standard HEVC profile (default)
  • "MAIN_10BIT" - 10-bit color depth

Adaptive Quantization

  • "AUTO" - Automatic selection based on content
  • "LOW" - Minimal adaptive quantization
  • "MEDIUM" - Balanced (default, recommended)
  • "HIGH" - Aggressive quality optimization
  • "HIGHER" - Very aggressive
  • "MAX" - Maximum quality optimization
  • "OFF" - Disabled

Notes

  • Rate Control: Always CBR (Constant Bitrate) - not user-configurable
  • Profile Selection: Use MAIN for broadest compatibility
  • 10-bit Encoding: Requires compatible input and player support

Example (H.264 High Profile)

{
  "resolution": "1920x1080",
  "VideoBitrate": 5000000,
  "Profile": "HIGH",
  "AdaptiveQuantization": "HIGH",
  "FramerateNumerator": 30,
  "FramerateDenominator": 1
}

Example (H.265 10-bit)

{
  "InputSpecification": {
    "Codec": "HEVC"
  },
  "output_group": {
    "Outputs": [{
      "Width": 1920,
      "Height": 1080,
      "VideoBitrate": 3000000,
      "Profile": "MAIN_10BIT",
      "FramerateNumerator": 30,
      "FramerateDenominator": 1
    }]
  }
}

Complete Examples

Real-world encoder configurations for common use cases.

Single 1080p Output

{
  "vodArchive": false,
  "InputSpecification": {
    "Codec": "AVC",
    "MaximumBitrate": "MAX_20_MBPS",
    "Resolution": "HD"
  },
  "output_group": {
    "Outputs": [
      {
        "resolution": "1920x1080",
        "VideoBitrate": 5000000,
        "AudioBitrate": 128000,
        "SampleRate": 48000,
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      }
    ]
  }
}

4-Tier ABR Ladder (4K to 480p)

{
  "vodArchive": false,
  "InputSpecification": {
    "Codec": "AVC",
    "MaximumBitrate": "MAX_50_MBPS",
    "Resolution": "UHD"
  },
  "output_group": {
    "Outputs": [
      {
        "Width": 3840,
        "Height": 2160,
        "VideoBitrate": 15000000,
        "AudioBitrate": 192000,
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      },
      {
        "resolution": "1920x1080",
        "VideoBitrate": 5000000,
        "AudioBitrate": 128000,
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      },
      {
        "resolution": "1280x720",
        "VideoBitrate": 2500000,
        "AudioBitrate": 128000,
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      },
      {
        "resolution": "854x480",
        "VideoBitrate": 1200000,
        "AudioBitrate": 96000,
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      }
    ]
  }
}

H.265 (HEVC) 1080p

{
  "vodArchive": false,
  "InputSpecification": {
    "Codec": "HEVC",
    "MaximumBitrate": "MAX_20_MBPS",
    "Resolution": "HD"
  },
  "output_group": {
    "Outputs": [
      {
        "Width": 1920,
        "Height": 1080,
        "VideoBitrate": 3000000,
        "AudioBitrate": 128000,
        "SampleRate": 48000,
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      }
    ]
  }
}

With VOD Archive Enabled

{
  "vodArchive": true,
  "InputSpecification": {
    "Codec": "AVC",
    "MaximumBitrate": "MAX_20_MBPS",
    "Resolution": "HD"
  },
  "output_group": {
    "Outputs": [
      {
        "resolution": "1920x1080",
        "VideoBitrate": 5000000,
        "AudioBitrate": 128000,
        "FramerateNumerator": 30,
        "FramerateDenominator": 1
      }
    ]
  }
}

Note: Setting vodArchive: true automatically creates an additional archive output group that records the highest resolution stream to S3 for VOD playback.

60fps High Framerate

{
  "vodArchive": false,
  "InputSpecification": {
    "Codec": "AVC",
    "MaximumBitrate": "MAX_20_MBPS",
    "Resolution": "HD"
  },
  "output_group": {
    "Outputs": [
      {
        "Width": 1920,
        "Height": 1080,
        "VideoBitrate": 8000000,
        "AudioBitrate": 128000,
        "SampleRate": 48000,
        "FramerateNumerator": 60,
        "FramerateDenominator": 1
      }
    ]
  }
}

Packager Configuration Reference

Packager Overview

Packager configuration controls origin endpoints and manifest generation for HLS, DASH, and MSS delivery.

Architecture

  • Encoder encodes and sends CMAF to packager channels (A/B for redundancy)
  • Packager origin endpoints package CMAF into HLS/DASH/MSS manifests
  • CDN distributes manifests to players via tenant-specific domains

Basic Structure

{
  "packager": {
    "originEndpoints": [
      {
        "name": "my-endpoint",
        "ContainerType": "CMAF",
        "HlsManifests": [...],
        "DashManifests": [...],
        "StartoverWindowSeconds": 86400
      }
    ]
  }
}

Important Notes

  • Segment Duration: Set globally via top-level segmentDuration parameter (not per-endpoint) for watermark extraction purposes
  • Best Practice: Use single origin endpoint with multiple manifests for better performance
  • Recommended: CMAF container with both HLS and DASH manifests

Container Types

Container type determines the packaging format and compatible manifest types.

Available Containers

Container Description Compatible Manifests Use Case
CMAF Common Media Application Format (fMP4) HLS, DASH Modern streaming (recommended)
TS MPEG Transport Stream HLS only Legacy HLS support
ISM Microsoft Smooth Streaming MSS only Legacy Microsoft platforms

Container Selection Guide

  • CMAF: Choose for modern players, supports both HLS and DASH from same segments
  • TS: Choose only if you need traditional HLS for legacy devices
  • ISM: Choose only for Microsoft Smooth Streaming clients

Example: CMAF with Dual Manifests

{
  "ContainerType": "CMAF",
  "HlsManifests": [
    {
      "ManifestName": "index",
      "ManifestWindowSeconds": 600
    }
  ],
  "DashManifests": [
    {
      "ManifestName": "index",
      "ManifestWindowSeconds": 600
    }
  ]
}

Manifest Name Uniqueness

When using multiple manifests of different types (HLS + DASH), you can use the same manifest name. However, if you provide the same name for multiple manifests of the same type, a number will be automatically appended to prevent conflicts.

Manifest Configuration

Configure HLS, DASH, and MSS manifests for your origin endpoint.

HLS Manifests

{
  "HlsManifests": [
    {
      "ManifestName": "index",
      "ManifestWindowSeconds": 600,
      "ProgramDateTimeIntervalSeconds": 60,
      "ChildManifestName": "child"
    }
  ]
}
  • ManifestName: Manifest filename without extension (default: "index")
  • ManifestWindowSeconds: Duration of content in manifest (default: 360)
  • ProgramDateTimeIntervalSeconds: Interval for EXT-X-PROGRAM-DATE-TIME tags (optional)
  • ChildManifestName: Child manifest name for master/child setup (optional)

DASH Manifests

{
  "DashManifests": [
    {
      "ManifestName": "index",
      "ManifestWindowSeconds": 600,
      "MinUpdatePeriodSeconds": 2,
      "MinBufferTimeSeconds": 30,
      "SuggestedPresentationDelaySeconds": 10
    }
  ]
}
  • ManifestName: Manifest filename without extension
  • ManifestWindowSeconds: Duration of content in MPD (default: 360)
  • MinUpdatePeriodSeconds: Minimum manifest refresh interval (optional)
  • MinBufferTimeSeconds: Minimum player buffer requirement (optional)
  • SuggestedPresentationDelaySeconds: Recommended playback delay from live edge (optional)

MSS Manifests

{
  "MssManifests": [
    {
      "ManifestName": "index",
      "ManifestWindowSeconds": 600
    }
  ]
}
  • ManifestName: Manifest filename without extension
  • ManifestWindowSeconds: Duration of content in manifest (default: 360)

Extension Handling

Manifest names are provided without extensions. Packager automatically appends:

  • HLS: .m3u8
  • DASH: .mpd
  • MSS: .ism/Manifest

DVR/Startover Window

Configure how much historical content is available for playback.

Understanding Windows

Setting Scope Description
StartoverWindowSeconds Origin Endpoint Total content stored in packager (DVR storage)
ManifestWindowSeconds Per Manifest Content range presented in the manifest

Relationship

  • StartoverWindow: Storage capacity (how much content packager keeps)
  • ManifestWindow: Playback window (how much players can access in manifest)
  • ManifestWindow should be ≤ StartoverWindow

Configuration Limits

Setting Min Max Default
StartoverWindowSeconds 60 1,209,600 (14 days) 5000
ManifestWindowSeconds 30 3600 360

Common Configurations

// Live streaming (minimal DVR)
{
  "StartoverWindowSeconds": 3600,      // 1 hour storage
  "HlsManifests": [{
    "ManifestWindowSeconds": 600        // 10 minutes in manifest
  }]
}

// Event streaming (large DVR)
{
  "StartoverWindowSeconds": 86400,     // 24 hours storage
  "HlsManifests": [{
    "ManifestWindowSeconds": 3600       // 1 hour in manifest
  }]
}

// VOD-like experience (maximum DVR)
{
  "StartoverWindowSeconds": 1209600,   // 14 days storage
  "HlsManifests": [{
    "ManifestWindowSeconds": 3600       // 1 hour in manifest
  }]
}

Cost Consideration

Larger StartoverWindow values increase packager storage costs. Choose the minimum window that meets your DVR requirements.

Advanced Settings

Segment Configuration

{
  "TsUseAudioRenditionGroup": true
}
  • SegmentDuration: Segment duration - set globally via top-level segmentDuration parameter
  • TsUseAudioRenditionGroup: Allow any audio rendition with any video rendition (TS only, default: true)

TsUseAudioRenditionGroup

When enabled (default), allows players to select any audio track with any video quality. This is useful for:

  • Multi-language streams
  • Audio description tracks
  • Alternate audio formats

Note: Only applies to TS container type.

Multiple Origin Endpoints

{
  "originEndpoints": [
    {
      "name": "cmaf-endpoint",
      "ContainerType": "CMAF",
      "HlsManifests": [{"ManifestName": "index"}],
      "DashManifests": [{"ManifestName": "index"}]
    },
    {
      "name": "ts-endpoint",
      "ContainerType": "TS",
      "HlsManifests": [{"ManifestName": "index"}]
    }
  ]
}

Best Practice

Use a single origin endpoint with multiple manifests (HLS + DASH) rather than multiple endpoints. This:

  • Improves cache efficiency
  • Simplifies management

Configuration Examples

1. CMAF Dual Manifest (Recommended)

Single CMAF endpoint with both HLS and DASH manifests.

{
  "channel": {
    "Type": "CMAF",
    "Description": "Hybrid HLS/DASH delivery"
  },
  "originEndpoints": [{
    "name": "hybrid-endpoint",
    "ContainerType": "CMAF",
    "StartoverWindowSeconds": 86400,
    "HlsManifests": [{
      "ManifestName": "index",
      "ManifestWindowSeconds": 600,
      "ProgramDateTimeIntervalSeconds": 60
    }],
    "DashManifests": [{
      "ManifestName": "index",
      "ManifestWindowSeconds": 600,
      "MinUpdatePeriodSeconds": 2,
      "MinBufferTimeSeconds": 30
    }]
  }]
}

2. Traditional HLS (TS Container)

Legacy HLS with MPEG-TS segments for maximum compatibility.

{
  "originEndpoints": [{
    "name": "hls-legacy",
    "ContainerType": "TS",
    "StartoverWindowSeconds": 3600,
    "HlsManifests": [{
      "ManifestName": "index",
      "ManifestWindowSeconds": 360
    }],
    "TsUseAudioRenditionGroup": true
  }]
}

3. Large DVR Window (14 Days)

Maximum DVR storage for event replay.

{
  "originEndpoints": [{
    "name": "event-replay",
    "ContainerType": "CMAF",
    "StartoverWindowSeconds": 1209600,
    "HlsManifests": [{
      "ManifestName": "index",
      "ManifestWindowSeconds": 3600
    }]
  }]
}

4. Small DVR Window (1 Hour)

Minimal storage for cost optimization.

{
  "originEndpoints": [{
    "name": "live-only",
    "ContainerType": "CMAF",
    "StartoverWindowSeconds": 3600,
    "HlsManifests": [{
      "ManifestName": "index",
      "ManifestWindowSeconds": 600
    }]
  }]
}

5. Multi-Origin Setup

Multiple endpoints for different use cases (not recommended for most scenarios).

{
  "originEndpoints": [
    {
      "name": "primary-cmaf",
      "ContainerType": "CMAF",
      "StartoverWindowSeconds": 86400,
      "HlsManifests": [{"ManifestName": "index"}],
      "DashManifests": [{"ManifestName": "index"}]
    },
    {
      "name": "fallback-ts",
      "ContainerType": "TS",
      "StartoverWindowSeconds": 3600,
      "HlsManifests": [{"ManifestName": "index"}]
    }
  ]
}

Quick Reference

  • Modern streaming: CMAF with HLS + DASH
  • Legacy HLS: TS container
  • DVR window: Balance storage cost vs. replay needs
  • Manifest window: Typically 10-60 minutes (600-3600 seconds)
  • Segment duration: Set globally, not per-endpoint

{{ selectedEndpoint.summary }}

{{ selectedEndpoint.method }}

{{ selectedEndpoint.label }}

{{ selectedEndpoint.path }}

{{ selectedEndpoint.summary }}

curl -X POST https://api.stegawave.com/create \
  -H "x-api-key: " \
  -H "Content-Type: application/json" \
  -d '{
  "name": ,
  "description": ,
  "segmentDuration": ,
  "input": {
  },
  "encoder": {
  },
  "packager": {
  },
}'
  • {{ insight }}

cURL Preview

{{ generatedCurl }}

Request Builder

Body JSON invalid Body ready

Query Parameters

Request Body

Adjust values, toggle overlays, or trim outputs to match your workload.

Pipeline Diagram

Input
{{ pipelineInputJson }}
Encoder
{{ pipelineEncoderJson }}
Packager
{{ pipelinePackagerJson }}
CDN
{{ pipelineCdnJson }}

Sample Response

{{ sampleResponsePretty }}

Token Flow Diagram

API
◄─────── GET /token?user_key=john_doe_123
API
───────► eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
GET https://tenant-a.stream.stegawave.com/abc/index.m3u8?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... ───────────────►
CDN

Implementation Notes

  • {{ tip }}