【问题标题】:Video streaming to browser on iOS在 iOS 上将视频流式传输到浏览器
【发布时间】:2018-03-13 14:18:25
【问题描述】:

我已经使用 WebSockets 和媒体源扩展 (JavaScript) 实现了从 Java 服务器到网站的视频流。这适用于除 iOS 之外的多个操作系统上的几乎所有浏览器。我知道 iOS 上不支持 MSE(目前)。

有没有什么方法可以通过网络套接字使用相同的(已经存在的)技术为 iOS 客户端轻松启用视频流? 我想到了类似于 Media Source Extensions 的东西,所以我只需要重新实现客户端即可。

我的工作流程是:

  1. 创建 HTML5 视频元素和媒体源
  2. 创建一个新的网络套接字并向服务器请求视频数据
  3. 使用 FFmpeg 对视频进行转码并将结果流式传输到标准输出
  4. 将二进制视频数据分块发送到客户端
  5. 将视频二进制数据添加到 HTML5 <video> 元素的源缓冲区,该元素通过 SourceBuffer 链接到 MediaSource

希望得到任何建议。

【问题讨论】:

    标签: javascript ios websocket streaming media-source


    【解决方案1】:

    If needed, you can use the <video> tag。在“提供备用来源”下查看,您可以使用 HTTP 直播。

    【讨论】:

    • 我已经在使用 <video> 标签(视频数据通过 websocket 到达 --> 将数据附加到链接到 <video> 元素的媒体源的源缓冲区)。 HTTP 实时流式传输是可能的,但是我必须为 HTTP 流式传输实现整个流式传输过程,因为我无法通过 websockets 进行通信,对吧?我正在寻找的是任何解决方案,我可以通过 websockets 将转码的视频数据发送到客户端,然后将二进制视频数据添加到 <video> 元素。任何类似于 MSE 的替代品。
    • @bosboy 你找到替代方案了吗?我会对此感兴趣
    • @Antoine 不是。看起来像通过 Websockets 通过媒体源将视频数据流式传输到客户端在 iOS 上是不可能的。我现在所做的是实现了一个完全不同的视频流技术:HLS(HTTP Live Streaming,Apple 引入)。缺点是我现在使用两种不同的流技术,并且都使用不同的通信协议(MSE 的 Websockets 和 HLS 的 HTTP),但这似乎也是在 iOS 上启用视频流的唯一方法。替代 HLS 的另一种 HTTP 流协议是 DAESH。
    • 谢谢,我认为这就是 Apple 在 iOS 上阻止 MSE 的原因,它促使更多人使用 HLS。但我只会让我的用户付出代价,并尝试将他们的精力转移到让 Apple 支持 MSE,不过感谢更新
    • 在我上一条评论中,我指的是 DASH(而不是 DAESH),当然。
    猜你喜欢
    • 1970-01-01
    • 2012-02-17
    • 2016-05-30
    • 2015-05-22
    • 2021-01-17
    • 2010-09-14
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多