【问题标题】:HTML5 Video - data coming from databaseHTML5 视频 - 来自数据库的数据
【发布时间】:2013-10-12 06:45:56
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    只需通过您制作的特殊页面缓冲数据,例如: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 等后备格式。

    【讨论】:

    • 谢谢 - 你能详细说明前两段吗?他们对我来说完全是希腊语:-) 你有一个页面/博客文章/文章显示(在代码中)如何实际做到这一点? (我已经看到使用.ashx 处理程序的方法,据说这些处理程序将数据流回 - 不幸的是,到目前为止我发现的所有样本最终都真的不起作用 - 页面上没有出现视频......)
    • @marc_s 不幸的是,我在博客和 .net 页面上都很短:(对此感到抱歉。我会看看是否可以解决这个问题或找到示例。原则上,当您查询 SQL 服务器时您只需将直接返回的数据从该页面内部推送到输出流(当然,在运行查询之前先发送标题)。
    • 对于从任意源(如 DB blob)提供(视频)字节流的示例:martin-brennan.com/aha-1-ashx-video-streaming。很高兴他展示了如何告诉 Chrome 视频播放器视频可以搜索。
    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 2013-07-03
    • 2013-09-24
    • 2017-06-10
    • 2012-10-30
    • 2011-11-28
    • 2017-05-18
    相关资源
    最近更新 更多