关于 EXT-X-ALLOW-CACHE tag
M3U8 索引列表中的 EXT-X-ALLOW-CACHE tag 给终端播放器了一个提示,告诉它是否可以将下载下来的TS片段缓存下来。
这个Tag 可以出现在索引文件的任何位置,但只能有一个,并且对索引列表中的所有TS文件有效,格式如下:
#EXT-X-ALLOW-CACHE:<YES|NO>如果索引列表中包含EXT-X-ALLOW-CACHE tag 并且它的值是NO,那么终端播放器在播放完毕每一个TS文件后就应该及时删除它,不能缓存这些TS文件。否则,终端播放器就可以无限期地缓存这些TS文件。 你若将它设置为YES,就是告诉终端播放器,可以缓存这些内容。
注意:对于VOD业务,这个缓存还有点作用;但对于直播业务,建议不要缓存了,总不能让用户看过时的内容吧。 如果索引列表中没有设置这个Tag,那么终端播放器自己决定是否要缓存。
Wowza服务器上的配置
下面介绍了如何在Wowza Streaming Engine服务器上做配置,以让Wowza的M3u8索引列表中添加EXT-X-ALLOW-CACHE tag 。 你可以在你的Wowza应用配置文件Application.xml中添加以下参数:
对于这些参数,值true允许缓存(#EXT-X-ALLOW-CACHE:YES),值false 不允许缓存(#EXT-X-ALLOW-CACHE:NO)。如果没有设置这个参数,将默认使用下面的策略:
- 对于VOD业务,这个Tag不会出现。
- 对于直播(Live)和时移(nDVR)业务,这个Tag将被设置为#EXT-X-ALLOW-CACHE:NO。
注意:下面的这些XML中的配置,目前都可以在Wowza Streaming Engine Manger管理界面去设置。
VOD业务中的配置
- 配置一个VOD应用,具体请参考如何开始一个VOD点播,视频文件存放在哪里?。
-
用文本编辑器打开[install-dir]/conf/[application]Application.xml文件,在HTTPStreamer/Properties部分添加如下参数:
<Property> <Name>vodCupertinoPlaylistAllowCaching</Name> <Value>true</Value> <Type>Boolean</Type> </Property> <Property> <Name>cupertinoEnableExtXAllowCache</Name> <Value>true</Value> <Type>Boolean</Type> </Property>
- 重启Wowza Streaming Engine。
直播(Live)业务的配置
-
参考下面的资料,建立一个Wowza直播应用:
element("livestream")?>
-
用文本编辑器打开[install-dir]/conf/[application]Application.xml文件,在LiveStreamPacketizer/Properties部分添加如下参数:
<Property> <Name>cupertinoAllowCaching</Name> <Value>true</Value> <Type>Boolean</Type> </Property>
- 重启Wowza Streaming Engine。
时移(nDVR)业务的配置
- 如何配置时移(nDVR)应用的详细信息,请参考如何为直播流配置nDVR功能?
-
用文本编辑器打开[install-dir]/conf/[application]Application.xml文件,在HTTPStreamer/Properties部分添加如下参数:
<Property> <Name>dvrCupertinoPlaylistAllowCaching</Name> <Value>true</Value> <Type>Boolean</Type> </Property>
- 重启Wowza Streaming Engine。