title: Video wont stream to video-html5 tag
body: <p>I'm trying to implement a API method that streams a video file from a private Azure Storage Account to a video-html5 tag and it should allow me to forward/rewind in on the page. I have one method that just returns the entire file to the browser (which works) but doing so prevents me from forward/rewind the video so I'm trying to use PushStreamContent instead but it wont return the content to the browser, it only returns the metadata.</p>
  <p>So my goals:</p>
  <ul>
  <li>Stream video to browser (i.e. when having a a big file like 500mb i shouldnt have to wait for entire download)</li>
  <li>Forward/Rewind/changing video time should work.</li>
  </ul>
  <p>What am I missing here to get this to work?</p>
  <pre><code>    [HttpGet]
      [Route(&quot;api/video/{ext}/{filename}&quot;)]
      public async Task&lt;HttpResponseMessage&gt; ExecuteAsync(string filename, string ext)
      {
          
          var _filename = @&quot;&quot; + filename + &quot;.&quot; + ext;
  
          string blobstorageconnection = _configuration.GetValue&lt;string&gt;(&quot;blobstorage&quot;);
          string blobContainer = _configuration.GetValue&lt;string&gt;(&quot;blobcontainer&quot;);
  
          CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(blobstorageconnection);
          CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
          CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference(blobContainer);
          CloudBlockBlob blockBlob = cloudBlobContainer.GetBlockBlobReference(_filename);
  
  
          var response = new HttpResponseMessage();
          
          if (!blockBlob.Exists())
          {
              response.StatusCode = HttpStatusCode.NotFound;
              return response;
          }
          else
          {
              response.StatusCode = HttpStatusCode.OK;
          }
  
  
          response.Content = new PushStreamContent(async (outputStream, _, __) =&gt;
          {
              try
              {
                  
                  await blockBlob.DownloadToStreamAsync(outputStream);
              }
              finally
              {
                  outputStream.Close();
              }
          });
  
  
          response.Content.Headers.ContentType = new MediaTypeHeaderValue(&quot;video/&quot; + ext);
          return response;
  
      }
  </code></pre>
  <p>This is my HTML code:</p>
  <pre><code>&lt;section class=&quot;slice-lg sct-color-2 border-bottom&quot; style=&quot;padding-top: 20px;&quot;&gt;
      &lt;div class=&quot;container col-11&quot;&gt;
          &lt;div class=&quot;row justify-content-center&quot;&gt;
              &lt;video width=&quot;640&quot; controls autoplay=&quot;autoplay&quot; preload=&quot;auto&quot;&gt;
                  &lt;source src=&quot;/api/video/mp4/f0d67d82_mov_bbb&quot; type=&quot;video/mp4&quot;&gt;
              &lt;/video&gt;
          &lt;/div&gt;
      &lt;/div&gt;
  &lt;/section&gt;
  </code></pre>
  <p>Output from my method:</p>
  <pre><code>{&quot;version&quot;:{&quot;major&quot;:1,&quot;minor&quot;:1,&quot;build&quot;:-1,&quot;revision&quot;:-1,&quot;majorRevision&quot;:-1,&quot;minorRevision&quot;:-1},&quot;content&quot;:{&quot;headers&quot;:[{&quot;Key&quot;:&quot;Content-Type&quot;,&quot;Value&quot;:[&quot;video/mp4&quot;]}]},&quot;statusCode&quot;:200,&quot;reasonPhrase&quot;:&quot;OK&quot;,&quot;headers&quot;:[],&quot;trailingHeaders&quot;:[],&quot;requestMessage&quot;:null,&quot;isSuccessStatusCode&quot;:true}
  </code></pre>