如何将Wowza media server配置为一个http caching origin?
转载请注明:文章来自www.wowza.cn
注意: 要访问最新的技术资料,请访问http://www.ttstream.com/wowza/
在采用基于HTTP的流媒体传输方式(Apple HTTP Live Streaming (HLS), Adobe HTTP Dynamic Streaming (HDS), 以及Microsoft Smooth Streaming protocols)进行直播或点播流传输时,Wowza Media Server可以被当作HTTP caching架构中的一个内容源(origin)。这篇文章介绍了如何配置你的应用以实现这个功能。 www.wowza.cn
注意:这个功能需要Wowza Media Server® 3.5.0 或更高版本。同时,Wowza Media Server Developer Edition是支持HTTP caching 功能的。

关于HTTP caching origin


当你将Wowza Media Server做为一个HTTP caching origin:

  • 边缘服务器是一个HTTP缓存架构,不是另一个Wowza Media Server。边缘服务器将采用拉(PULL)的方式将内容从你的Wowza Media Server HTTP caching origin 拉到边缘,并将内容缓存到http server上。所有的客户端都将使用这些相同的被缓存的内容。

  • 边缘服务器与Wowza Media Server HTTP caching origin之间的http通信是无状态的(基于session的通信无法实现这个功能)。 这样就导致了下面的结果:

    • 在播放请求的URL中,查询参数(query parameters)是不被支持的。这包括VOD点播中的wowzaplaystartwowzaplayduration for VOD playback and wowzadvrplayliststart 以及nDvr播放中的wowzadvrplaylistduration

    • 基于Session的一些信息(例如并发连接数)都是不支持的。

配置


为了让HTTP caching 正常工作,关于HTTP streaming的以下几点需要做出调整:

  • Wowza Media Server中所有的playlist和manifest里面含有的session identifier (_wXXXXXXXXX)数据都必须被删除掉。当你将Wowza Media Server设置为一个HTTP caching origin时,系统会自动为你完成这个工作(具体请参见下面的配置)。

  • HTTP Cache-Control 的头部信息必须被设置为允许内容进行缓存。www.wowza.cn

  • 媒体流的URL必须加上随机标识符(random identifiers),这样每一个编码的session从缓存的角度看是唯一的。


服务器参数配置


下面描述了当把一个应用配置为HTTP caching origin时,必须被加入到[install-dir]/conf/[application]/Application.xml文件中的一些参数。

HTTPStreamer properties

把下面的参数加入到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 properties

httpRandomizeMediaName参数加入到LiveStreamPacketizer/Properties中。如果你希望将带有nDVR功能的Wowza media server作为一个HTTP caching origin,你必须同时将这个参数加入DVR/Properties中。
Code:
 
<Property>
    <Name>httpRandomizeMediaName</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>
        
注意: 另一个将媒体流传输到HTTP caching 架构中的方法是基于推(Push)的方式.使用这个方式时,Wowza Media Server将通过HTTP POST或FTP方式把媒体块(chunks)以及playlists/manifests信息推送到一个HTTP caching架构中去。 这个方法正在测试中,在接下来的版本中很快会实现。

HTTP Caching技术


要了解更多关于HTTP caching 的技术细节, 请访问以下资源: