【问题标题】:How to Live stream with HTML5, without Flash?如何在没有 Flash 的情况下使用 HTML5 直播?
【发布时间】:2015-09-30 01:47:06
【问题描述】:

问题:我需要我的客户能够将他们的网络摄像头流式传输到我的流媒体服务器(例如 Wowza 服务器)。我正在用 PHP 构建我的网站。 我浏览了 twitch.tv、livestream.com 等各种流媒体网站,发现它们都使用第三方广播软件(如 Wirecast、XSplit 广播器、OBS 等)将网络摄像头源流式传输到服务器。 然后我遇到了像vLine、Opentokrtc 这样使用WebRTC 进行视频聊天的网站。

我的问题:所以,我的问题是,我是否可以在不使用广播软件的情况下将流发送到像 Wowza 这样的广播服务器(以便他们可以广播我的直播)只有WebRTC?如果是,那么如何?如果,否,那么其他选择是什么?

附言。我不想在这里使用 Flash、ActionScript。

【问题讨论】:

  • 这很有可能,但您可能需要修改广播服务器。有很多 webrtc MCU 服务器可以用作 WebRTC 广播服务器(广播是服务器的 P2P,然后侦听器是 P2P 到服务器的特定提要)。
  • 你可以试试kurento媒体服务器,Demo docsdemo code

标签: php html webrtc live-streaming wowza


【解决方案1】:

您基本上需要一个集成了伪 WebRTC 客户端的服务器。 WebRTC 可以获取流,但在设置 PeerConnection 之前无法开始流。您可以尝试使用各种服务器/网关,例如Janus、Kurento、Licode、FreeSwitch 等。

WebRTC 生成的 MediaStream 也可以直接附加到 HTML5 <video> 标签。

【讨论】:

  • 您知道我们如何从 MediaStream 对象中获取视频/音频的实际比特流吗?然后我可以尝试将该比特流发送到服务器,不过只是一个想法。
  • @ParthapratimNeog 我相信在浏览器客户端上无法直接访问流内容。可能是一条很长的路,但this 排序可能会奏效。然后可以将图像发送到服务器并在查看客户端画布标签时呈现。但是请注意,在这种情况下,延迟会相当大。
【解决方案2】:

在这样的用例中使用 WebRTC 会导致服务器端的计算成本很高,并且是一种相当新的技术,这意味着如果您知道自己在做什么,就应该使用它。

我的建议是改用 Flash 或 MPEG-DASH - 除非您需要的延迟必须非常低,并且您可以通过较小的解决方案规模来支付它。

【讨论】:

  • 计算成本高的原因是什么?一个像样的 MCU 只会担心重新标记控制数据包然后重新加密 RTP。成本是否比 Flash 高得多(注意我没有关于 Flash 的经验/知识,只是好奇它是如何降低成本的)?
  • 几年后Flash不会被弃用吗?正因为如此,我不想学习 ActionScript,当 Flash 完全被弃用时,这将是一种完全的浪费。我一直在对 Kurento 和 @Benjamin 和 Obscure Geek 建议的其他服务器进行一些研发。对于像我这样的初学者来说,在 WebRTC 上很难找到一些好的学习资料。
  • Flash 正在走向渡渡鸟的道路 - 只是时间问题。对于流媒体,它的主要替代品是 MPEG-DASH 和 iOS HLS。 WebRTC 不是为流式传输而设计的,尽管它可以用于它。它的双向特性和它适应网络的方式使其不适合“按原样”进行此类活动。
【解决方案3】:

除非我有误解,否则我认为您希望将视频流式传输到 您的服务器(使用“正常”实时流式传输机制进行分发),而不是使用 WebRTC 流式传输视频 来自 服务器。

如果是这样,WebRTC 将可以工作,但您需要在服务器端实现一套相当完整的 WebRTC 协议,包括视频解码。这些存在,但当然不是直接在 PHP 中。这将处理从客户端获取实时音频和视频,而不需要客户端上的插件,包括带宽适应和纠错。

在服务器上对数据进行解码后,您就有了一个视频+音频数据流,您可以将其馈送到您的直播编码器以进行流式传输。

【讨论】:

    【解决方案4】:

    Wowza 确实支持您成为 WebRTC 场景中的其他对等方所需的东西。您可以从那里以媒体服务器通常执行的任何方式重新分发流。

    此功能仍处于“预览”模式并有一些限制,但在大多数情况下都可以使用。您可以通过https://www.wowza.com/products/capabilities/webrtc-streaming-software 请求访问此内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 2015-11-05
      • 1970-01-01
      相关资源
      最近更新 更多