Red5 Pro Server Release Notes

Known Issues

  • IMPORTANT: Because of different libcrypto library versions supported between CentOS and Ubuntu, with releases > 5.2.0 it is necessary to modify {red5pro}/conf/, and change openssl.enabled=true to openssl.enabled=false.
  • iOS SDK broadcast cannot be viewed with WebRTC in Mac or iOS Safari. NOTE: this is resolved with Safari 12
  • Safari 12 WebRTC publisher to Android SDK shows lagging video
  • Issues with Safarari WebRTC <==> Firefox WebRTC
  • Intermittent issues with Android Chrome v69
    • Seeing some publisher drops after 5-30 minutes with the v69 release of Chrome on Android. Stream is still listed, but is not transmitting any data. Browser needs to be restarted to republish.

Release 5.4.0, 20 December 2018

  • WebRTC support for Microsoft Edge
  • Updated websockets for improved WebRTC experience
    • consolidated ports to use the same as http/https
    • fixed frequent Firefox websocket failures
    • improved reliability of autoscaling on AWS via their Application Load Balancer
    • NOTE: These changes will require some modification to existing webapps. Please see here for additional documentation.
  • Fixed - HLS freezing to stream from RTC Publisher
  • Fixed - HLS files copied to S3 (if S3 post-processor enabled) even if stream is not recorded
  • Fixed - HLS recordings a few seconds shorter than flv
  • Improved RTC HD and Screen Sharing stream quality
  • Fixed - S3 Upload failing with buckets created in some regions (noteably: all Europe, and some newer zones in US and AS)
  • Fixed - Stream Manager API - Stream Stats listing currentSubscriber counts as the same for each stream
  • Performance improvements

Release 5.4.0 Server Performance Metrics

Tests were run against an AWS c5.large instance (2 CPUs with 4GB memory, 2GB allocated to java_heap). We used our RTMP Bee, RTSP Bee, and RTC Bee clients to do load testing.

Publishing a 256kbps stream via RTMP, we were able to achieve the following while still maintaining quality of stream:

  • 500 WebRTC subscribers
  • 1,900 RTSP (mobile) subscribers
  • 1,000 RTMP subscribers

The same server type can support approximately forty 480p RTMP publishers

Release 5.3.0, 13 November, 2018

  • New - Round-trip authentication suppport and documentation. Round trip validation publish and subscribe tests added to HTML5 testbed.
  • New - Support and documentation for Red5 Pro file auth validator
  • Fixed - Screen share quality issues with high resolution selection. Stream Manager Proxy screen share examples - Publishing and Subscribing - added to HTML5 testbed.
  • Fixed - Recording to a subscope saves files in unexpected locations (now recordings will be saved to webapp/streams/subscope)

Stream Manager/Autoscaling fixes:

  • Fixed - Read stream with stats API call not working
  • Fixed - Origin servers do not scale down after scaling up
  • Fixed - Origin servers may count edge server connections towards autoscaling capacity
  • Fixed - Stream Manager SSL Proxy issues

Patch Release 5.2.3, 24 October, 2018

  • Fixed errors running Red5 Pro server on Windows.

NOTE: as with 5.2.2, please see Open SSL Configuration for CentOS for full details on running Red5 Pro on CentOS/Debian systems.

Patch Release 5.2.2, 18 October, 2018

  • Fixed errors running Red5 Pro server on CentOS/Debian OS - please see Open SSL Configuration for CentOS for full details on running Red5 Pro on CentOS/Debian systems.

Release 5.2.0, 11 October, 2018

  • Fixed - Number of file descriptors opened keeps growing on servers with multiple NICs or multiple external IPs
  • Fixed - ICE Connection issues with Firefox v62
  • Added - On-demand streaming available via clustered edge servers
  • Added - Can configure UDP port range for WebRTC in (defaults are 49152-65535)
  • WebRTC performance optimizations
    • Smaller CPU spikes on connections
    • Even lower latency
    • Higher server capacity
  • Updated Azure autoscaling cloud controller to support new instance types
  • Updated AWS autoscaling cloud controller to support new regions
  • Fixed - Can't broadcast a stream with name event via Stream Manager

Autoscaling API v3.1 - New Features:

