How to stream video content in asp.net?
You're reading the entire file into a single buffer, then sending the entire byte array at once.
You should read into a smaller buffer in a while
loop.
For example:
byte[] buffer = new byte[4096];while(true) { int bytesRead = myStream.Read(buffer, 0, buffer.Length); if (bytesRead == 0) break; Response.OutputStream.Write(buffer, 0, bytesRead);}
This is more efficient for you especially if you need to stream a video from a file on your server or even this file is hosted at another server
File On your server:
context.Response.BinaryWrite(File.ReadAllBytes(HTTPContext.Current.Server.MapPath(_video.Location)));
File on external server:
var wc = new WebClient(); context.Response.BinaryWrite(wc.DownloadData(new Uri("http://mysite/video.mp4")));