Unreal Media Server WebRTC publishing
Supported browsers: Chrome, Firefox, Edge on Windows; Safari on iOS and Mac; Chrome on Android.
You can download this webpage from our SDK package and host it on your website.
All browsers except Firefox require that this page is loaded via HTTPS, to get access to microphone/camera. You can load via HTTP from localhost.
This page uses a websocket to connect to Unreal Media Server. If you don't use secure websocket, and the page is loaded via HTTPS, then most browsers will display a "mixed content" error.
You will still be able to click on the warning icon at the right side of the address bar, and click on "Load unsecure scripts" (Chrome), or set "network.websocket.allowInsecureFromHTTPS" flag (Firefox). To avoid doing that, you must use a secure websocket.
To use a secure websocket (recommended), you need to install a real SSL certificate (not self-signed one) on Unreal Media Server computer, and configure it in Unreal Media Server properties.
Note that for unsecure websocket you need to specify the main Unreal Media Server port (5119 by default); for secure websocket you need to specify the secure port (443 by default).
If you use secure websocket then you need to specify domain name instead of IP address in the server IP address field. Also, if you use secure websocket AND your server is behind NAT router relative to publishing computer,
then you need to modify unrealwebrtcpublisher.js according to this forum thread.
If you use central port for actual WebRTC ICE connection (recommended), the web browser will send streaming media to a predefined single port in Unreal Media Server, dedicated to WebRTC connections (by default 5135).
In this case, you only need to open port 5135 in firewall/NAT router for Unreal Media Server (together with signaling ports, 5119 or 443). Otherwise, the WebRTC connection will be made over a random port; you will need to open all ports in the firewall,
or add Unreal Media Server as an allowed app in the firewall.
iOS does not support VP8/VP9 codecs.
Android does not support VP9 codec.
H264 High and Main profiles may not be available on iOS and Android.
H264 High and Main profiles may produce low bitrate stream if video quality and contrast are poor.
H264 Constraint Baseline profile may not produce higher video resolutions than 640x480 or 720x420.