【问题标题】:MVC ActionResult for large video files大型视频文件的 MVC ActionResult
【发布时间】:2012-10-13 14:08:46
【问题描述】:

我正在为网站使用 ASP.NET MVC 4。该网站为我们的团队管理在线活动,并允许注册用户访问在线材料、网络活动档案和教学视频。我已经构建了一个用于上传和管理视频的系统,现在我需要构建控制器操作来将视频文件发送到网页。我们使用 VideoJS 作为查看器,我现在对此非常满意。我们需要维护文件的安全性,因此仅将文件放在 Web 服务器上的某个位置似乎对我们不起作用。

我的主要问题是将文件返回给查看器的好方法是什么?我习惯于使用 ActionResult 和 JSONResult 类,但它们似乎不太适合视频文件。这些文件可能非常大,有时高达 GB 或更多。我看到了 MVC FileResult 类、FileStreamResult 类和 FileContentResult 类。我应该使用哪一个?在构建它时我应该考虑哪些其他因素?

感谢您的帮助。

道格

【问题讨论】:

标签: asp.net-mvc video-streaming actionresult


【解决方案1】:

您当然不应该将整个视频作为回复发送给观看者,因为他们会等待很长一段时间才能下载。您需要将其流式传输给他们。我想您需要从控制器返回某种字节流。

YouTube 等地方通过 Flash 提供视频是有原因的 - 因为质量和速率可以轻松控制,并且它提供了一定程度的复制保护(尽管它不是万无一失的)。我刚刚做了一个快速的谷歌搜索,发现了这个:

http://www.longtailvideo.com/jw-player/download/

可能有用,但我不能亲自担保!

显然,Razor 提供了自己的视频文件处理功能,您可能会觉得这很有用:

http://www.asp.net/web-pages/tutorials/files,-images,-and-media/10-working-with-video

另外,HTML5 支持视频流(我相信你知道 VideoJS 使用它):

http://www.w3schools.com/html/html5_video.asp

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2021-06-18
    • 1970-01-01
    相关资源
    最近更新 更多