VERY IMPORTANT: See this guide for upgrade guidelines.

Release 5.2.0 Server Performance Metrics

Publishing a 256kbps stream via RTMP, we were able to achieve the following while still maintaining quality of stream:

  • 500 WebRTC subscribers
  • 1,800 RTSP (mobile) subscribers
  • 1,000 RTMP subscribers

The same server type can support approximately forty 480p RTMP publishers

Patch Release 5.1.1, 13 July 2018

  • Fixed - WebRTC publish failure with Firefox v61.0

Release 5.0.0, 28 June 2018

  • Switched default HLS behavior to use Disk Writes to alleviate some memory utilization issues
  • Fixed - HLS can't play live stream with Disk Writes set to true
  • Fixed - "Zombie" streams are not being reaped
  • Fixed - RTMP Publisher memory leak increases over time and ultimately crashes the server
  • Fixed - VP8 publish failure in WebRTC (affects Opera and some Android Chrome browsers)
  • Fixed - VP8 transcoding not working
  • Fixed - RTC video only to RTSP subscriber issues
  • Fixed - Internet Explorer Flash broadcast to Windows Chrome quality issues
  • Fixed - Underscores in stream names break HLS
  • Fixed - appDisconnect Event is called twice for RTC publisher
  • Fixed - Opera RTC publish and subscribe issues
  • Fixed - Autoscaling - Azure controller unable to create instances for all VM types
  • Fixed - Front End to handle UTF-8
  • Fixed - Newer versions of OBS Failed to Publish

Autoscaling API v3.0 - New Features:

  • Streaming failover for multi-origin broadcasts
  • New Cauldron Transcoder Node to generate multiple bitrates with option to transcode VP8
  • New Relay Node option to allow for even larger scale and connectivity between regions
  • Multi-bitrate stream provisioning
  • WebRTC adaptive bitrate subscribing (ABR Support for WebRTC clients only, mobile SDK plus other protocol support coming soon)
  • VP8 Transcoding on Cauldron Node to alleviate load on edge servers

VERY IMPORTANT: See this guide for upgrade guidelines.

Release 5.0.0 Server Performance Metrics

Tests were run against an AWS c5.large instance (2 CPUs with 4GB memory, 2GB allocated to java_heap). We used our RTMP Bee, RTSP Bee, and RTC Bee clients to do load testing.

Publishing a 256kbps stream via RTMP, we were able to achieve the following while still maintaining quality of stream:

  • 400 WebRTC subscribers
  • 1,800 RTSP (mobile) subscribers
  • 1,000 RTMP subscribers

The same server type can support approximately 75-80 480p RTMP publishers

Patch Release 4.5.4, 07 March 2018

  • Fixed - Autoscaling - Scale down not working consistently
  • Fixed - Post Processing not working

Release 4.5.0, 28 February 2018

  • Added simple auth plugin support across clusters
  • Added shared objects support across clusters
  • Added Log Manager to Red5 Pro server API
  • Added ability to select camera to the front end broadcast page
  • Autoscaling - Added support for Autoscaling on Azure cloud
  • Fixed - Republishing quickly via Android will sometimes result in stream not propagating to Edge
  • Fixed - RTSP Subscribers do not receive UNPUBLISH event on broadcast end
  • Fixed - RTSP restream to YouTube doesn't work
  • Fixed - WebRTC Append - 1-3 second pause between recorded segments
  • Fixed - high CPU usage with RTSP subscriber load
  • Fixed - Unpublish.Notify call - does not get sent over cluster
  • Fixed - RTC Connections do not release JVM threads

Release 4.3.0, 21 December 2017

  • Fixed - Can't publish from Android browsers that don't send profile in SDP request
  • Reduced time for Firefox RTC ICE negotiation
  • Some additional RTC optimizations for clustering/autoscaling

Release 4.2.0, 20 November 2017

  • Added transcode support for Android VP8 WebRTC subscribe/publish
  • Added support for WebRTC mute/unmute - audio and video
  • Fixed - Force cluster edge restreamer retry and preserve ongoing stream relay
  • Fixed - Some RTMP publishers failing to stream HLS
  • Fixed - Send API was not working over cluster/autoscaling
  • Fixed - Video only was failing for RTC subscribers
  • Fixed - HLS video playback in VLC
  • Fixed - HLS playback failing for some streams with mixed case
  • New Autoscale Controller JARs with this release
  • Autoscaling: update for VPNs in multiple AWS regions
  • Autoscaling: fixed - occasional issues adding nodegroup in a second AWS region (added aws.vpcName value)
  • Autoscaling: fixed some logging typos and errors

