5

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

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

我感谢您的帮助。

道格

4

1 回答 1

0

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

像 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

于 2013-08-20T11:10:55.023 回答