【发布时间】:2011-01-29 07:22:09
【问题描述】:
使用 HTML5 进行 HTTP 直播的标准是什么?
或者目前可用的标准是什么?我知道 Apple HTTP 流是其中之一。
【问题讨论】:
使用 HTML5 进行 HTTP 直播的标准是什么?
或者目前可用的标准是什么?我知道 Apple HTTP 流是其中之一。
【问题讨论】:
在撰写本文时还没有公认的标准。
Apple 的 HTTP Live Streaming 是最佳选择。由于 iPad/iPhone,它现在得到了内容编码器的大量支持(请参阅Wikipedia 以获取列表),并且在 Android 4 视频播放器中也得到支持(但显然不在 Chrome 移动设备中)。 Apple 已通过taken some steps 将其批准为 IETF 标准。许多 Flash 视频播放器现在支持 HLS 以及 RTMP 流,因此您只需打包一次内容。
Microsoft's HTTP Smooth Streaming 类似,但实际上支持仅存在于 Silverlight 中。 Adobe 也有 HTTP 流格式(HTTP Dynamic Streaming / 'San Jose' 流),但这仅在 Flash 中受支持。如果愿意的话,浏览器可以支持其中任何一个。两者都可能注定失败。
另外,MPEG 小组正在赞助MPEG-DASH,但有人怀疑对此的现场支持还有很长的路要走。
【讨论】:
它将是HTTP 自适应流协议之一。
截至 2015 年,有两个主要协议,HLS 和 DASH(如果算上 HDS 和 Smooth,则有四个)。
HLS 已被广泛采用(请参阅此处的 2015 年报告:http://info.encoding.com/delivery-report-2015.html),但功能少于 DASH。
DASH 有两种风格:MPEG-DASH 和 WebM-DASH,后者基于开放格式,是 Matroska 的子集。
DASH 势头强劲,很有可能成为下一个行业标准。 HTML5 的选择将考虑支持的编解码器及其许可条款。由于H.264/AVC和H.265/HEVC不是免费的,WebM和VP8、VP9有更好的机会。
【讨论】:
如果您的浏览器支持 MediaSource 扩展,HLS 也可以在 HTML5 中播放,使用 hls.js 库,它实现了一个 HTTP 实时流客户端。它依赖 HTML5 视频和 MediaSource 扩展进行播放。 它通过将 MPEG-2 传输流转换为 ISO BMFF (MP4) 片段来工作。 hls.js 不需要任何播放器,它直接在标准 HTML 元素之上工作。
您可以在此处找到 JS 库和说明: https://github.com/dailymotion/hls.js
【讨论】:
这取决于容器。分段的 H.264 可以包含实时流。它可以通过 HTTP 传输。 Google 的 WebM 也可以通过 HTTP 进行流式传输。
HTML5 不太可能添加 HTTP 以外的任何传递方法。所以没有 RTP 或 UDP 即将出现。
【讨论】: