Streaming Server Configuration - daniel-hong-sicis/streaming GitHub Wiki

Linux Setup

Create user

adduser sicis
passwd sicis
usermod –aG wheel sicis
==> RECONNECT Telnet Terminal

Enable NIC

nmtui -> enable enp0s3 --> ..
systemctl restart network

Install Java8, Java11 & Maven

sudo yum list java*jdk-devel
sudo yum install java-1.8.0-openjdk-devel.x86_64

sudo yum list java*jdk-devel
sudo yum install java-11-openjdk-devel.x86_64

sudo alternatives --config java
==> And choose java11
  sudo wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz -P /tmp
  sudo tar xf /tmp/apache-maven-3.6.3-bin.tar.gz -C /opt
  sudo ln -s /opt/apache-maven-3.6.3 /opt/maven
  sudo nano /etc/profile.d/maven.sh

Add below

# Apache Maven Environment Variables
# MAVEN_HOME for Maven 1 - M2_HOME for Maven 2
export M2_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

And next step

  sudo chmod +x /etc/profile.d/maven.sh
  source /etc/profile.d/maven.sh
  mvn --version 

Install git

sudo yum install git

Install yum / Docker

sudo yum install -y yum-utils

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

sudo systemctl start docker

Test Docker

sudo docker run hello-world

Kurento Setup

Download Docker Image & Run

sudo docker pull kurento/kurento-media-server:latest

sudo docker run --rm \
    --name=kms \
    -p 8888:8888/tcp \
    -p 5000-5050:5000-5050/udp \
    -e KMS_MIN_PORT=5000 \
    -e KMS_MAX_PORT=5050 \
    kurento/kurento-media-server:latest

sudo docker run --rm \
    --name=kms \
    -p 8888:8888/tcp \
    -p 5000-5050:5000-5050/udp \
    -e KMS_MIN_PORT=5000 \
    -e KMS_MAX_PORT=5050 \
    kms1

Open firewall

sudo firewall-cmd --zone=public --permanent --add-port=8888/tcp
sudo firewall-cmd --zone=public --permanent --add-port=5000-5050/udp
sudo firewall-cmd --zone=public --permanent --add-port=49152-65535/udp
sudo firewall-cmd --zone=public --permanent --add-port=8443/tcp

sudo firewall-cmd --zone=public --permanent --add-port=80/tcp
sudo firewall-cmd --zone=public --permanent --add-port=443/tcp


sudo firewall-cmd --zone=public --permanent --add-port=5080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=8180/tcp

sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --list-all

Run Kurento Example

git clone https://github.com/Kurento/kurento-tutorial-java.git
cd kurento-tutorial-java/kurento-player
git checkout master
mvn -U clean spring-boot:run

mvn -U clean spring-boot:run \
    -Dspring-boot.run.jvmArguments="-Dkms.url=ws://localhost:8888/kurento"

NodeJS setup

sudo yum install epel-release
sudo yum -y install nodejs
sudo npm install -g bower
sudo npm install -g http-server

Run kurento NodeJS Example

sudo git clone https://github.com/lulop-k/kurento-rtsp2webrtc.git

run 'http-server'

http://192.168.56.102:8080/index.html?ws_url=ws://192.168.56.102:8888/kurento
http://localhsot:8080/index.html?ws_url=ws://192.168.56.102:8888/kurento

Install coturn

sudo docker pull coturn/coturn
(reference) : https://hub.docker.com/r/instrumentisto/coturn

[run]
docker run -d -p 3478:3478 -p 49160-49200:49160-49200/udp \
       instrumentisto/coturn -n --log-file=stdout \
                             --external-ip='$(detect-external-ip)' \
                             --min-port=49160 --max-port=49200docker pull

About TURN Server

[1] https://blog.bumnyeong.com/2020/05/turn-coturn.html
[2] https://gabrieltanner.org/blog/turn-server
[3] https://dev.to/kevin_odongo35/how-to-configure-a-turn-server-3opd
[4] https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html#centos
[5] https://stackoverflow.com/questions/47304382/no-remote-stream-using-kurento-docker-image-with-kurento-hello-world-example-on
[6] https://www.w3.org/TR/webrtc/#simple-peer-to-peer-example
[7] https://anyconnect.com/stun-turn-ice/