@HLudens

Как на node.js выдернуть кадры из rtsp без сохранения?

Имеется непрерывная трансляция rtsp.
Нужно постоянно, ежесекундно анализировать кадры из нее при помощи нейросетки.
т.е. нужно на Node скрипте принять rtsp, раздергать на кадры и получить кадр на canvas откуда взять его в виде ImageData. Поскольку это все непрервно вариант с ffmpeg и сохранением файлов на диск не подходит.

пробовал через rtsp-live555
var stream = new rtsp.Live555Client({ input: _url });
stream.on("data", (data) => {
    this.buffer = Buffer.concat([this.buffer, data]);
}

видео принимается, буфер растет, но канвас его не принимает, говорит непонятный формат.

node-rtsp-stream
делает что то не совсем то (или я не понял как настроить ffmpegOptions)

ffmpeg-stream
не работает. Ну или я не понимаю как правильно его запустить.
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 1
@alexdora
Топ-менеджер
1. ffmpeg можно запустить непрерывно и он будет класть скрины в папку, но вам этот вариант не подходит.
Команда примерно такая:
ffmpeg -i rtsp://someserver.com -vf fps=1 screenshot%d.png

Но с точки зрения решения задачи ffmpeg лучший вариант.
Вы хотите каждую секунду закидывать в сеть, только допускаю что забыли что в секунде есть энное количество кадров. И вам в секунду может приходить размазанный кадр. Уж не знаю что за задача у вас, но ffmpeg можно очень тонко настроить и не будет привязки к непонятному модулю

Вот поиск мне тут выдал: https://github.com/agsh/rtsp-ffmpeg

Не знаю сможет потянуть вашу задачу или нет, но тут связка ffmpeg и nodejs
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы