VLC不会在滑动窗口HLS Stream上重新请求m3u8播放列表

时间:2013-09-08 03:17:59

标签: vlc m3u8

我正在实施HLS服务器并尝试通过VLC播放。它播放播放列表,但从不重新播放播放列表。有什么想法吗?下面是我要返回的播放列表的示例。

#EXTM3U
#EXTINF:9,
http://10.221.218.91:10042/clip/0.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/1.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/2.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/3.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/4.ts?session=23
#EXTINF:20,
http://10.221.218.91:10042/clip/5.ts?session=23

2 个答案:

答案 0 :(得分:1)

播放列表中的每个媒体段必须具有唯一的整数序列号。它在#EXT-X-MEDIA-SEQUENCE标签中描述。每当新段附加到实时播放列表时,您必须增加媒体序列的十进制数。如果您不在播放列表中使用此标记,则假定媒体序列号= 0并且播放器假定没有新段到达。

此外,您必须在媒体播放列表中使用#EXT-X-TARGETDURATION,并使用十进制整数表示目标持续时间(以秒为单位)。当四舍五入到最接近的整数时,媒体播放列表文件中每个媒体段的#EXTINF持续时间必须小于或等于目标持续时间。

以上关于HLS的IETF草案的注释:http://tools.ietf.org/html/draft-pantos-http-live-streaming,尤其是第3.4.2和3.4.3段。

因此,根据这些规则,您对播放列表的示例必须如下:

#EXTM3U
#EXT-X-TARGETDURATION:20
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:9,
http://10.221.218.91:10042/clip/0.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/1.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/2.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/3.ts?session=23
#EXTINF:9,
http://10.221.218.91:10042/clip/4.ts?session=23
#EXTINF:20,
http://10.221.218.91:10042/clip/5.ts?session=23

然后#EXT-X-MEDIA-SEQUENCE在每个到达的新段上增加1(即大约在TARGETDURATION秒之后)。

答案 1 :(得分:0)

我强烈建议您在测试中使用VLC 2.1,因为我们大大提高了HLS支持。目前的预发布版本可在此处获取:http://get.videolan.org:81/testing/vlc-2.1.0-rc1/

此外,我不完全确定根据HLS标准的正确行为是什么 - 不时重新请求m3u8或服务器保持连接打开并在播放列表可用时推送更多内容。你应该检查一下: - )