Livestream (Live Video) has the feature to live from directly built-in devices on your computer without the streaming software's support. Furthermore, this new feature still leverages Mux and its features to provide a smooth experience for users. In this article, we will guide you to set up the transcoder server to enable this feature.

Requirements

Transcoder server setup

Firstly, the transcoder server had been built and pushed to DockerHub at https://hub.docker.com/r/foxsystem/metafox-transcoder-livevideo. Therefore, you can update docker-compose.yml to have a new service - "transcoder" as below. 
docker-compose.yml


version: '3'
 
services:
    ...
    transcoder:
        container_name: metafox-transcoder
        image: foxsystem/metafox-transcoder-livevideo:latest
        restart: always
        tty: true
        volumes:
            - ./upload:/app/upload
        ports:
            - ${WS_EXTERNAL_PORT:-3001}:${WS_PORT}
        env_file:
            - .env
        networks:
            - metafox-app-tier


Moreover, to make the server operate correctly, you also have to update your .env to adapt a few variables that the server needs
.env

WS_PORT=3000
WS_EXTERNAL_PORT=3001
NODE_ENV=production
JWT_SECRET=transcoderSecret
MFOX_BASE_API_URL=https://yourdomain/api/v1


Given that,

Finally, you can just restart the docker to apply new service by using command

docker-compose up -d


Proxy Setup (Optional)

You can set up web server (NginX/Apache) to proxy to transcoder service with certain domain. Here is the sample Nginx configuration to for transcoder with domain demo-transcoder.metafox.app

server {
    server_name demo-transcoder.metafox.app;

    # You can increase the limit if your need to.
    client_max_body_size 2000M;

    add_header Accept-Ranges bytes;

    location / {
        proxy_pass http://127.0.0.1:3001/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;
        proxy_force_ranges on;

        proxy_redirect off;
    }

    listen 80;

}

Configure MetaFox

Now, let's go to AdminCP of MetaFox to configure Live Video with the transcoder server. Visit AdminCP > App Settings > Live Videos > Settings and configure two settings: Allow Webcam Streaming and Transcoder Server Url (see in image below).

Given that,