Http直播如何运作?

时间:2011-09-08 08:46:48

标签: live-streaming http-live-streaming http-streaming

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

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

这就是我们所说的HTTP直播流吗? 还有什么其他的,我需要做的其他实现HTTP直播流?

感谢。

3 个答案:

答案 0 :(得分:0)

不多。如果您正在接收媒体的输入流,对它们进行编码,以适合传递的格式进行封装,并通过将其置于可以从HTTP服务器请求的方式来准备封装的媒体以进行分发,那么您就完成了。实时流媒体的理念是它利用现有的互联网架构,该架构已针对合理规模的资源提供HTTP请求进行了优化。

HTTP流式传输使许多现有的CDN解决方案无法使用其自定义流式传输协议,自定义路由和自定义内容缓存。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

这是一项很好的工作,但是一旦掌握了基础知识,这些工作大多是常规/重复的。

有关流式传输的更多信息,从iOS角度来看,您的圣经应始终为TN2224。严格遵守技术说明中的规范,是您通过App Store批准流程获得流媒体的最佳机会。

有些人不打扰(在过去几个月内构建一个流媒体应用程序,并查看了一大堆视频应用程序的HTTP日志,这些应用程序似乎并不遵守规则) - 有时Apple会注意到,有时他们没有,有时玩家太大了,苹果无法干涉。

因此,与应用程序功能的所有其他方面相比,经历Apple审查的情况并无太大差异。只是有一些方法可以确保你走在正确的轨道上。

当然,从纯粹的技术角度来看,正如@ psp1所提到的,mediastreamvalidator工具可以帮助你弄清楚你的流是否 - 在他们的核心,即使不是他们的整体能力 - 与预期的HLS实现。

注意:您可以使用自己的编码解决方案进行滚动(使用ffmpeg,加上您可以获得更多控制权,减去需要时间才能配置并且正常工作。加上一次开始谈论甚至是最小规模,你遇到了许多其他问题。一旦你完成所有的技术努力,你会发现这很容易。现在你必须真正弄清楚您需要获得哪种许可证才能获得花哨的H.264编码器,并跳过所有法律/程序箍以获得一个。)

对于没有法律/会计团队的开发人员而言,更容易解决方案可以填补足球领域,IMO,使用Encoding.com,Zencoder等提供编码服务的网站更容易进入第三方或者按月收费。优点是他们已经处理了所有的许可BS,并且只是为您提供简单的“付费使用”服务,这对于为客户构建项目时也非常有用。减号是你现在依赖于Zencoder / Encoding,当你的服务器关闭时,或者当API不完全时,你知道你的编码作业一整天都失败了按照您的期望行事或记录在案!

但无论如何,在推出HLS服务器投入生产之前,你所得到的所有因素都是关于Grok的。

相关问题