如何将Wowza Media Server配置为http cache架构中的内容源(Origin)?
转载请注明:文章来自www.wowza.cn
注意: 要访问最新的技术资料,请访问http://www.ttstream.com/wowza/
当采用Apple HTTP Live Streaming (HLS)、Adobe HTTP Dynamic Streaming (HDS) 以及 Microsoft Smooth Streaming 流媒体协议向用户提供直播和点播(VOD)服务时,Wowza Media Server 可以用来当作http cache架构中的http内容源。 下面介绍了如何配置你的应用,以实现这个功能。
注意: 此功能需要Wowza Media Server® 3.5.0 及更高版本。www.wowza.cn,另外,HTTP cache 功能 不能 在Wowza Media Server Developer 版本上使用。

关于HTTP cache 内容源(origin)


当Wowza Media Server 作为一个 HTTP cache架构下的内容源(origin)时:

  • 边缘是一个HTTP cache架构中的边缘服务器,而不是另一个Wowza Media Server。边缘服务器从Wowza Media Server的内容源中拉(PULL)流并将流的分片数据缓存下来。所有的用户播放客户端都将收到同样的缓存数据。

  • www.wowza.cn,边缘服务器与Wowza Media Server HTTP 内容源(Origin)服务器之间的通信是(无状态的) sessionless (不支持基于session的通信)。这导致以下结果:

    • 在请求播放的URL中不能添加任何查询参数。这包括VOD点播时的wowzaplaystartwowzaplayduration 以及nDVR播放时的 wowzadvrplayliststartwowzadvrplaylistduration

    • 依赖Session的信息(例如, 连接数合计数量) 是无法得到的。

配置


要使得HTTP cache架构能正常运行, HTTP streaming的以下几个方面和之前是不同的:

  • Wowza Media Server 的session 标识符(可以理解为session ID) (_wXXXXXXXXX) 必须从播放列表和manifest数据中清除。你将Wowza Media Server 配置为HTTP cache origin时,它将自动完成这个工作(请看下面的介绍)。

  • HTTP头中的Cache-Control必须被设置允许客户端对内容进行缓存。

  • 随机标识符(Random identifier)必须被添加在直播流切片URL上 ,这样将使得在缓存看来,每一个编码的session都是唯一的。


配置服务器的属性参数


www.wowza.cn要把Wowza Media Server上的一个应用配置为Http 缓存的内容源(Origin),你必须将下面的属性参数添加到这个应用的[install-dir]/conf/[application]/Application.xml 文件中。

HTTPStreamer 的属性参数

将下面的属性添加到HTTPStreamer/Properties 中:
Code:
<!-- HTTP origin mode: on, off -->
<Property>
    <Name>httpOriginMode</Name>
    <Value>on</Value>
</Property>

<!-- Apple HLS: cache control -->
<Property>
    <Name>cupertinoCacheControlPlaylist</Name>
    <Value>max-age=1</Value>
</Property>
<Property>
    <Name>cupertinoCacheControlMediaChunk</Name>
    <Value>max-age=3600</Value>
</Property>

<!-- Smooth Streaming: cache control -->
<Property>
    <Name>smoothCacheControlPlaylist</Name>
    <Value>max-age=1</Value>
</Property>
<Property>
    <Name>smoothCacheControlMediaChunk</Name>
    <Value>max-age=3600</Value>
</Property>
<Property>
    <Name>smoothCacheControlDataChunk</Name>
    <Value>max-age=3600</Value>
</Property>

<!-- Flash HDS: cache control -->
<Property>
    <Name>sanjoseCacheControlPlaylist</Name>
    <Value>max-age=1</Value>
</Property>
<Property>
    <Name>sanjoseCacheControlMediaChunk</Name>
    <Value>max-age=3600</Value>
</Property>
<Property>
    <Name>cupertinoOnChunkStartResetCounter</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>
LiveStreamPacketizer 的属性参数

httpRandomizeMediaName 属性添加到 LiveStreamPacketizer/Properties 中。如果你要将Wowza nDVR 配置为HTTP 缓存源(origin),你必须同时将这个属性添加到DVR/Properties 中。
Code:
 
<Property>
    <Name>httpRandomizeMediaName</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>
注意: 另一种将内容传送到http缓存架构的边缘服务器上的方式是采用基于推送(push-based)的模型。www.wowza.cn,在这种机制下,Wowza Media Server 将把媒体切片数据和播放列表数据或manifest数据采用HTTP POST或FTP推送到边缘服务器上。这个功能正在测试中,很快就会在新版本中发布。

HTTP 缓存技术


要了解更多关于HTTP 缓存技术,请参考以下内容: