Видео стрим по Websocket, нужен скриншот

Коллеги, всем привет.

Вводная Есть вот такой такой websocket wss://stoa-wsez-e01.ezvds.net/ezs/60/ezugi_5_hd/websocketstream2

Если к нему подключится, например здесь https://piehost.com/websocket-tester и отправить туда {"eventType":"PLAY","stream":"ezugi_5_hd","requestId":0} то посыпятся сообщения со стримом.

Задача Средставим NodeJS подключится, снять скриншот, отключится.

Честно говоря, незнаю с какой стороны подступится. Редко занимаюсь беком, а работой с видео вообще не занимался никогда. Гугление ничего толком не дало.

Попробовал что-то вот такое

const videoPath = path.join(outputDirectory, `video_${timestamp}.webm`);
const videoStream = fs.createWriteStream(videoPath);

ws.on('message', (data: Buffer) => {
  videoStream.write(data);
});

ws.on('close', () => {
  videoStream.end();
  ffmpeg(videoPath)
    .output(path.join(outputDirectory, `screenshot_${timestamp}_%d.png`))
    .on('end', () => {
      fs.unlinkSync(videoPath);
    })
    .run();
});

Файлы видео, сохраненные, открыть невозможно и ffmpeg ругается

video_1704549199939.webm: Invalid data found when processing input

Так что явно что-то не то делаю. Буду признаетелен за любую подсказку.


Ответы (0 шт):