title: Streaming videos with ASP.NET Core 3
body: <p>I'm currently building a API in ASP.NET Core 3 as my first project with .NET Core. </p>
  
  <p>I'm currently trying to send a video to my React.js frontend to watch it in the browser. Uploading files and videos does work without a problem and the method you see down below also already sends a file to the client but if the video is longer than a few seconds, the video player is really slow and it also takes a long time to skip a few seconds of the video. I think that's because the file is first completely downloaded and than played. </p>
  
  <pre><code>[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;
  }
  </code></pre>
  
  <p>I think the way to solve my problem is to stream the file and not to send it as a whole. 
  I've already googled on how to stream videos with ASP.NET Core 3 but I only find websites explaining it for ASP.NET Core 2 (e.g. <a href="http://anthonygiretti.com/2018/01/16/streaming-video-asynchronously-in-asp-net-core-2-with-web-api/" rel="noreferrer">http://anthonygiretti.com/2018/01/16/streaming-video-asynchronously-in-asp-net-core-2-with-web-api/</a>)</p>
  
  <p>I've already tried to use the code on these websites but the way they've done it is not compatible to ASP.NET Core 3.</p>
  
  <p>How can I stream files in ASP.NET Core 3?</p>