【发布时间】:2020-04-08 15:13:41
【问题描述】:
我有一个已上传到 Azure Blob 存储(块、存储 v2)的 mp4 视频。我无法使用<video> 标签提供视频而不会出现播放延迟,因为视频已完全从服务器下载(带有 200 响应状态代码)。
(更糟糕的是,虽然与我的问题不完全相关,因为我认为这更多是浏览器问题,但视频设置为循环播放,并且每次循环都会重新下载。)
我希望使用部分内容范围流式传输视频,以便立即开始播放。
我尝试直接获取视频,为<video> 标签src 属性提供绝对URI;我还尝试通过 ASP .NET Core 3.1 控制器方法提供视频,返回 FileStreamResult 并将 enableRangeProcessing 参数设置为 true。这是代码:
public async Task<IActionResult> GetVideo(string videoUrl)
{
var httpClient = new HttpClient();
var stream = await httpClient.GetStreamAsync(videoUrl);
return File(stream, new MediaTypeHeaderValue("video/mp4").MediaType, true);
}
似乎无论我尝试什么,我都无法获得带有 206 状态代码的范围响应。我已经看到有关使用 Azure 媒体服务的建议,但这似乎有点矫枉过正,而且这应该只是支持而无需合并其他服务。
任何帮助/建议将不胜感激 - 谢谢!
【问题讨论】:
标签: c# video-streaming html5-video azure-blob-storage asp.net-core-3.1