Deploying CDN
for low latency WebRTC streaming
Here we show an example of deploying the minimal CDN configuration for low latency WebRTC streaming based on Web Call Server
The scheme below shows a minimal CDN configuration example based on 3 servers in a European data center: 1 Origin server and 2 Edge servers.
- Origin is the server configured for publishing media streams. It shares streams to other CDN servers.
- Edge is the server configured for sharing streams to viewers. It pulls streams from Origin or Transcoder servers and does not pass them to other CDN servers.
The low latency WebRTC streaming CDN works according to the following principle: Publisher sends a stream to the Origin server. Subscriber requests a stream from the Edge server. Edge server pulls stream from the Origin server. As a result, the stream goes from Origin to Edge and then to the Subscriber who requested this stream.
Web Call Server installation to CDN servers
1. Install CentOS 7 x86_64 to a server with the following minimal requirements or choose VPS alike:
- 2 Gb RAM
- 10 Gb HDD or SSD
- 1 CPU core
2. Set server hostname in /etc/hosts, check availability
ping $HOSTNAME
3. Install epel-release
yum install epel-release
4. Install wget
yum install wget
5. Install JDK
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
6. Download WebCallServer latest build installation package
wget https://flashphoner.com/download-wcs5.2-server.tar.gz
7. Install WCS
tar -xvzf download-wcs5.2-server.tar.gz cd FlashphonerWebCallServer-5.2.xxxx ./install.sh
8. Start WCS
systemctl start webcallserver
9. Check if server started successfully
tail -f /usr/local/FlashphonerWebCallServer/logs/flashphoner.log
10. Activate your license
cd /usr/local/FlashphonerWebCallServer/bin ./activation.sh
Servers setup
Add to every server configuration file flashphoner.properties the following settings (server domain names are examples):
- Origin EU
cdn_enabled=true cdn_ip=o-eu1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin
- Edge 1 EU
cdn_enabled=true cdn_ip=e-eu1.flashphoner.com cdn_point_of_entry=o-eu1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge
- Edge 2 EU
cdn_enabled=true cdn_ip=e-eu2.flashphoner.com cdn_point_of_entry=o-eu1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge
Servers should be restarted after setup.
Testing
Open Two Way Streaming example page on o-eu1 server and publish a stream from web camera or virtual camera, a cyclic video with countdown timer from 10 minutes to 0, for example
Open Player example page on e-eu1 and e-eu2 servers and play the stream
Download Web Call Server 5
System requirements: Linux x86_64, 1 core CPU, 2 Gb RAM, Java
Installation:
- wget https://flashphoner.com/download-wcs5.2-server.tar.gz
- Unpack and install using 'install.sh'
- Launch server using command 'service webcallserver start'
- Open the web interface https://host:8444 and activate your license
If you are using Amazon EC2, you don't need to download anything.