Known issues: some instability with iOS Safari subscriber; bug has been filed with Apple regarding freeze and occasional crash of WebKit

Release 4.0.2, 29 September, 2017

  • Updated server front end with 4.0.0 HTML5 SDK
  • Includes Simple Auth Plugin

Release 4.0.0, 28 September, 2017

Please see the HTML5 SDK Migration Guide for information on upgrading from HTML5 SDK v3.5.0 to v4.0.0

NOTE: Autoscale updates need to be deployed to Stream Manager and nodes. There are updated Controller jar files that need to be downloaded and deployed to your Stream Manager with release 4.0.0

  • Added support for WebRTC in Safari 11, and Safari on iOS 11
  • Autoscaling - Added support for Autoscaling on Simluated Cloud
  • Fixed - Startrecord/Stoprecord API calls not working as expected
  • Fixed - Firefox WebRTC publisher disconnecting after about 15-30 minutes
  • Fixed - WebRTC flv to mp4 conversion failing
  • Fixed - RTMP Publisher - no video in flv recordings
  • Fixed - Cluster/Autoscaling - Publishing same stream name via RTMP Publisher removes stream from Edge servers
  • Fixed - HLS recorded videos truncated for publishers on lesser networks
  • Fixed - Memory leaks in long-running streams
  • Updated jee-container.xml with modified websockets security settings (for running Red5 Pro with SSL).

Known Issues:

  • iOS SDK Video publish to Safari RTC does not work (audio only is OK)

Release 3.5.0 - 3 August, 2017

  • WebRTC negotiation down to ~4 second
  • Include "getServerStatistics" output to initialization of red5.log
  • Added systemd service support for Red5 Pro
  • WebRTC optimizations
  • Autoscaling: Stream Manager SSL Proxy
  • Autoscaling: Ignore private subnets when creating nodes (AWS only)
  • Audio prioritizing for WebRTC to support high quality audio streams
  • Added licensing status to system statistics
  • Front End - Added extensions to VOD file list
  • Bug - OBS streaming to HLS - no audio or video (but subscribe shows as successful)
  • Bug - RTMP connection not released from license count/limit manager
  • Bug - HLS fallback player displaying mobile publishers with incorrect orientation
  • Bug - Server API - Deleting terminate Client/terminateClients - does not remove WebRTC publisher or stream
  • Bug - Server API - WebRTC connections not being counted as subscribers with applications/live/streams/{streamname} call
  • Bug - Publishing with Chrome on Windows - Firefox subscriber video is stuttery
  • Bug - Front End - fixed multiple bad links
  • Bug - Append overwriting instead of appending
  • Bug - Artifacting in HLS and Flash from iOS A7 publisher
  • Bug - Autoscaling Stream Manager throws an error if there is no default.json file
  • Bug - Autoscaling Large cookies block webrtc broadcast/subscribe
  • Bug - WebRTC publishers/subscribers sometimes disconnected after ~1 min from Autoscaling nodes
  • Bug - Getting audio only with some WebRTC autoscaling subscribers

Release 3.4.4 - 26 May, 2017

  • Hotfix for h.264 rendering issues introduced with Chrome v58

Release 3.4.0 - 28 April, 2017

  • Added Simple Authentication Plugin
  • Added WebRTC support for MP3 audio
  • Fixed: Occasional glitches in RTC to RTC streams
  • Fixed: Jittery WebRTC playback from 3rd-party publishers (FMLE, OBS)
  • Fixed: API stats for a WebRTC stream still display after the stream has stopped broadcasting
  • Fixed: Stream broadcasting for over 4.66 hours to cluster was removed from edge servers
  • Fixed: Autoscaling - updated AWS SDK, including support for some newly-added regions (requires updated cloud plugin download)
  • Fixed: Autoscaling - Can't subscribe to same republished stream name if origin fails (and is replaced)
  • Front-End contains HTML5 SDK updates to support Internet Explorer Flash fallback (see Streaming Release Notes) for details

