Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dennis-b/webrtc-transmitter

Sample project for transmitting video/audio stream with ffmpeg/gstreamer over WebRTC.
https://github.com/dennis-b/webrtc-transmitter

ffmpeg gstreamer nestjs nodejs react webrtc webrtc-demos

Last synced: 2 months ago
JSON representation

Sample project for transmitting video/audio stream with ffmpeg/gstreamer over WebRTC.

Awesome Lists containing this project

README

        

# webrtc-transmitter

## Description
Sample project for transmitting video/audio stream with ffmpeg/gstreamer over WebRTC.


This project has 3 parts:




1 - server : node server for WebRTC [signaling](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling) process.


2 - transmitter - node app that streaming rtsp video stream (other stream also can be used)


3 - client - react application for displaying the stream.



* I use [nats.io](https://nats.io/) for messaging system between the server and transmitter.
* I use [GraphQL](https://graphql.org/) for the client - server communication.

## Prerequisites

1 - Install [Gstreamer](https://gstreamer.freedesktop.org/download/).


2 - Install [Docker](https://www.docker.com/get-started).


3 - Install [Docker Compose](https://docs.docker.com/compose/install/).


4 - Install [Yarn](https://classic.yarnpkg.com/en/docs/install#mac-stable).

## Installation

```bash
# install server
$ cd server
$ yarn

# install transmiter
$ cd transmitter
$ yarn

# install client
$ cd client
$ yarn

```

## Running

* from root folder:

```bash
# start nats
$ cd docker
$ docker-compose -d up

# start server
$ yarn start:server

# start transmitter
$ yarn start:transmitter

# start client
$ yarn start:client

```


* Open http://localhost:3000/ to view it in browser

## TODO
* Add ffmpeg example