HTML5视频 - 来自数据库的数据

时间:2013-10-05 07:40:34

标签: html5 sql-server-2008 webforms html5-video asp.net-4.0

客户很有趣 - 始终提出新的要求....

好的,所以我有一个ASP.NET 4.0 Webforms应用程序,客户可以上传文件(如PDF或Excel文档),并将这些文件存储在VARBINARY(MAX)列内的SQL Server中。像魅力一样。

现在他们想出了一个新的要求:他们也希望能够上传视频(如* .wmv,* .mp4等)。与刚刚被要求下载到客户硬盘的文档相反,对于视频,他们希望在我的Webforms应用程序上播放它们。

经过一些研究,似乎HTML5 <video>标签将是最有效的方式。但我看到的所有样本都使用基于文件的URL来获取视频 - 但我似乎无法提及如何从提供视频数据。

我是否真的需要将我的SQL Server数据库中的视频存储到磁盘上的临时文件中,以便在我的Webforms应用程序中播放它们?或者有一种很好的方法可以将.NET流(MemoryStream)连接到HTML5 <video>元素以在屏幕上播放视频吗?

1 个答案:

答案 0 :(得分:2)

只需通过您制作的特殊页面缓冲数据,例如:getvideo.aspx?videoid=nnn将该页面用作流代理。

在页面中,您将数据作为任何文件流式传输到客户端,将标题mime类型设置为video / mp4,并确保它是8位二进制格式。

然后,您只需将页面设置为元素的视频源:

<强> HTML:

<video width=640 height=320 autoplay controls>
    <source src="getvideo.aspx?videoid=123&type=mp4" type="video/mp4">
    <source src="getvideo.aspx?videoid=123&type=ogg" type="video/ogg">
    Sorry, no video support in the browser you're using.
</video>

请注意,并非所有浏览器都支持MP4文件格式。您可能需要考虑允许回退格式,例如OGG和WEBM。