多协议、性能稳定、丰富API的流媒体服务器软件
如何将Wowza Streaming Engine配置为http cache架构中的内容源(Origin)?
当采用Apple HTTP Live Streaming (HLS)、MPEG-DASH 流媒体协议向用户提供直播和点播(VOD)服务时,Wowza Streaming Engine 可以用来当作http cache架构中的http内容源。 下面介绍了如何配置你的应用,以实现这个功能。

关于HTTP cache 内容源(origin)


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

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

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

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

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

配置


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

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

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

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


配置服务器的属性参数


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


HTTPStreamer 的属性参数

将下面的属性添加到HTTPStreamer/Properties 中:
<!-- 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>

<Property>
    <Name>cupertinoOnChunkStartResetCounter</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>
		
LiveStreamPacketizer 的属性参数

httpRandomizeMediaName 属性添加到 LiveStreamPacketizer/Properties 中。如果你要将Wowza nDVR 配置为HTTP 缓存源(origin),你必须同时将这个属性添加到DVR/Properties 中。
<Property>
    <Name>httpRandomizeMediaName</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>
		

HTTP 缓存技术


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