MJPEG stream w/ .NET core 2.0
Я использую .NNET Core 2.0 для разработки своего веб-API на C#, и я хочу переслать поток изображений MJEPG с запросом HTTP GET. Я создал составное содержимое, но когда я проверяю ответ, я вижу только первое изображение, и никакого воспроизведения видео не происходит. Я пытался даже использовать внешний файл mjpeg, который, как я знаю, работает, но он делает то же самое, он отображает первое изображение.
Что я уже пробовал:
Я попытался использовать уже существующий поток MJEPG, который я получаю от события камеры, и использовать файл mjepg.
Это запрос Get контроллера:
// GET: api/<controller> [HttpGet] public IActionResult Get() { var path = Path.Combine( Directory.GetCurrentDirectory(), "LVUpload", "test.mjpeg"); var stream = new FileStream(path, FileMode.Open); MultipartResult multipartResult = new MultipartResult { ContentType = "image/jpeg", Stream = stream }; return multipartResult; }
И реализации составных :
public class MultipartContent { public string ContentType { get; set; } public Stream Stream { get; set; } } public class MultipartResult : MultipartContent, IActionResult { private readonly System.Net.Http.MultipartContent content; public MultipartResult(string subtype = "x-mixed-replace", string boundary = "canonliveview") { if (boundary == null) { this.content = new System.Net.Http.MultipartContent(subtype); } else { this.content = new System.Net.Http.MultipartContent(subtype, boundary); } } public async Task ExecuteResultAsync(ActionContext context) { if (Stream != null) { var content = new StreamContent(Stream); if (ContentType != null) { content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(ContentType); } this.content.Add(content); } context.HttpContext.Response.ContentLength = content.Headers.ContentLength; context.HttpContext.Response.ContentType = content.Headers.ContentType.ToString(); await content.CopyToAsync(context.HttpContext.Response.Body); }
Может ли кто-нибудь помочь мне сделать это с помощью .Net Core 2.0? Я знаю, что это возможно с полным .Net framework, но я должен использовать последнюю версию .Net Core.