Release 3.2.0 - 22 March, 2017

  • WebRTC via Chrome browser fixes

Release 3.1.0 - 14 March, 2017

  • Hotfix HTML5 SDK v3.1.0 in Front end and Testbed UI to force rtcpMuxPolicy=negotiate, per Chrome v57 requirement

Release 3.0.0 - 06 March, 2017

  • WebRTC - H264 pass-through
  • WebRTC optimizations to reduce CPU usage and spikes
  • Shared Objects support
  • Updated licensing and support model for server
  • LICENSE.KEY now included with server download
  • Fixed: Record-Append wasn't working with S3 VOD storage
  • Fixed: WebRTC audio only publish fails
  • Fixed: WebRTC video only publish fails
  • Fixed: audio/video sync issues with iOS publish/WebRTC subsciber

Release 2.1.0 - 01 February, 2017

  • Autoscaling API v2.0 including:
    • Ability to autoscale origin servers as well as edge servers
    • Support for multiple origin servers in a nodegroup
    • Ability to specify different server types for origin and edge servers
    • Support for load-balanced stream managers
    • Better management of failed nodes cleanup
    • If deleteDeadGroupNodesOnCleanUp=false then even failed nodes are only stopped, not terminated
    • Ability to list number of connections on individual nodes (edges and origins)
  • Flash to HLS - audio support added
  • Addressed issue where Red5 Pro wasn't starting on some Windows machines
  • Fixed: WebRTC streams were not removed if broadcaster was disconnected, not stopped

Patch Release 2.0.5 - 13 January, 2017

Patch Release 2.0.3 - 05 January, 2017

  • Fixed: WebRTC occasional subscriber limitation issue
  • Fixed: other minor WebRTC-related bugs

Release 2.0.0 - 12 December, 2016

  • Red5 Pro WebRTC NOW LIVE !!!
  • Fixed: iOS a/v sync issues with HLS VOD
  • Fixed: some issues with subscribe-reconnect
  • Fixed: red5-shutdown wasn't always stopping the server process
  • Fixed: Android - Recording didn't orient the stream correctly after camera swap
  • Added option to set memory allocation to Red5 Pro Java process on startup

Known WebRTC limitations:

  • WebRTC two-way conversations are very CPU-instensive.
  • VP8 only on WebRTC endpoints

Release 1.4.0 - 07 October, 2016

Release 1.3.1 - 13 July, 2016

  • Fixed HLS startup issues from 1.3.0

Release 1.3.0 - 08 July, 2016

  • Feature: Red5 Pro API
  • Fixed errors on shutdown of Red5 Pro service
  • Fixed issue where recording to host without app listed will create default folder
  • Additional logging to ensure application adapter methods from mobile subscriber are being triggered

Release 1.2.0 - 07 June, 2016

  • Feature: Autoscale Clustering - support for AWS and Google Compute Engine
  • HLS improvements, cleanup fixes
  • Improved startup times
  • Fixed bug where some mp4 videos would not play back
  • Fixed bug where cluster publisher parameters were not being set to edge servers
  • Fixed bug where subscribing early to a stream gets no audio or video / but stats show flow

Release 1.1.0 - 05 May, 2016

  • Stability Improvements
  • Frame dropping improvements which improves performance
  • RTSP bug fixed which was causing the stream to have no audio and crash

Release 1.0.0 - 01 April, 2016

  • Bug fix for Null meta data - ffmpeg bug in ramp publishing
  • Fixed unable to record
  • Fixed restream errors related to strict amf0
  • Fixed AAC sample rate handling
  • Improved HLS reliability
  • Fixed HLS streams with audio only
  • Improved HLS timestamps and memory management
  • Fixed core bug for mobile subscribers not calling stream playback security
  • Fixed bug for round robin clustering in autoscaled appliances.
  • Removed Servlet dependencies
  • Hardened fix for concurrency
  • Added more verbose logging
  • Fixed room name issue with using very long names in clustering
  • Fixed rare Nullpointer exception at startup
  • Fixed some artifacting with FLV recording
  • Fixed append and record
  • Cleanup to queuing too many packets during rebuffing