Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5视频-来自数据库的数据_Html_Sql Server 2008_Webforms_Html5 Video_Asp.net 4.0 - Fatal编程技术网

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

HTML5视频-来自数据库的数据,html,sql-server-2008,webforms,html5-video,asp.net-4.0,Html,Sql Server 2008,Webforms,Html5 Video,Asp.net 4.0,客户很有趣——总是提出新的要求 好的,我有一个ASP.NET 4.0 Webforms应用程序,客户可以在其中上载PDF或Excel文档等文件,这些文件存储在SQL Server的VARBINARYMAX列中。工作起来很有魅力 现在他们想出了一个新的要求:他们希望能够上传像*.wmv、*.mp4等视频。。与客户请求时刚下载到硬盘的文档不同,对于视频,他们希望在我的Webforms应用程序上播放 经过一点研究,HTML5标签似乎是最有效的方法。但我看到的所有示例都使用基于文件的URL来获取视频,但

客户很有趣——总是提出新的要求

好的,我有一个ASP.NET 4.0 Webforms应用程序,客户可以在其中上载PDF或Excel文档等文件,这些文件存储在SQL Server的VARBINARYMAX列中。工作起来很有魅力

现在他们想出了一个新的要求:他们希望能够上传像*.wmv、*.mp4等视频。。与客户请求时刚下载到硬盘的文档不同,对于视频,他们希望在我的Webforms应用程序上播放

经过一点研究,HTML5标签似乎是最有效的方法。但我看到的所有示例都使用基于文件的URL来获取视频,但我似乎找不到任何关于如何从流中提供视频数据的内容


我真的需要将SQL Server数据库中的视频存储到磁盘上的临时文件中,以便在Webforms应用程序中播放它们吗?或者有没有一种巧妙的方法将.NET stream MemoryStream连接到HTML5元素以在屏幕上播放视频?

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

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

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

HTML:


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

< P>简单地通过一个特殊的页面缓冲数据,例如:GETVIEST.ASPX .VIEIDOL= NNN,使用页面作为流代理。< /P> 在页面中,将数据作为任何文件流式传输到客户端,将头mime类型设置为video/mp4,并确保其为8位二进制格式

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

HTML:


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

谢谢-你能在前两段详细阐述一下吗?对我来说,它们完全是希腊语:-你有没有一个页面/博客帖子/文章在代码中显示如何实际做到这一点?我见过使用.ashx处理程序的方法,这些处理程序可能会流式返回数据-不幸的是,到目前为止我发现的所有示例最终都不起作用-页面上没有显示任何视频…@marc_s我很遗憾博客和.net页面都很短:很抱歉。我会看看我是否能绕过这一点或找到一些例子。原则上,当您查询SQL server时,您只需将从该页面内部直接返回的数据推送到输出流,当然,在运行查询之前,只需先发送标题。对于提供来自任意源(如DB blob)的视频字节流的示例:。很高兴他展示了如何告诉Chrome视频播放器视频可以搜索。谢谢-你能详细说明前两段吗?对我来说,它们完全是希腊语:-你有没有一个页面/博客帖子/文章在代码中显示如何实际做到这一点?我见过使用.ashx处理程序的方法,这些处理程序可能会流式返回数据-不幸的是,到目前为止我发现的所有示例最终都不起作用-页面上没有显示任何视频…@marc_s我很遗憾博客和.net页面都很短:很抱歉。我会看看我是否能绕过这一点或找到一些例子。原则上,当您查询SQL server时,您只需将从该页面内部直接返回的数据推送到输出流,当然,在运行查询之前,只需先发送标题。对于提供来自任意源(如DB blob)的视频字节流的示例:。很高兴他展示了如何告诉Chrome视频播放器视频可以搜索。
<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>