大多数浏览器和
Developer App 均支持流媒体播放。
-
HLS 创作更新
HTTP Live Streaming (HLS) 能够稳定地向全世界的观众提供视频。这种稳定性的关键是一整套可帮助您制作、交付和验证所创建 HLS 流媒体的工具。看看这些工具的新功能,学习最新的制作建议,以及这些建议如何应用于 HLS 的改进功能,例如 HEVC 和 IMSC1 支持。
资源
相关视频
Tech Talks
WWDC17
-
下载
大家好 我是Eryk Vershen 在Apple做AVFoundation工程师 这里是演讲515 内容是关于HLS编写和HLS工具
缩写HLS代表HTTP流媒体传输 HLS可以将内容分流到 不同的Apple设备 我会讲到这个文件 Apple设备的HLS编写规范 还有我们用来创建 和验证HLS内容的工具
编写规范以及 其他重要的HLS文档 可以参阅 developer.apple.com/streaming 编写规范 是Apple提供的HLS编写建议
我们希望HLS规范互联网草案 只涵盖最必要的要求 编写规范 从另一方面来说 是针对Apple设备 所提的要求 以及一些看似不必要的要求 却能形成最佳实践
今年的大新闻 就是我们添加了HEVC支持
这些就是播放限制 档次为Main 10 水平为5.0 高等级
既然已经支持HEVC内容 我们就把码率也写进了规范 它们只是初步的建议 因为HEVC编码器还在不断进化 会随着时间不断改善 以后我们也会修改这些指南
所以要记住这些码率的建议 只是编写规范里的指南 不是隽永的真理 我们也知道内容千变万化 访谈视频的码率 不一定适用于体育节目 而且你会改变限制 码率类型的数量 所以码率指南只适用于起步阶段
支持HEVC意味着 可以同时使用H.264 和HEVC内容 在一个主播放列表里 那么我们找到了几个最佳实践
首先最重要的 就是使用CODECS属性 它能够防止旧的播放器 再次播放HEVC内容
第二个也很重要 要包含H.264内容 这是为了让旧播放器有内容可播
播放器可以切换播放 H.264和HEVC 但是如果两个版本的码率相似 播放器通常优先选择HEVC内容 H.264内容可以是fMP4格式 以最大化兼容性 保持H.264在传送流 最后一点 是同样使用于 特技播放的规则 I-frame-only 除了支持HEVC 我们还添加了 另一种字幕格式MSC 如果想了解更多 IMSC1的支持情况 可以看看今年一场 名为HLS优势的演讲
IMSC1基于TTML 计时文本标记语言 它可以兼容EBU和SMPTE规则
现在我们讨论字幕的最佳实践
虽然支持IMSC文本配置 但是IMSC内容 必须是fMP4格式 不能是纯文本格式
WebVTT跟过去一样 是文本文件 拓展名通常为 .VTT或.webVTT 要知道你可以 把IMSC和webVTT 与H.264和HEVC任意组合 它们之间完全独立 一定要使用 IMSC1 CODECS值 这个值可以保证 老用户不会注意到有变化 但是为了向后兼容最大化 这个值不能用于webVTT
我们换个话题 谈一谈HLS工具 还有我们做出的改变 这些工具都能在开发者网站上使用 可以在刚刚说过的网址上找到 developer.apple.com/streaming
这些工具大致分为三类 音频视频的分段工具 内容验证和生成验证报告的工具 最后是创建字幕 iv3元数据和主列表的工具 验证器不会检测级别较低的码流 所以就要使用第三方工具 在你觉得编码器出问题的时候 现在看看我们对工具 做了哪些具体的改变
首先我们添加了 MediaStreamValidator功能 用来检测本地文件 不再需要用HTTP服务器 去验证媒体流
如果是直接文件存取 就可以用这种方法检测 可以用相对路径 绝对路径或文件URL 但是要注意的是 不要混淆文件URL和HTTP 就是如果主列表是文件路径 那么它指向的媒体列表 就不能是HTTP URL 当然我们也为这些工具 增添了HEVC支持 我们还对这些工具做了很多改进 主要是MediaStreamValidator 和HLS报告 对媒体流做了更多研究 例子太多 比如 我们正在验证 CODEC的使用 在验证期间能更好地处理流错误 并且让变量和版本的排序 在报告中更加一致
我们添加了几个新选项 这里我只讲三个 第一个是描述选项 在MediaStreamValidator 流的URL不一定能 清楚表明它的内容 这个选项可以让你添加更多描述文本 比如某个剧第二季第五集 文本会显示在报告上方 靠近URL的位置
对HLS报告 我们添加了新的选项列 我们以往的方法 是给每列各自的选项 现在有了列选项 就可以提取一串列标识符 要找到可用的列标识符 可以通过Help选项 或在主页上查看 赋予数据id值的 旧id和pl选项 和播放列表码率 现在依然支持 但是为了支持列标识符 就弃用了 它们的列标识符 只有id和pl
去年我们添加了 hdcp-level支持 却忘了说 hdcp-level选项是在 MediaFileSegmenter上 它让你可以设置hdcp-level hdcp-level包含于Plist 由MediaFileSegmenter生成 你可以传递Plist 给variantplaylistcreator 从而在生成的主列表中 获取hdcp-level属性
快速浏览下这个样本报告 注意第二行
来自传递给 MediaStreamValidator的描述选项
注意这里加入了CODEC列 所以你能看到 哪些变量是H.264和HEVC
这里的AVC是H.264的别名 这样就能清楚的区别 这两种CODEC类型
在更改变量和版本的顺序时 我们将音频 CC字幕 和字幕翻译区分开来
总的来说 记住这个网址 developer.apple.com/streaming 你要知道的一切 这里都能找到 除了各种文档 它还有样本流的链接 工具下载链接 以往HLS视频的链接 FairPlayStreaming 的相关内容等 我建议你们都去读一读 Apple的HLS编写规范 和HLS规范
要了解更多 请参阅本场演讲的网页 developer.apple.com/wwdc17/515
还有几场相关的视频演讲 HTTP流媒体优势
这场演讲深入探讨 HEVC和IMSC1 以及其他有趣的话题 HTT流媒体错误处理的最佳实践 会帮助你了解如何把你的服务器 变成更好的HLS服务器 这些视频都可以在网页 或WWDC应用中观看
希望你们有所收获
谢谢观看 -
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。