|
介绍HTTP Live媒体流允许您通过普通的Web服务器将实时的或者预先录制好的音频和视频发送到iPhone,iPad,以及其他设备,包括桌面计算机。播放媒体流需要设备运行iOS 3.0或以上版本,桌面计算机则要求安装QuickTime X以上版本。更多信息请参考HTTP Live媒体流概述。 本技术说明提供了为iPhone和iPad应用程序以及iOS上的Safari创建HTTP Live媒体流时合适的编码设置,同时也提供了创建多版本播放列表的技巧,着重说明了部署媒体内容到Web服务器时一些需要特别考虑的方面,并讨论了如何验证媒体流的有效。 重要: 本文档经常更新。请将本页加入书签,并在您每次开始下一个项目前重新参考最新的推荐设置。 图 1包含了创建HTTP Live媒体流推荐的编码设置。 重要:这些是推荐的设置,不是必须的。例如,如果您的视频有非常快速的动作(如运动项目),或者您比较担心带宽问题,您可能需要对视频进行额外的压缩以保证达到您需要的效果。在这种情况下,您可以使用推荐的设置作为一个初步设定,然后重新压缩直到您对最后的效果满意。
这些编码设置可以同时应用于实时的和预先录制(视频点播,VOD)的视频。推荐的设置是按照视频是在蜂窝网络还是Wi-Fi网络传输,是针对iPhone/iPod Touch还是iPad,视频内容的长宽比是4:3还是16:9来分类组织的。 支持如下音频和视频格式:
注意:iPhone 3G支持H.264 Baseline Profile Level 3.1。如果您的程序需要在更老的iPhone上运行,为兼容性考虑,您需要使用H.264 Baseline Profile 3.0。
如何使用QuickTime以推荐的设置创建视频关于如何使用QuickTime以推荐的编码设置导出视频文件,请查看技术说明TN2218,‘为Web压缩QuickTime视频’ 对应用程序的要求如果您是在iPhone和iPad应用程序中使用HTTP Live媒体流,则您必须遵守一些要求,具体细节请参考HTTP Live媒体流概述。 媒体分段HTTP Live媒体流要求媒体流或者文件被分成一系列相等的时间段。这通常是使用分段工具和创建播放列表的工具来完成的。 这种架构允许一个已经分好时间段的实时的媒体流能够通过更新播放列表快速转换为一个视频点播的流。 Apple提供了两个进行HTTP Live媒体流分段的命令行工具:
重要:这两个工具都经常更新。如果您是iOS开发者计划的会员,或者是ADC的Select会员和Premier会员,您可以从Apple开发者联盟的网站上下载其最新版本。您可以从http://connect.apple.com页面,点击“下载”链接,然后选择“QuickTime”,下拉到到“HTTP Live媒体流工具”,下载并安装“HTTP Live 媒体流工具”。
媒体流分段器 您可以使用媒体流分段器( Mac OS X 10.6及以后的版本中内置了 该工具从UDP网络连接或标准输入 -a | -audio-only 这会抽取基本的音频流(AAC/ADTS或者MP3)并写入到媒体文件中。例如,您可以对一个现有的媒体流(包含音频和视频)运行 下面是一个怎样使用 mediastreamsegmenter -s 3 -D -f /Library/WebServer/Documents/stream 239.4.1.5:20103 选项 在这个例子中,索引文件将包含3个文件条目。媒体文件将在过期后被删除。媒体文件和索引文件保存在 媒体文件分段器 媒体文件分段器( mediafilesegmenter同时还创建了包含各个媒体段引用的索引文件。索引文件和媒体文件可以在通用的Web服务器架构上以视频点播的形式部署。 mediafilesegmenter支持很多命令行参数(您可以在终端中输入 注意:该工具以前版本要求您指定 多版本播放列表 -O 或者-optimize 选项以打开优化,否则默认是关闭的。在新版本中,优化默认是开的,您现在必须指定yes 或者no ,如下所示:
[-O | -optimize [yes | no]] 多媒体流的展现是由播放列表决定的。播放列表是一系列媒体文件的列表,每一项都指向一段单独的连续的流。在HTTP Live媒体流中,服务器可能会为同一视频提供不同编码率的多个播放列表,这时,服务器必须提供一个多版本播放列表文件,从而提供不同的播放流以允许客户端根据带宽变化在不同的编码率之间动态切换。 关于多版本播放列表的更多信息,请参考HTTP Live媒体流和HTTP Live媒体流协议规范。 多版本播放列表创建器 多版本播放列表创建器( variantplaylistcreator接收成对的URL和plist文件为参数生成多版本播放列表,URL和plist文件由 创建多版本播放列表时需要考虑的下面是创建您的多版本播放列表时需要着重考虑的几点:
HTML5 Video元素 我们推荐您使用HTML5的 表单 1中的源代码例子展示了如何使用 <video src="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"> This browser does not support HTML5 video. </video> 请参考技术说明TN2262,‘为iPad准备您的Web内容’,该技术说明描述了在iOS设备上的Safari中和平台相关的注意事项,特别是为iPad。 Web服务器配置HTTP Live媒体流的分发系统是基于HTTP发布媒体文件和索引文件的Web服务器或者Web缓存系统(更多信息请参考HTTP Live媒体流概述)。不需要定制的服务器模块,只需要很少的服务器配置。 推荐的配置通常是为 表格 1:
为兼容性考虑,服务器也接受MIME类型是 调整 媒体流验证器 媒体流验证器( 这个工具模拟了一次HTTP Live媒体流的会话,验证索引文件和媒体段符合HTTP Live媒体流的规范,并进行多次检查以确保媒体流的可靠。如果发现了任何问题,将会显示一份详细的分析报告。 重要:您应该总是在您的媒体流上运行 mediastreamvalidator 工具来确保它符合HTTP Live媒体流规范。
下面是 Validating http://devimages.apple.com/iphone/samples/bipbop/gear3/prog_index.m3u8 against iPhone OS 3.1.0 Average segment duration: 8.77 seconds Average segment bitrate: 510.05 kbit/s Average segment structural overhead: 96.37 kbit/s (18.89 %) Video codec: avc1 Video resolution: 480x360 pixels Video frame rate: 29.97 fps Average video bitrate: 407.76 kbit/s H.264 profile: Baseline H.264 level: 2.1 Audio codec: aac Audio sample rate: 22050 Hz Average audio bitrate: 5.93 kbit/s 对于多版本播放列表来说,在播放列表中指定的码率是否和实际测试的码率非常接近很重要。否则 #EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000 http://example.com/low.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000 http://example.com/mid.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000 http://example.com/hi.m3u8 关于
|
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。