2013-06-25 21 views
4

在我的ASP.NET MVC 4中,我想通过使用HTML5 <video>来流式传输视频。视频存储在此位置 D:\movie\test.mp4ASP.NET MVC4 Media Source Url for HTML5 Video

如何将此位置作为<video>标签的源?我想:

<source src="@Url.Content(@"D:\movie\test.mp4")" type="video/mp4" />

,但不工作。如果我将这些文件添加到我的项目中,并且这样做,<source src="@Url.Content("~/Script/test.mp4")" type="video/mp4" />它将起作用。

将源文件链接到本地​​文件而不必将其放入项目中的正确方法是什么?

此外,媒体文件是否应该在IIS中提供?对此,最佳做法是什么?假设媒体的位置被拉到数据库中的表格中?

回答

7

将源文件链接到本地​​文件 的正确方法是什么,无需将其放入项目中?

无法从客户端访问服务器上的任意文件。试想如果可能的话,会产生巨大的安全漏洞。

您只能访问作为Web应用程序一部分的文件。如果您确实需要访问一些任意文件,那么你将需要写一个控制器动作,将流的文件给客户端:

public ActionResult Video() 
{ 
    return File(@"D:\movie\test.mp4", "video/mp4"); 
} 

再点源标记这个动作:

<source src="@Url.Action("Video")" type="video/mp4" /> 
+0

工程就像一个魅力! –

+1

这不适用于非常大的视频。你会得到内存不足的例外。 – Darcy