Red5 Documentation Documentation Home Introduction Documentation Site Help Streaming Glossary Red5 Cloud Introduction Overview of Red5 Cloud What is Red5 Cloud? Key Features and Benefits of Red5 Cloud Comparison with Red5 Pro How Red5 Cloud enhances Red5 Pro Use Cases Typical Scenarios and Applications using Red5 Cloud Getting Started Account Setup Log In Sign Up Configuration Basics Overview of Key Settings and Parameters of Red5 Cloud Quick Start Guide Step by Step from Zero to Streaming with Red5 Cloud User’s Guide Red5 Cloud Concepts Red5 Cloud Architecture Red5 Cloud Deployments Red5 Cloud Dev Resources Red5 Cloud Account Encoding WebRTC Encoding with Red5 Cloud RTMP Encoding with Red5 Cloud Red5 Cloud Transcoding Red5 Cloud RTMP Proxy Development API Stream Manager 2.0 API SDKs Red5 Core SDK Red5 Pro WebRTC SDK Troubleshooting Red5 Cloud FAQs Red5 Cloud Support Resources Red5 Cloud Support Red5 Cloud Privacy Information Red5 Cloud Release Notes Red5 Cloud v1.0.0 Release Notes Red5 Pro User’s Guide Authentication Authentication Overview Round Trip Authentication Red5 Pro Round-Trip Authentication Validator Mechanism Prerequisites Enabling Security for your WebApp Client Authentication Round-Trip Authentication Use Cases Preparing The NodeJS Mock Server Simple Authentication Red5 Pro Simple Authentication Plugin Mechanism Plugin Configuration Prerequisites Application-Level Configuration Configuring Credentials Cluster Support Simple Authentication Use Cases Red5 Pro File Authentication Validator DVR Mixers Mixers Overview Brew Mixer Overview Brew Mixer Installation Using the Brew Mixer Render Tree Controller Players Embeddable Player Preprocessor Single Port Muxing Stream Manager 2.0 Stream Manager 2.0 Overview Stream Manager 2.0 Services Stream Manager 2.0 OpenAPI/Swagger UI Stream Manager 2.0 Expressions Stream Manager 2.0 Node Group Config Stream Manager 2.0 Node Scaling States Transcoder and ABR Transcoding and ABR Overview Transcoding and ABR Requirements Using the Transcoder node to create stream variants Publishing to the Transcoder Transcoding/ABR Provision Suggestions Publishing with the Transcoder Publishing with WebRTC to the Transcoder Publishing with RTMP to the Transcoder Publishing ABR variants from and Encoder Publishing ABR variants from an RTMP Encoder Subscribing to a Transcoded Stream Subscribing to a Transcoded Stream with WebRTC Subscribing to a Transcoded Stream with HLS Recording ABR Variants with HLS WebRTC ABR WebRTC ABR – Decision Workflow WebRTC ABR – Settings Development APIs Bitrate API DVR API Mixer APIs Brew Mixer API Restreamer File Restreamer API Restreamer Persistence API Zixi Output Restreamer API Round Trip Time API Stream Manager 2.0 Stream Manager 2.0 API Overview Stream Manager 2.0 Admin API Stream Manager 2.0 Auth API Stream Manager 2.0 Proxy API Stream Manager 2.0 Streams API Stream Manager 2.0 Streams Provision API Stream Manager 2.0 Scheduling NodeGroups API Stream Manager 2.0 OpenAPI/Swagger UI Stream Manager 2.0 Curl Cheat Sheet Transcoder and ABR Provisioning the Transcoder Transcoder Code Examples Authentication Overview Round Trip Authentication Round Trip Authentication API Calls Simple Authentication Advanced – Extending the Plugin Software Development Kits Red5 Core SDK Red5 Pro WebRTC SDK Resources Red5 Pro Support Red5 Pro Release Notes Red5 Pro Release Notes Overview Red5 Pro Release Notes 13.1.0 Red5 Pro Known Issues Red5 Pro Release Notes 13.0.0 Red5 Pro CVEs Red5 CVE Overview Red5 CVE-2023-22628 Product Documentation Red5 Product Glossary General Video Streaming Glossary Streaming Encoder Glossary Audio and Video Codecs Glossary Red5 Product Glossary Red5 Pro Autoscale Glossary What’s New? What’s New? 2022 in Review Mixer Use Cases Mixer Use Cases Small Audio and Video Mixes Large Audio and Video Mixes Small Conference With Audio and Video Mix Composite Video On Demand (VOD) Recordings Streaming Branded Content To Third Party Platforms Server-side Watermark Special Features Authentication Overview Authentication Overview Red5 Pro Simple Authentication Plugin Plugin Configuration Application-Level Configuration Configuring Credentials Advanced – Extending the Plugin Cluster Support Simple Authentication Use Cases Red5 Pro File Authentication Validator Red5 Pro File Authentication Validator Mechanism Prerequisites Authentication Validator Use-Cases Red5 Pro Round-Trip Authentication Validator Red5 Pro Round-Trip Authentication Validator Mechanism Prerequisites Preparing The NodeJS Mock Server API Calls Enabling Security for your WebApp Client Authentication Round-Trip Authentication Use Cases Video On Demand via Cloudstorage Video On Demand via Cloudstorage Custom Cloudstorage Options AWS S3 Cloud Storage Google Cloud Platform (GCP) Storage Digial Ocean (D.O.) Spaces Microsoft Azure Cloud Storage Modify Cloudstorage Plugin Properties File Server Configuration File Cleanup Red5 Pro Clustering Red5 Pro Clustering Clustering Terminology Enabling or Disabling Clustering Clustering Configuration Clustering Use cases Interstitial Media Insertion Interstitial Media Insertion Server Configuration REST API Implementation Examples Relay Nodes Relay Nodes Launch Configuration Example Scale Policy Example Restreamer Plugin Restreamer Plugin Caller Mode versus Listener Mode IP Camera Support Server Configuration API Servlet Examples Test Multicast and Unicast source with FFMPEG SRT Restreaming Zixi Restreaming SRT and Zixi Restreaming with Red5 Pro Autoscaling References Social Media Pusher Social Media Pusher Servlet Rest API Examples Stream Name Aliasing Stream Name Aliasing Users Guide Users Guide Best Node Selection Dynamic Metrics Setting Up A New Cluster Consuming Services As a Broadcaster Consuming Services As a Subscriber Subscribing with WebRTC Special Feature Concepts Node Node Types NodeGroup GeoZones And Regions Red5 Pro Stream Manager Red5CloudWatch Red5CloudWatchClient CloudSweeper DeadNodeCleaner NodeSynchronizer Autoscaler Launch Configuration Scale Policy Instance Warm Up Time Metric Threshold Alarm Action Subscribing with HLS Webhooks Webhooks Overview WebRTC ABR WebRTC ABR WebRTC ABR – Settings WebRTC ABR – Decision Workflow WebSockets with Red5 Pro WebSockets with Red5 Pro Initializing WebSockets For a Red5pro Application Extending the WebSocket Endpoint Configuration Security Features Whip and Whep Configuration Installation and Optimization Installation Linux Install Defining Red5 Pro as a Service on Linux Mac Installation Installing Red5 Pro on Windows Server Upgrade Instructions Optimizing Red5 Pro Red5 Pro License Key Optimizing Red5 Pro Optimizing Red5 Pro AWS Concepts Technical Prerequisites of deploying on AWS Create VPCs and Security Groups Backup and Recovery on AWS Monitoring the Health of Red5 Pro on AWS System and Cost Model on AWS Service Quotas on AWS Support on AWS Cloud Installation Terraform Installation AWS Installation Digital Ocean Installation Google Cloud Installation Microsoft Azure Installation Server Cluster Red5 Pro Clustering Cluster Terminology Enabling or Disabling Clustering Configuration Red5 Pro Default Clustering Functions Extending Use cases Setup SSL SSL Configuration Prerequisites Lets Encrypt Create the Keystore Create the Truststore Letsencrypt wildcard certificates Godaddy Comodo Digicert Configure Red5 Pro to run with SSL Testing the Configuration Using Non Standard Ports for HTTP/HTTPS Configure SSL on Windows Autoscale Deploy – Amazon Web Services Overview 1. Get Security Credentials (IAM) 2. Create SSH2-RSA Keypair 3. Reserve Elastic IP 4. Create VPCs and Security Groups 5. Prepare RDS MySQL Database 6. Add Cluster Schema 7. Prepare Red5 Pro AMI for Nodes 8. Copy Red5 Pro AMI to Other Regions 9. AWS Elastic File System 10. Configure and Deploy Stream Manager Optional – Load-Balance Multiple Stream Managers Recommended – Use AWS autoscaling for Stream Managers API Basics Publish and Subscribe Examples Tagging EC2 Instances EC2 `User Data` property support US Gov Regions Support AWS Wavelength Autoscale Deploy – Digital Ocean Deploying Stream Manager and Autoscaling on DigitalOcean Before you Begin Generate DigitalOcean API Token Generate and Add an SSH key Create Optimized Disk Image Create Stream Manager and Terraform Instances Create MySQL Database Configure Terraform Server Configure Stream Manager Instance Optional – Load Balance Stream Managers Prepare Red5 Pro Node droplet Create Node Image Create Firewall Rules API Basics Publish and Subscribe Examples Autoscale Deploy – Google Cloud Overview 1. Reserve Static IP for Stream Manager 2. Create Google Cloud SQL Instance 3. Configure SQL Database 4. Create VPC and Firewall Rules 5. Create Red5 Pro Disk Image 6. Stream Manager Configuration Autoscaling Stream Managers Preemptive VMs Option API Basics Autoscale Deploy – Microsoft Azure Overview Before you begin Autoscale Azure Overview 1. Get credentials for Stream Manager 2. Create an SSH2-RSA Keypair 3. Create the Master Resource Group 4. Reserve A Static IP Address 5. Create Virtual Networks and Network Security Groups 6. Prepare MySQL Database 7. Add Cluster Schema 8. Prepare Red5 Pro Image for Nodes 9. Configure and Deploy Stream Manager Optional – Load-Balance Multiple Stream Managers Configure Stream Manager with SSL API Basics Publish and Subscribe Examples Autoscale Deploy – Linode Overview Before you Begin Generate Linode Personal Access Token Generate and Add an SSH key Create Optimized Disk Image Create MySQL, Terraform, and Stream Manager Instances Configure MySQL Database Configure Terraform Server Configure Stream Manager Instance Prepare Red5 Pro Node Instance Create Node Image Create Firewall Rules API Basics Publish and Subscribe Examples Autoscale Deploy – Oracle Cloud Deploying Stream Manager and Autoscaling on Oracle Cloud (OCI) Before you Begin Tenancy OCID, User OCID, and API Key Create Optimized Disk Image and VCN Add Network Security Groups Create Stream Manager and Terraform Instances Create MySQL Database Configure Terraform Server Configure Stream Manager Instance Optional – Load Balance Stream Managers Prepare Red5 Pro Node Instance Create Node Image API Basics Publish and Subscribe Examples Using NFS on Oracle Cloud Autoscale Deploy – Simulated Cloud Overview 1. Create MySQL Database 2. Prepare Red5 Pro Node Instances 3. Deploy and Configure Stream Manager API Basics Rest API Autoscale Deploy – vSphere Deploying Stream Manager and Autoscaling with vSphere Before you Begin vSphere Parameters for Terraform Create VM for Stream Manager and Terraform Optimization and Prerequisite Libraries Create MySQL Database Configure Terraform Service Configure Stream Manager Instance Prepare Red5 Pro Node VM Using VM as Node Image API Basics Publish and Subscribe Examples StreamManager – Mixer Requirements Mixer Deployment Overview Deploying the Mock Mixer Backend Autoscale Node Webapps Configuration Autoscale Mixer Node Configuration Stream Manager Proxy as SSL Proxy Stream Manager Proxy Prerequisites Set Up Stream Manager as Proxy Headers Headers – Client API SSL Proxy via Cloud LB Proxy Publish and Subscribe Streaming Examples StreamManager CORS Upgrading Autoscale Nodes Upgrading Autoscale Nodes Create a new Disk Image with the updated build Create New Launchconfig and New Nodegroup Upgrading Stream Manager Upgrading Stream Manager (general) Upgrading Stream Manager with Database Changes Developer Documentation Server-Side Guides Server Configuration Files Red5 Pro Basic Java Red5 Pro Scopes State Management Plugin Development Red5 Pro Eclipse Setup Red5 Pro Live Example Using NodeJS for Mock Services Using NodeJS for Mock Services NodeJS Simple Conference Host Mixed Content Acessibility via NodeJS Red5 Pro Core SDK Red5 Pro Core SDK Core SDK API Documentation Red5 Pro Core SDK Customizations Red5 Pro Core SDK – Linux Red5 Pro Core SDK – MacOS Red5 Pro Core SDK – Windows Core SDK Examples Core SDK Examples – Overview Core SDK Examples – Basic integration Core SDK Examples – Custom logger Core SDK Examples – Codecs Core SDK Examples – Devices Core SDK Examples – Simple Publish Core SDK Examples – Publish container Core SDK Examples – Custom source Core SDK Examples – Custom Transform Core SDK Examples – Publish Metadata Messages Core SDK Examples – Subscribe Metadata Messages Core SDK Examples – Simple Subscribe Core SDK Examples – Custom Renderer Core SDK Examples – Publishing via Stream Manager Core SDK Examples – Subscribing via Stream Manager Core SDK Examples – Setup Transcoder Provisions Core SDK Examples – Authentication Core SDK Examples – WebRTC Red5 Pro WebRTC SDK Red5 Pro WebRTC SDK Requirements Red5 Pro WebRTC SDK WHIP/WHEP Overview WHIP Client WHEP Client Publishing Live Streams with Red5 Pro WebRTC SDK WebRTC Configuration Properties WebRTC Example Using mediaConstraints And onGetUserMedia Lifecycle Events Listening to Publisher Events Common Events WebRTC Publisher Events Subscribing to Streams with Red5 Pro WebRTC SDK Subscriber Types WebRTC Subscriber HLS WebRTC Live Seek WebRTC Insertable Streams Auto Failover and Order Initialization Lifecycle Events Listening to Subscriber Events Common Events WebRTC Subscriber Events HLS Subscriber Events Other Information Playback Controls for Subscribers (Live Streaming & VOD) Playback Controls – Overview Playback Controls and Events – APIs Playback Controls UI Creating Custom Playback Controls Creating Custom Controls UI Shared Objects with Red5 Pro WebRTC SDK The Red5 Pro Shared Object Socket Shared Objects and Clients Shared Object API setProperty – Shared Object Property Updates Send – Shared Object Method Updates close – Closing a Shared Object Shared Object Events Common Events Adaptive Bitrate with Red5 Pro WebRTC SDK Subscribing ABR Requirements JSON Schema Publishing for ABR Transcoding Publishing with Encoders Publishing via Transcoder Publishing to Transcoder (WebRTC) ABR Subscribing with WebRTC ABR Subscribing with HLS Migrating from `10.x` to `11.0.0` Migrating from `7.2.0` to `8.0.0` Migrating from `5.4.0` to `5.5.0` Migrating from `5.0.0` to `5.4.0` Migrating from `4.0.0` to `5.0.0` Migrating from `3.5.0` to `4.0.0` WebRTC SDK API API Documentation iOS SDK Project Setup iOS Publisher Add your SDK license key First View Controller Launching & Viewing Publisher iOS Subscriber Subscriber Clean State Subscriber View Controller Second View Controller Launching & Viewing Subscriber Upgrading the iOS SDK in your Project iOS SDK API iOS API Documentation Android SDK Project Setup Android SDK Publisher Add your SDK license key Launching & Viewing Subscriber Android SDK Subscriber Upgrading the Android SDK in your Project Android SDK API Android API Linux SDK Linux Streaming SDK Server API Red5 Pro Server API Security and Configuration Server API Applications API Recorded Content (VOD) Shared Objects Streams Client Control API Log Access API Response Data Objects Failure Status Codes Round-Trip Authentication API Calls Round Trip Authentication API Calls Restreamer API Restreamer API Social Media Pusher API Social Media Rest API Interstitial Media Insertion API Interstitial Media Insertion API Stream Manager Client Headers API Headers – Client API Stream Manager REST API v4.0 Red5 Pro Stream Manager REST API v4.0 Getting Started Scale Policy Management Launch Configs Groups Event Scheduling Nodes Stream Provisioning Streams Alarms VOD Log Access Short-Term Stream Usage Statistics Proxy Simulated Cloud Provisioning Parameters Index REST API Glossary Stream Manager REST API v3.1 (Deprecated) Red5 Pro Stream Manager REST API v3.1 Getting Started Scale Policy Management Launch Configuration Management Groups Event Scheduling Nodes Stream Provisioning Parameters Index Streams Alarms VOD Log Access Proxy REST API Glossary Best Practices and Troubleshooting General Troubleshooting Guidelines Streaming is Complicated Best Practices and Troubleshooting Server Optimization Streaming Terms for Troubleshooting WebRTC Troubleshooting Troubleshooting WebRTC Using Webrtc Internals Mobile Troubleshooting Mobile Overview Quality Troubleshooting and Best Practices Stream Quality Best Practices and Troubleshooting Resolution & Bitrate Guide Transcoding Quality Troubleshooting Red5 Pro Inspector Inspector Webapp Autoscale Best Practices and Troubleshooting Autoscale Best Practices and Troubleshooting Stream Manager Roles Optimization Security Recommendations Recommended Instance Types Character limits and Naming Recommendations Troubleshooting Red5 Pro Autoscaling Issues Troubleshooting Autoscale Deployment – General Troubleshooting Autoscale Deployment – General Troubleshooting AWS Autoscale Deployment Troubleshooting Digital Ocean Autoscale Deployment Troubleshooting GCP Autoscale Deployment Troubleshooting Simulated Cloud Autoscale Deployment Securing Autoscaling Securing Autoscaling Autoscale Nodes Stream Manager Security Autoscale – Corrupted Node Management Autoscale – Corrupted Node Management NODE CONTROLLER CONFIGURATION SECTION Node Checker Installing the Node Checker Stream Manager Configuration Stream Manager Sunset API Testing Streaming Protocols WebRTC WebRTC Overview Webrtc-Plugin Properties File Red5 Pro WebRTC SDK for Browsers Red5 Pro Core SDK WebRTC Configure Your Own TURN/STUN Server RTSP RTSP – Red5 Pro Mobile SDK Red5 Pro iOS SDK iOS API Documentation Red5 Pro Android SDK Android API Red5 Pro Core SDK – MacOS Core SDK API Core SDK API Red5 Pro Core SDK – Linux Red5 Pro Core SDK – Windows Core SDK API HLS Red5 Pro HLS Plugin HLS URI Info HLS Configuration File Latency Segmentation Enabling RAM Writes Enabling Disk Writes Metadata and NetStreamSends HLS Subscriber Authentication HLS VOD RTMP RTMP Recording RTMP Ingest Streams Secure RTMP Publishing RTMP in an Autoscale Environment Third Party RTMP and RTSP Publishers Using Third Party RTMP Publishers With Red5 Pro Open Broadcaster Software (OBS) Wirecast RTMP Encoder Broadcasting with Red5 Pro Autoscaling Using FFmpeg with Red5 Pro for live streaming RTMP and RTSP Getting Started Locating Streams Publishing Live Streams Publishing File Streams Reading RTMP Streams Reading RTSP Streams Capturing Thumbnails Restreaming with FFMpeg Multi-Bitrate streaming Embedding Logo Recording and Restreaming Passing Connection Parameters Optimizing Conclusion Reference Links Converting FLV Files to MP4 VOD with Red5 Pro Using Red5 Pro To Record and View Video On Demand Recording a Stream Preparing a Video File for Streaming Subscribing to a Recorded File Third-Party Subscribers Release Notes Release Notes Server Release Notes Known Issues – Red5 Pro Server Server Release 12.7.0 Release 11.0.0 Server Performance Metrics Server Release 12.6.0 Server Release 12.5.1 Server Release 12.5.0 Server Release 12.4.0 Server Release 12.3.0 Server Release 12.2.0 Server Release 12.1.0 Server Release 12.0.0 Server Release 11.3.1 Server Release 11.3.0 Server Release 11.2.0 Server Release 11.1.0 Server Release 11.0.0 Patch Release 10.9.2 Server Release 10.9.0 Server Release 10.8.0 Server Release 10.7.0 Server Release 10.6.0 Server Release 10.5.0 Server Release 10.4.0 Server Release 10.3.0 Server Release 10.2.0 Server Release 10.1.0 Server Release 10.0.0 Release 10.0.0 Server Performance Metrics Server Release 9.3.0 Patch Release 9.2.0 Server Release 9.1.0 Server Release 9.0.0 Release 9.0.0 Server Performance Metrics Patch Release 8.2.0 Patch Release 8.1.0 Release 8.0.0 Release 8.0.0 Server Performance Metrics Release 7.2.11 Release 7.2.0 Release 7.1.0 Release 7.0.0 Release 7.0.0 Server Performance Metrics Patch Release 6.2.0 Patch Release 6.1.0 Release 6.0.0 Patch Release 5.7.11 Release 5.7.0 Release 5.5.0 Release 5.4.0 Release 5.3.0 Patch Release 5.2.3 Patch Release 5.2.2 Release 5.2.0 Patch Release 5.1.1 Release 5.0.0 Patch Release 4.5.4 Release 4.5.0 Release 4.3.0 Release 4.2.0 Release 4.0.2 Release 4.0.0 Release 3.5.0 Release 3.4.4 Release 3.4.0 Release 3.2.0 Release 3.1.0 Release 3.0.0 Release 2.1.0 Patch Release 2.0.5 Patch Release 2.0.3 Release 2.0.0 Release 1.4.0 Release 1.3.1 Release 1.3.0 Release 1.2.0 Release 1.1.0 Release 1.0.0 HTML5 SDK Release Notes SDK Release 12.5.1 SDK Release 12.0.0 SDK Release 11.0.0 SDK Release 10.9.0 SDK Release 10.6.0 SDK Release 10.0.0 SDK Release 9.1.0 SDK Release 8.0.0 SDK Release 7.0.0 SDK Release 6.0.0 SDK Release 5.7.0 SDK Release 5.5.0 SDK Release 5.3.0 SDK Release 5.2.0 SDK Release 5.0.0 SDK Release 4.2.0 SDK Release 4.0.0 SDK Release 3.5.0 SDK Release 3.4.0 SDK Release 3.3.0 SDK Release 3.1.0 SDK Release 3.0.0 SDK Release 2.1.0 SDK Release 2.0.0 Core SDK Release Notes Core SDK Release 1.0.0 iOS SDK Release Notes Known Issues – iOS SDK Release 10.9.0 SDK Release 10.7.0 SDK Release 10.1.0 SDK Release 10.0.0 SDK Release 9.0.0 SDK Release 8.0.0 SDK Release 7.3.0 SDK Release 7.2.0 SDK Release 7.0.0 SDK Release 6.0.0 SDK Release 5.7.0 SDK Release 5.6.0 SDK Release 5.5.0 SDK Release 5.2.0 SDK Release 4.6.0 SDK Release 4.5.0 SDK Release 4.4.0 SDK Release 4.2.0 SDK Release 4.0.0 SDK Release 3.5.0 SDK Release 3.4.0 SDK Release 3.1.0 SDK Release 3.0.0 SDK Release 2.1.0 SDK Release 2.0.0 SDK Release 1.3.0 SDK Release 1.2.0 SDK Release 1.1.0 SDK Release 1.0.0 Android SDK Release Notes Known Issues – Android SDK Release 10.9.0 SDK Release 10.7.0 SDK Release 10.1.0 SDK Release 10.0.0 SDK Release 9.0.0 SDK Release 8.0.0 SDK Release 7.3.0 SDK Release 7.2.0 SDK Release 7.0.0 SDK Release 6.0.0 SDK Release 5.7.0 SDK Release 5.6.0 SDK Release 5.5.0 SDK Release 5.2.0 SDK Release 4.6.0 SDK Release 4.5.0 SDK Release 4.4.0 SDK Release 4.2.0 SDK Release 4.0.0 SDK Release 3.5.0 SDK Release 3.4.0 SDK Release 3.0.0 SDK Release 2.1.0 SDK Release 2.0.0 SDK Release 1.4.0 SDK Release 1.3.0 SDK Release 1.2.0 SDK Release 1.1.0 SDK Release 1.0.0 Linux SDK Release Notes Linux SDK Release 0.1.0 Red5 CVE Open Source CVEs Video Walk-Through Discuss on Slack Video Walk-Through Video Walk-Through This documentation has an accompanying video walk through that you can follow as you are developing.