标签: range-header

从 .NET Core 将视频流式传输到 Safari

流式传输在除 Safari 之外的所有浏览器中都能正常运行。据我所知,请求应该支持范围标头。

这是我正在使用的代码:

    public async Task<FileStreamResult> GetVideoStream()
        {
            if (Request.Headers.ContainsKey("Range"))
            {
                Request.Headers.TryGetValue("Range", out var range);
                _httpClient.DefaultRequestHeaders.Add("Range", range.ToString());
            }

            var stream = await _httpClient.GetStreamAsync(_url);

            return File(stream, "video/mp4", true);
        }
Run Code Online (Sandbox Code Playgroud)

要求:

curl --range 0-99 https://localhost:44312/GetVideoStream -o D:\test
Run Code Online (Sandbox Code Playgroud)

运行良好,仅保存 100 字节到文件。

还尝试了各种控件静音playsinline preload =“metadata”type =“video / mp4”

safari video-streaming asp.net-core range-header

5
推荐指数
1
解决办法
450
查看次数