栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

实时将HTTP流传输到HTML5视频客户端的最佳方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实时将HTTP流传输到HTML5视频客户端的最佳方法

编辑3:从IOS 10开始,HLS将支持分段的mp4文件。现在的答案是创建带有DASH和HLS清单的分段mp4资产。>假装Flash,iOS9及以下版本和IE 10及以下版本不存在。

此行下方的所有内容均已过时。保留在这里供后代使用。


编辑2:正如评论中的人指出的那样,事情发生了变化。几乎所有浏览器都将支持AVC/AAC编解码器。iOS仍然需要HLS。但是,通过hls.js之类的适配器,您可以在MSE中播放HLS。如果需要iOS,新的答案是HLS + hls.js。或只是碎片化的MP4(即DASH)(如果您不这样做)

视频(尤其是实况视频)非常困难的原因有很多。(请注意,最初的问题指定了HTML5视频是必需的,但提问者在评论中表示可以使用Flash。因此,此问题立即引起误解)

首先,我要重申一下:在 HTML5上没有实时支持的官方支持 。有一些技巧,但是您的里程可能会有所不同。

编辑:自从我写了这个答案以来,媒体源扩展已经成熟,现在已经接近成为可行的选择。大多数主流浏览器都支持它们。iOS仍然是一个障碍。

接下来,您需要了解视频点播(VOD)和实时视频是完全不同的。是的,它们都是视频,但是问题不同,因此格式也不同。例如,如果计算机中的时钟运行速度比应有的速度快1%,则您不会注意到VOD。使用实时视频,您将尝试在视频发生之前进行播放。如果要加入正在进行的实时视频流,则需要初始化解码器所需的数据,因此必须在流中重复该数据或将其发送出去。使用VOD,您可以阅读他们希望找到的文件的开头。

现在让我们深入探讨。

平台:

  • iOS
  • PC
  • MAC
  • Android

编解码器:

  • vp8 / 9
  • h.264
  • thora(vp3)

浏览器中直播视频的常见交付方式:

  • DASH(HTTP)
  • HLS(HTTP)
  • flash(RTMP)
  • flash(HDS)

浏览器中VOD的常见投放方式:

  • DASH(HTTP Streaming)
  • HLS(HTTP Streaming)
  • 快闪(RTMP)
  • flash(HTTP Streaming)
  • MP4(HTTP伪 pseudo streaming)
  • 我不会谈论MKV和OOG,因为我不太了解它们。

html5视频标签:

  • MP4
  • Webm
  • ogg

让我们看看哪些浏览器支持什么格式

Safari:

  • HLS(仅iOS和Mac)
  • h.264
  • MP4

Firefox

  • DASH(通过MSE,但没有h.264)
  • h.264仅通过Flash!
  • VP9
  • MP4
  • OGG
  • Webm

IE

  • Flash
  • DASH(仅通过MSE IE 11+)
  • h.264
  • MP4

Chrome

  • DASH(via MSE)
  • h.264
  • VP9
  • MP4
  • Webm
  • ogg

MP4不能用于实时视频(注意:DASH是MP4的超集,因此请不要对此感到困惑)。MP4分为两部分:moov和mdat。mdat包含原始音频视频数据。但是它没有被索引,因此没有moov,它是无用的。moov包含mdat中所有数据的索引。但是由于其格式,在知道每个帧的时间戳和大小之前,无法将其“展平”。可能有可能构建一个“使帧大小变小”的模型,但在带宽方面却非常浪费。

因此,如果您想在任何地方交付,我们需要找到最小公分母。您将看到这里没有LCD而不使用Flash示例:

  • iOS仅支持h.264视频。并且仅支持HLS直播。
  • Firefox根本不支持h.264,除非您使用Flash
  • Flash无法在iOS中使用

最接近LCD的是使用HLS来吸引您的iOS用户,并为其他所有人闪烁。我个人最喜欢的是对HLS进行编码,然后使用Flash为其他所有人播放HLS。您可以通过JW播放器6在Flash中播放HLS(或像我一样将自己的HLS写入AS3中的FLV)

很快,最常见的方式将是在iOS/Mac上使用HLS,并在其他任何地方通过MSE通过DASH(这是Netflix即将采取的措施)。但是我们仍在等待所有人升级他们的浏览器。您可能还需要为Firefox使用单独的DASH/VP9(我知道open264;它很烂。它不能以主要或高姿态播放视频。因此,它目前无用)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432519.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号