DEV Community

Jonas Birmé for Eyevinn Video Dev-Team Blog

Posted on

6 2

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
Enter fullscreen mode Exit fullscreen mode

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('0.0.0.0', 1234);
srt.listen(readStream => {
  console.log("Client connected");
  readStream.pipe(dest);
});

console.log("Waiting for client to connect");
Enter fullscreen mode Exit fullscreen mode

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.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (2)

Collapse
 
grufft profile image
gruffT

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?
Cheers

Collapse
 
birme profile image
Jonas Birmé

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

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up