Skip to content

12. Service Patterns

This document explains the two primary architectural patterns used in docker-rtmp-multistream for handling RTMP streams to different platforms.

12.1 Pattern Comparison

Choose the appropriate pattern for your service:

Simple Relay Transformer
Use for Services that accept streams as-is (e.g., YouTube) Services requiring specific encoding (e.g., Twitch non-partner mode)
How it works Stream forwarded directly without modification Two-stage pipeline with FFmpeg transformation
Pros Minimal CPU usage, preserves original quality, low latency Per-service quality optimization, downscaling for bandwidth limits
Cons No per-service quality optimization CPU-intensive, slight latency increase
Example YouTube service Twitch service in non-partner mode (720p60 downscaling)

Advanced: Conditional Patterns

Services can support both patterns based on configuration. The Twitch service implements a conditional pattern: partners use simple relay (TWITCH_PARTNER=TRUE), non-partners use transformer mode. See Twitch implementation for an advanced example.

12.2 Implementation Examples

12.2.1 Simple Relay (YouTube)

12.2.2 Transformer (Twitch)

12.3 See Also