Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

407
Views
Transmisión de videos con ASP.NET Core 3

Actualmente estoy creando una API en ASP.NET Core 3 como mi primer proyecto con .NET Core.

Actualmente estoy tratando de enviar un video a mi interfaz React.js para verlo en el navegador. La carga de archivos y videos funciona sin problemas y el método que ve a continuación también envía un archivo al cliente, pero si el video dura más de unos segundos, el reproductor de video es muy lento y también toma mucho tiempo para omitir unos segundos del video. Creo que eso se debe a que el archivo primero se descarga por completo y luego se reproduce.

 [Route("getFileById")] public FileResult getFileById(int fileId) { var context = new DbContext(); var file = context.File.Find(fileId); if (file == null) { Console.WriteLine("file " + fileId + " not found"); return null; } var content = new FileStream(file.Name, FileMode.Open, FileAccess.Read, FileShare.Read); var response = File(content, "application/octet-stream"); return response; }

Creo que la forma de resolver mi problema es transmitir el archivo y no enviarlo como un todo. Ya busqué en Google cómo transmitir videos con ASP.NET Core 3, pero solo encuentro sitios web que lo explican para ASP.NET Core 2 (por ejemplo, http://anthonygiretti.com/2018/01/16/streaming-video-asynchronously -en-asp-net-core-2-con-web-api/ )

Ya intenté usar el código en estos sitios web, pero la forma en que lo hicieron no es compatible con ASP.NET Core 3.

¿Cómo puedo transmitir archivos en ASP.NET Core 3?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Si desea transmitir el video en el navegador, su servidor debe admitir solicitudes de rango HTTP . En tal caso, el servidor puede enviar solo una pequeña porción de un contenido solicitado por el cliente. Como desea transmitir video en el navegador, puede usar la etiqueta html de video que solicita un contenido usando encabezados de rango. Por lo tanto, también puede saltarse un tiempo e inmediatamente reproducir la película desde esa posición, antes de que se descargue por completo.

ASP.NET Core 3 ya tiene soporte para solicitudes de rango HTTP, está implementado en el método PhysicalFile que tiene el atributo enableRangeProcessing . Como dice la documentación:

Devuelve el archivo especificado por rutafísica (Status200OK), el tipo de contenido especificado como tipo de contenido y el nombre de descarga de archivo especificado como nombre de archivo sugerido. Esto admite solicitudes de rango (Status206PartialContent o Status416RangeNotSatisfiable si el rango no es satisfactorio).

 [Route("getFileById")] public FileResult getFileById(int fileId) { ... return PhysicalFile($"C:/movies/{file.Name}", "application/octet-stream", enableRangeProcessing: true); }

Tenga en cuenta que la ruta debe ser absoluta (no relativa).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!