Итак, я настраиваю потоковый веб-сайт для увлекательного обучения, и я нашел здесь этот проигрыватель, который очень хорошо работает для меня https://github.com/phoboslab/jsmpeg На этой странице у них есть github со скриптом узла, который называется websocket-relay. JS, что я в основном пытаюсь воспроизвести в C #. В основном, возьмите поток данных из ffmpeg и отправьте его через веб-сокеты в проигрыватель javascript.
В настоящее время я добился немалого прогресса, взял пакет nuget для веб-сокет-резкости для обработки нужного мне сервера веб-сокетов иЯ могу читать в потоке из тела запроса вызова API, однако, потому что это поток не сжимается, я не могу видеть, как долго это происходит, и поэтому я просто случайным образом выбрасываю 1024 байта в проигрыватель в бесконечном цикле. Однако аудио и видео очень нестабильны.
2 другие проблемы поменьше:1. Я не знаю, когда заканчивается поток (человек прекращает потоковую трансляцию)2. В конце концов поток становится большим, и я получаю ошибку
Microsoft.AspNetCore.Server.IIS.BadHttpRequestException: 'Request body too large.'
Вот код, в котором у меня есть и работает, как указано выше.
var reader = Request.BodyReader.AsStream(true);
while (reader.CanRead)
{
byte[] buf = new byte[1024];
reader.Read(buf, 0, buf.Length);
Sessions.Broadcast(buf);
}