@seydx/node-rtsp-stream

Node RTSP Module for homebridge-camera-ui

Usage no npm install needed!

<script type="module">
  import seydxNodeRtspStream from 'https://cdn.skypack.dev/@seydx/node-rtsp-stream';
</script>

README

node-rtsp-stream

Stream any RTSP stream and output to websocket for consumption by jsmpeg. HTML5 streaming video! (Requires ffmpeg)

Usage:

$ npm install node-rtsp-stream

On server:

Stream = require('node-rtsp-stream')
stream = new Stream({
  name: 'name',
  streamUrl: 'rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov',
  wsPort: 9999,
  ffmpegOptions: { // options ffmpeg flags
    '-stats': '', // an option with no neccessary value uses a blank string
    '-r': 30 // options with required values specify the value after the key
  }
})
    

On client:

<html>
<body>
    <canvas id="canvas"></canvas>
</body>

<script type="text/javascript" src="jsmpeg.min.js"></script>
<script type="text/javascript">
    player = new JSMpeg.Player('ws://localhost:9999', {
      canvas: document.getElementById('canvas') // Canvas should be a canvas DOM element
    })	
</script>
</html>

For more information on how to use jsmpeg to stream video, visit https://github.com/phoboslab/jsmpeg

Please note that framerate from cameras must be greater than or equal to 15fps for mpeg1 encoding, otherwise ffmpeg errors will prevent video encoding to occur. If you have a camera with advanced configuration options, make sure it streams video at a recommended 25fps.