Tutorial: Running CDN Transcoding on Public Cloud - OpenVisualCloud/CDN-Transcode-Sample GitHub Wiki

This tutorial shows the steps of building and running the CDN 1:N Transcoding sample on Amazon Web Services (AWS), Azure Virtual Machine (AZURE) and Google Cloud Platform Virtual Machine (GCP).

Create Cluster:

Create a compute cluster containing at least 1 node with the following node configurations:

Machine Config AWS GCP AZURE
Platform Skylake Skylake Skylake
Machine Type m5.12xlarge n1-standard-32 Standard_D32s_v3
Zone Any Any Any
Boot_disk_size 200 200 60
Scratch_disk_size 100 100 100
OS Amazon Linux 2 Ubuntu 16.04

The above instance configurations should be able to support 4 clients in parallel.

Prerequisite

For AWS, run the following commands to install the software packages required to build the sample:

sudo yum update –y
sudo amazon-linux-extras install –y docker
sudo service docker start
sudo yum install –y cmake git

For AZURE and GCP, follow the instructions to install docker.ce, and then run the following commands to install cmake, m4, and git:

sudo apt-get install –y cmake git m4

Initialize docker swarm as we will use docker swarm for deployment:

sudo docker swarm init

To add a worker to this swarm, run the following command (IP address and token will be different):

docker swarm join --token SWMTKN-1-5zc7a41qkmlnkzp27a8yiplj8kdpyl2tovs318h3p3mjst8ju4-7m25p4wowiytut5wvdxjcqzho ip

Clone and Build:

git clone https://github.com/OpenVisualCloud/CDN-Transcode-Sample.git
cd CDN-Transcode-Sample
mkdir build
cd build
cmake ..
cd xcode-server/ffmpeg-sw
make 
cd cdn-server
make
cd deployment/docker-swarm
make

Start Service

make start_docker_swarm

Test the Sample

The sample exposes a web interface at port 443. We need to create a SSH tunnel to access it, as follows:

  • AWS: The SSH tunnel maps localhost port 443 to the AWS EC2 instance port 443, and keypair.pem is the ssh access key pair generated for accessing the AWS EC2 instance:
ssh -L 8443:localhost:443 -Nf -i "keypair.pem" [email protected]
  • AZURE or GCP: The ssh_private_key is ssh access private key for accessing AZURE or GCP VM instances.
ssh -L 8443:localhost:443 -Nf -i ssh_private_key user_name@instance_public_ip

Open your browser to https://localhost:8443 and accept the self-signed certificate to proceed to the sample UI.

images/sample-ui.png