我在http://tools.ietf.org/html/draft-pantos-http-live-streaming-01中提到了Apple的提案。 尝试将虚拟HTTP直播流式传输到我的iphone,我写了一个与Django对应的.m3u8文件的web服务。我正在用
开始回应#EXTM3U
#EXT-X-TARGETDURATION:#10
#EXT-X-MEDIA-SEQUENCE:#0
然后我在响应中写下段的URL(每段10秒的6段):
#EXTINF:10,
http://...../sample_low-1.ts
...
就是这样。我每分钟更改包含段的URL的部分,所以理论上我期待连续的直播。
但是,当我用iphone检查流时,我会观察到以下内容:
手机连接到... m3u8,获取其内容,开始下载.ts文件并开始显示视频。然后,在下载第6段(.m3u8中的最后一段)后,它到达文件末尾,看不到
EXT-X-ENDLIST
并搜索新的.m3u8。此时新的.m3u8已在服务器上准备就绪,因为我每60秒更新一次.m3u8的内容。
然而,手机暂停,我无法在手机上连续播放。
所以,显然我在某个地方犯了一个大错。任何帮助和建议都是非常受欢迎的。
编辑:结果是增量媒体序列有效。
答案 0 :(得分:0)
你如何回复回复?
如果您return
Django响应对象,那么服务器只是发送一个包含六个段的响应,然后静静地坐着,等待来自客户端的新请求。
如果要从服务器连续发送数据,则应该yield
结果,并使用某种同步,以确保不会反复发送相同的数据。