You need to enable JavaScript to run this app. 如何在ASP.NET Core MVC视图中播放存储在SQL数据库中的视频
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET Core MVC视图中播放存储在SQL数据库中的视频

实现步骤

1. 新增控制器接口返回视频流

在你的MVC控制器中新增专门返回视频数据的Action,ASP.NET Core原生支持FileResult直接输出二进制内容,同时开启范围请求支持即可实现进度条拖拽、断点续播等常用视频播放能力。

public class VideoController : Controller
{
    private readonly YourDbContext _context;
    // 构造函数注入数据库上下文
    public VideoController(YourDbContext context)
    {
        _context = context;
    }

    public async Task<IActionResult> GetVideo(int id)
    {
        // 根据视频ID查询对应存储的二进制数据
        var videoSegment = await _context.VideoSegments.FindAsync(id);
        if (videoSegment == null)
        {
            return NotFound();
        }
        // 返回视频流,根据实际视频格式调整MIME类型,此处以MP4为例
        return File(videoSegment.VideoData, "video/mp4", enableRangeProcessing: true);
    }
}

2. 视图中添加HTML5播放器

直接在需要展示视频的cshtml视图中插入video标签,src指向上述接口地址即可:

<!-- 替换参数为实际的视频ID -->
<video src="@Url.Action("GetVideo", "Video", new { id = 你的视频ID })" controls width="800">
    您的浏览器不支持HTML5视频播放
</video>
注意事项
  • 如果存储的视频不是MP4格式,需要把代码中的video/mp4替换为对应的MIME类型,比如WebM对应video/webm,AVI对应video/x-msvideo
  • 如果视频体积普遍较大,可优化为流式返回减少内存占用:
return File(new MemoryStream(videoSegment.VideoData, writable: false), "video/mp4", enableRangeProcessing: true);
  • 若需要对视频访问做权限控制,直接在GetVideo接口中添加权限校验逻辑即可,和普通业务接口逻辑完全一致。

内容的提问来源于stack exchange,提问作者user10309793

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 03:06:10