As of Red5 Pro release 2.0.0, Red5 Pro Server includes WebRTC support and front-end integration of the Red5 Pro HTML5 SDK.
WebRTC (Web Real-Time Communication) is supported by the Chrome, Firefox and Opera browsers on desktop. In addition, the Chrome browser on Android supports WebRTC. With iOS 11 and Mac High Sierra, Safari also supports WebRTC (older versions of MacOS and iOS will fall back to HLS). Microsoft Edge support was added with Red5 Pro Release 5.4.0. Internet Explorer does not support WebRTC.
Broadcasting/subscribing of WebRTC to WebRTC, WebRTC to HLS, WebRTC to Flash, and Flash to WebRTC are all supported.
Subscribing to a WebRTC publisher using the Red5 Pro Android or iOS SDK client is supported. In addition, subscribing with WebRTC to a stream published with Red5 Pro Android or iOS SDK client is supported.
WebRTC Broadcaster/Subscriber combinations supported, in a nutshell:
- WebRTC <==> WebRTC
- WebRTC <==> Flash
- WebRTC <==> Red5 Pro iOS SDK
- WebRTC <==> Red5 Pro Android SDK
- WebRTC ==> HLS
WebRTC runs on the standard HTTPS port (443). To run Red5 Pro WebRTC server you need to have a valid SSL Certificate for a registered URL. Red5 Pro with SSL walks you through setting up the certificate on your server. Additionally, as with other Red5 Pro server distributions, you will need to install Java (minimum version 8.0).
If you are running the server, without an SSL cert, on your local machine or on a server:
- You will be able to publish/subscribe locally (between browsers).
- You will be able to subscribe to a stream that is being published from localhost (e.g.: http://localhost:5080/live/broadcast.jsp) from a device within the same network (pointing to the IP address of your machine, not to localhost). To subscribe from a mobile device, either via browser on Android, or via SDK client on iOS or Android, the device must be on the same Wifi network as the desktop.
- You will not be able to publish via a WebRTC client that is not local to the machine.
- Note that some browsers have become more strict and will no longer allow insecure WebRTC publishing or subscribing, even on localhost.