2011-09-08 64 views
0

我创建了一个示例应用程序来演示HTTP实时流式传输的工作。
我所做的是,我有一个库将输入视为视频文件(avi,mpeg,mov,.ts)并为给定视频文件生成段(.ts)和播放列表(.m3u8)文件。我将播放列表(作为字符串)存储在链接列表中,当我从库中获取播放列表数据时。Http直播流如何工作?

我写了一个基本的web服务器,它将服务器用户请求的段和播放列表文件。我正在从iPhone safari浏览器请求playlist.m3u8文件,并且它正在启动QuickTime播放器,请求在收到的播放列表文件中列出的segment.ts文件。在播放每个片段(在当前播放列表中列出)之后,它再次请求播放列表,其中我正在响应包含其中列出的下一组segment.ts文件的下一个播放列表文件。

这就是我们所说的HTTP直播流?
还有什么,除此之外,我需要做的实施HTTP直播流?

谢谢。

回答

0

没有更多。如果您正在处理媒体输入流,对它们进行编码,以适合传送的格式进行封装,并通过将它们放置为可以从HTTP服务器请求的方式来准备分发的封装媒体,您就完成了。实时流媒体背后的想法是,它利用现有的Internet体系结构,该体系结构已针对合理大小的资源提供HTTP请求进行了优化。

HTTP流呈现许多现有的CDN解决方案与他们的自定义流协议,自定义路由和自定义内容缓存废弃。

0

您还可以使用适用于mac os x的媒体流验证程序命令行应用程序来验证由HTTP Web服务器生成的流。

0

或多或少,但也有自适应比特率流传输来照顾,如果你想你的服务器推送文件到iOS设备。这意味着您的示波器从一个跟踪所有TS文件的单个“index.m3u8”文件扩展为主索引,然后跟踪您希望在应用程序中支持的每个比特率的索引文件,然后单独跟踪TS文件以相应的比特率编码。

这是一个很好的工作量,但主要是常规/重复,一旦你掌握了基本知识。

有关流媒体的更多信息,从iOS的角度来看,您的圣经总是应该是TN2224。严格遵守Technote中的规格,是您通过App Store审批流程进行流式传输的最佳机会。

有些人不打扰(在过去的几个月中构建一个流应用程序,并查看了一大堆视频应用程序的HTTP日志,这些应用程序似乎并不遵守规则) - 有时Apple会发布通知,有时候他们不会,有时玩家对苹果来说太大而无法干预。

因此,它与苹果公司审查的应用功能的其他方面并没有太大的不同。只是有一些方法可以确保你在正确的轨道上。

当然,从纯粹的技术角度来看,正如@ psp1提到的,mediastreamvalidator工具可以帮助您确定您的数据流是否 - 即使不是整体能力的核心 - 与预期的兼容性的HLS实现。

注意:你可以使用自己的编码解决方案(使用ffmpeg,加号是你有更多的控制权,减号是需要时间来配置和正确工作),加上一旦你开始说话,即使是当你遇到所有技术性的辛苦工作时,你会发现这很容易,现在你必须真正弄清楚你需要哪种许可证为了获得一个花哨的H.264编码器,并跳过所有的法律/程序箍来获得一个)。

对于没有法律/会计团队的开发人员而言,如果能够填补国际海事组织(IMO)的一个开发人员的更简单的解决方案,那么与Encoding.com,Zencoder等网站一起提供他们的编码服务的第三方更容易。或按月收费。优点是他们已经关注了所有的授权BS,并且只是为您提供简单的“付费使用”服务,当您为客户建立项目时,这也可能非常有用。减号是,你现在依赖于Zencoder/Encoding,当你的编码工作失败一整天,因为他们的服务器关闭了,或者甚至在API不完全时,你会知道它的另一面。按照您的期望行事或已经记录在案!

但无论如何,这是关于在将HLS服务器投入生产之前获得Grok的所有因素!