Как записать поток RTSP

Я использую node-rtsp-stream пакет и Websocket, чтобы сделать передачу моей IP-камеры, и визуализация происходит хорошо, теперь я хотел бы знать, как записать эту передачу, и я понятия не имею, как это сделать.

index.js на стороне сервера (NodeJS)

const Stream = require('node-rtsp-stream'),
  stream = new Stream({
    name: 'Garage-Camera',
    streamUrl: `rtsp://${meu_ip}:1030/user=${user}&password=${pass}&channel=1&stream=0.sdp?`,
    wsPort: 5000
  })

на стороне клиента

<div>
  <canvas id="videoCanvas"></canvas>
</div>
<script src="jsmpeg.js"></script>
<script>
  const ws = new WebSocket("ws://localhost:5000")
  const player = new jsmpeg(ws, {
    canvas: document.querySelector('#videoCanvas'),
    autoplay: true,
    audio: false,
    loop: true
  })
</script>

2 ответа

Эта библиотека может помочь rtsp-video-recorder.

В случае возникновения каких-либо вопросов, предложений или запросов функций вы можете связаться со мной через вкладку проблем github .

Вы можете использовать библиотеку node-rtsp-recorder, и ею очень просто пользоваться.

пример записи

     const Recorder = require('node-rtsp-recorder').Recorder
 
     var rec = new Recorder ({
         url: 'rtsp://192.168.1.12:8554/unicast',
         timeLimit: 60, // time in seconds for each segmented video file
         folder: __dirname,
         name: 'cam1',
     })
     // Starts Recording
     rec.startRecording();
 
     setTimeout (() => {
         console.log('Stopping Recording')
         rec.stopRecording()
         rec = null
     }, 300000)

пример захвата изображения

     const Recorder = require('node-rtsp-recorder').Recorder
 
     var rec = new Recorder ({
         url: 'rtsp://192.168.1.12:8554/unicast',
         folder: __dirname,
         name: 'cam1',
         type: 'image',
     })
 
     rec.captureImage (() => {
         console.log('Image Captured')
     })

Надеюсь это поможет:)

Другие вопросы по тегам