Видео стрим по 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
Так что явно что-то не то делаю. Буду признаетелен за любую подсказку.