This is a multi-program website which allows you to broadcast your screen to multiple remote computer. It is made up of three programs:
The code isn't intended to "just work", there are specific settings for my personal usecase of this. However, feel free to use it as a starting point.
In the background, MediaMTX is used to receive a video stream and distribute it to multiple clients.
The socket server is a simple NodeJS server which acts as a management interface between the controller and the client. It is used to store the list of clients and their connection details.
cd socketserver
npm install
cp .env.sample .env # edit .env file
npm start
The controller is a Next.js website which allows you to view and control the remote computers connected to your broadcast.
cd controller
npm install
cp .env.sample .env # edit .env file
npm run dev
The client is a simple website which connects to the MediaMTX stream via WebRTC to display the video. In the background, it communicates with the socket server to send it information about the client.
For installation, just copy the contents of the client
folder to your webserver.
This project is licensed under the MIT License - see the LICENSE file for details