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
- Dedicated server/VPS/cloud server for transcoder server
- At least 8G RAM, 4 vCPUs
- Live Video app version 5.1 or later.
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,
- WS_PORT and WS_EXTERNAL_PORT: defining the internal and external WebSocket server ports.
- NODE_ENV: configures running mode for better performance.
- JWT_SECRET: is the key used for signing and verifying JSON Web Tokens (JWTs). You can set to any random string.
- MFOX_BASE_API_URL: specifies the API URL of MetaFox.
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,
- Allow Webcam Streaming: turn on if you want to allow streaming using webcam.
- Transcoder Server Url: the URL of transcoder webserver.