DEV Community

Jonas Birmé for Eyevinn Video Dev-Team Blog

Posted on

SRT Server in NodeJS

Part of a series of videos we go through the necessary building blocks to build an SRT to WebRTC gateway in NodeJS. SRT in terms of the transport protocol called Secure Reliable Transport.

In the first episode we go through how to build an SRT server using the NodeJS native bindings provided by our @eyevinn/srt library.

Install the library

npm install --save @eyevinn/srt

This will download the SRT SDK and compile it on your computer. Example of a very simple SRT receiver (in listener mode) using the Readable stream API included in the library.

const fs = require('fs');
const dest = fs.createWriteStream('./output.ts');

const { SRTReadStream } = require('@eyevinn/srt');
const srt = new SRTReadStream('', 1234);
srt.listen(readStream => {
  console.log("Client connected");

console.log("Waiting for client to connect");

Above example will setup an SRT socket to listen on port 1234 for a connection. Once a connection is established it will read data from the socket and pipe it to a Writable stream that writes to disk.

Discussion (2)

grufft profile image

Hey Jonas
Great article.
I've spent the last week building this workflow in another stack but would much prefer to stay all in the JavaScript world. Would you mind sharing the stack you intend to use at a high level here so I can move on?

birme profile image
Jonas Birmé Author

Hi! Sorry for late reply. My plan was to stay in the JavaScript world by building / using an JS-based demuxer and h264 decoder compiled in WebAssembly