【问题标题】:Can HTML5 be used to securely stream videos?HTML5 可以用于安全地流式传输视频吗?
【发布时间】:2013-09-08 11:13:21
【问题描述】:

我最近遇到了一个有趣的问题:使用 HTML5 安全地(或至少与 flash 和 silverlight 一样安全)流式传输视频。首先,是的,我知道开箱即用的 HTML5 视频标签无法做到这一点,但我想知道是否有任何方法可以做到这一点。

我的第一个想法是使用画布标签并通过 AJAX 获取视频数据,但我看到的每个教程似乎都说您必须使用视频标签(不是 AJAX)来获取画布的视频数据标签。这是真的,还是可以以某种方式使用 AJAX?有没有人试过这个?有什么想法吗?

更一般地说,是否有人对如何做到这一点有更好的想法?有没有办法做到这一点?有什么想法吗?

【问题讨论】:

  • “安全”是什么意思?攻击模型是什么?您是否正在尝试解决(本质上无法解决的)复制保护问题?虽然您当然可以下载数据,编写 JavaScript 视频解码器并将其输出到画布,但它的工作量很大,效率非常低,难以与音频同步,并且仍然只是一层无法解决复制保护的混淆问题。
  • 它不必完全解决复制保护问题,只要让它像 Silverlight 或 Flash 一样困难。基本上,我只是在考虑一种 flash 或 silverlight 视频播放器,与 Netflix 的类似,用 HTML5 和 javascript 实现。

标签: html security video canvas video-streaming


【解决方案1】:

HTML5 本身不支持安全连接。

您可以通过 HTTPS SSL 加密连接流式传输视频和其他任何内容。除此之外,您的浏览器中没有任何东西是安全的(尽管现在SSL seem to loose grips too...)。

WebRTC (official page)(请参阅此处查看WebRTC draft)将支持连接加密,但目前该技术处于相对实验阶段且不稳定(但在 Chrome 和 Firefox 普通版本中均可用)。

话虽如此:为了让 WebRTC 能够安全地与对等方协商,这种协商还需要在加密连接上进行,这意味着无论如何您都需要 SSL,因为此时尚未建立直接连接。

我的建议是保持简单,并使用 SSL 连接以传统方式流式传输视频。

【讨论】:

  • 实验性和不稳定的对于我现在的目的来说很好。这将是一个概念验证项目,还不是一个完整的网站。
  • @DylanKarr 请记住,在连接发生之前,对等方之间的协商(设置)也需要在加密连接上。 SSL 在这两种情况下都是可行的。
  • 还可以查看 MediaCodec 和 MediaCrypto 扩展,它们确实允许您构建安全模型,尽管它仍然是最前沿的时候需要做一些工作......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-02
相关资源
最近更新 更多