我在浏览苹果的提案。 尝试一个虚拟的HTTP Live Streaming到我的iphone,我写了一个与Django相对应的.m3u8文件的webservice。我begining与用于IPhone的HTTP实时流式传输
#EXTM3U
#EXT-X-TARGETDURATION:#10
#EXT-X-MEDIA-SEQUENCE:#0
响应然后我写段的网址的响应内(每个10秒6段):
#EXTINF:10,
http://...../sample_low-1.ts
...
,这一切。我每分钟都会更改包含细分受众群网址的部分,因此理论上我期待着一个连续的直播流。
然而,当我与我的iPhone检查流我遵守下列规定:
手机连接到... M3U8,得到它的内容,开始下载.ts文件,并开始显示视频。然后,下载第6段(在.m3u8最后一段)后到达文件结束,看不到
EXT-X-ENDLIST
,并搜索新.m3u8。新的.m3u8已经准备好在服务器上了,因为我每60秒更新.m3u8的内容。
但是,手机暂停,我无法在手机上实现连续流。
所以,很明显我在某个地方犯了一个大错。任何帮助和建议都非常受欢迎。
编辑:原来,递增媒体序列的作品。
我用我在原文中提到的内容返回Django响应对象。不过,我认为这就是我应该做的,只是定期更改.m3u8索引文件。我错了吗? – 2010-02-07 22:40:46
如果使用“return”关键字,则响应完成,并且Django将等待来自客户端的新请求。另一方面,如果使用“yield”关键字,那么响应没有完成,并且Django将继续为客户端提供新数据,直到您停止它或者直到连接断开。 – 2010-02-08 12:19:25
感谢您的帮助。 – 2010-02-09 11:31:31