Skip to content

rmja/MjpegRelay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Motion JPEG Relay

This is yet another implementation of a mjpeg relay/forwarder/proxy. This time in C#. It should be reasonably fast and support many clients without any issues. It consumes approximately 60mb of ram and does not use any significant cpu resources.

It makes a single connection to a camera stream (either rtsp or mjpeg), and provides a stream endpoint which can be used for many clients without any burdon on the camera.

It has the following command line switches:

  • --source must be either rtsp or mjpeg.
  • --rtsp:streamurl the url of the rtsp source stream.
  • --rtsp:transport the rtsp transport method, default is tcp.
  • --mjpeg:streamurl the url of the mjpeg source stream.

An example is

dotnet run -- --source=rtsp --rtsp:streamurl=rtsp:https://camera/stream

This will start a server on port 5000 and the relayed stream is available at https://localhost:5000/stream.

Docker

The program is readily available on docker hub. The same command line switches apply, for example:

docker run --network=host rmjac/mjpeg-relay --urls=https://+:9000 --source=rtsp --rtsp:streamurl=rtsp:https://some/stream

This will start a server on host running on port 9000 that connects to the rtsp stream and serves a relayed mjpeg stream on https://localhost:9000/stream.

Build Instructions

docker build -t rmjac/mjpeg-relay -f src\MjpegRelay\Dockerfile .
docker push rmjac/mjpeg-relay