Как записать поток 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')
})
Надеюсь это поможет:)