Setup

In the following guide, we will cover all the necessary steps to set up a Media Server instance on your own server or computer from scratch.

Minimum Requirements

  • Debian 10
  • 512mb RAM
  • 1 Core

Install System Tools and Node.js

apt update; \
apt install -y git curl nano xz-utils; \
curl -sL https://deb.nodesource.com/setup_15.x | bash -; \
apt install -y nodejs

Install FFmpeg

cd /tmp; \
wget https://media.network/static/ffmpeg-release-amd64-static.tar.xz; \
tar xvf ffmpeg-release-amd64-static.tar.xz; \
cd /tmp/ffmpeg-*/; \
mv ffmpeg ffprobe /usr/bin/;

Clone Media Server Git Repository

cd ~; \
git clone https://github.com/mediafoundation/mediaserver.git; \
cd mediaserver; \
npm i

Running the App

Make sure you are on the correct path, and run the following command to start your Media Server:

node app.js

Testing the server

Open a web browser and go to your server IP address, you will see your Media Server home page if everything is setup correctly.

http://YOUR.IP.ADDRESS:8080

Securing the server

In order to prevent unauthorized users to stream to your RTMP server, it's recommended to change the default secret passphrase. This passphrase is utilized to create safe stream keys.

nano config.js
mediaserver/config.js
const config = {
passphrase: "My Secret Passphrase",
//...

Admin Panel

Media Server comes with an admin panel and an API installed by default. Through this panel you'll be able to check streams and network usage details. It can be accessed through any web browser using the following URL:

http://YOUR.IP.ADDRESS:8080/admin

Admin Username and Password can be set-up by editing the config.js file and restarting the Media Server instance.

mediaserver/config.js
//...
auth: {
api : true,
api_user: 'admin',
api_pass: 'admin',
},
//...

Credits

Media Server is a fork of illuspas' Node-Media-Server, a Node.js modified implementation of RTMP/HTTP-FLV/WS-FLV/HLS/DASH Media Server Based on Arut's nginx RTMP Module.