如何将Wowza Streaming Engine配置为一个http caching origin?
	
    在采用基于HTTP的流媒体传输方式(Apple HTTP Live Streaming (HLS))进行直播或点播流传输时,Wowza Streaming Engine可以被当作HTTP caching架构中的一个内容源(origin)。这篇文章介绍了如何配置你的Wowza应用以实现这个功能。
    
内容大纲
	
	关于HTTP Caching Origin
    要注意的配置问题
    在Wowza Streaming Engine中创建一个HTTP Origin 类型的Application
    配置参数说明
    
	
	其它资源
    
    
    关于HTTP caching origin
	
    
    当你将Wowza Streaming Engine做为一个HTTP caching origin时:
    
    
    
      - 
        1、在这个HTTP缓存架构中的边缘服务器(edge server)不是另一个Wowza Streaming Engine,而是普通的WEB服务器。这个边缘服务器将采用拉(HTTP PULL)的方式将内容从你的Wowza Streaming Engine将HTTP流拉到边缘上,并将内容缓存到边缘服务器上。
        
 
 
- 
        2、边缘服务器与扮演HTTP caching origin角色的Wowza Streaming Engine之间的HTTP通信是无状态的(基于session的通信无法实现这个功能)。也就说对于所有Edge服务器发来的HTTP请求,它在内部就只创建一个Session。这样就导致了下面的结果:
        
 
 
          - 
            1、在播放请求的URL中,查询参数(query parameters)是不被支持的。这包括VOD点播中的wowzaplaystart 和 wowzaplayduration以及nDvr播放中的wowzadvrplayliststart和wowzadvrplaylistduration。
            以及其它任何自定义参数(但这不包括NDVR播放功能必须的查询参数)。如果你带上了这些参数,只有当这个被请求的流在最初的初始化阶段才有用,后续请求的参数、不管是不是来自同一个播放器的,都将被忽略。
		    
 
 
- 2、基于Session的一些信息(例如并发连接数)是不被支持的。
 
要注意的配置问题
	
    
    为了让HTTP caching 正常工作,关于HTTP streaming的以下几点需要做出调整:
    
    
    
      - 
        Wowza Streaming Engine中所有的playlist和manifest里面含有的session 标识的(_wXXXXXXXXX)数据都必须被删除掉。当你将Wowza Streaning Engine设置为一个Http caching origin时,系统会自动为你完成这个工作(具体请参见下面的配置)。
        
 
 
- 
        HTTP Cache的Header信息必须被设置为允许内容进行缓存。
        
 
 
- 
        媒体流的URL必须加上随机标识符(random identifiers),这样每一个编码器发送来的数据的session从缓存的角度看是唯一的。
      
在Wowza Streaming Engine中创建一个HTTP Origin 类型的Application
	
    
	这部分介绍如何在Wowza服务器上创建一个Http caching origin类型的Application。如果你使用的是Wowza Streaming Engine产品,您可以通过Wowza Streaming Engine Manager的管理界面来创建这个应用。
    如果你使用的是以前的Wowza Media Server产品,你需要编辑
[install-dir]/conf/[application]/Application.xml文件来实现这个功能。
	
    
	  
	
	  - 在Wowza Streaming Engine Manager管理界面,点击Applications菜单,在面板中再点击Add Application。
 
 
- 在Add Application页面,点击Live HTTP Origin (针对直播流) 或 VOD HTTP Origin (针对点播流)。
  
 
 
- 在New Application 对话框中,填写Application的名字,再点击Add。
  
 
 
- 点击Save 来保存这个Application。
  
注意: 根据上面的截图,你可以看到HTTP Origin 应用只支持HTTP类型的流传输协议,不支持RTMP 和 RTSP 协议。
	
	每一个HTTP流传输协议的HTTP cache origin相关的一些配置参数会自动按默认值被设置好。 
	如果你要改变这些默认值,可以点击
Propertiestab页,并在
Quick Links导航条上点击
HTTP Cache Origin。 
	
	请根据下面的
配置参数说明进行配置以及添加自定义参数。 
		    
	
	配置参数说明
	
    
	  
	
	HTTP Streamer 相关参数
	    
	httpOriginMode
    这个参数用于启用HTTP Origin 模式或者禁用这个模式。默认值是
on (启用)。
	
    
    
	  用Wowza Streaming Engine Manager 管理界面来配置
      
	    - 在Wowza Streaming Engine Manager管理界面,点击ApplicationsTab页,再点击你的HTTP Origin 应用。
 
 
- 在HTTP origin 应用界面的Propertiestab页,点击Quick Links导航条的HTTP Cache Origin。
 
 
- 在HTTP Cache Origin区域,确认httpOriginMode被设置为on。要禁用HTTP Origin 模式,点击Edit,在将其设置为off。
 
 
- 点击Save,重启application让配置生效。
用XML 来配置
      
      
      
		- 用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,在<HTTPStreamer>/<Properties>中加入以下参数:
		    
 
<!-- HTTP origin mode: on, off -->
<Property>
    <Name>httpOriginMode</Name>
    <Value>on</Value>
</Property>
            
 
        
		重启Wowza Streaming Engine,让配置生效。
      
	Apple HLS cache-control 参数
	
    
    
	  用Wowza Streaming Engine Manager 管理界面来配置
      
	    - 在Wowza Streaming Engine Manager管理界面,点击ApplicationsTab页,再点击你的HTTP Origin 应用。
 
 
- 在HTTP origin 应用界面的Propertiestab页,点击Quick Links导航条的HTTP Cache Origin。
 
 
- 在HTTP Cache Origin区域点击EDIT,做以下修改:
		  
 
		    - 选择cupertinoCacheControlPlaylist边上的Enabled复选框,并将值设置为max-age=1。
 
 
- 选择cupertinoCacheControlMediaChunk边上的Enabled复选框,并将值设置为max-age=3600。
 
 
- 点击Save,重启application让配置生效。
用XML 来配置
      
      
		- 用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,在<HTTPStreamer>/<Properties>中加入以下参数:
		  
 
<!-- Apple HLS: cache control -->
<Property>
    <Name>cupertinoCacheControlPlaylist</Name>
    <Value>max-age=1</Value>
</Property>
<Property>
    <Name>cupertinoCacheControlMediaChunk</Name>
    <Value>max-age=3600</Value>
</Property>
            
 
		
		点击Save,重启application让配置生效。
      
     
	
		  说明:
		  
			- cupertinoCacheControlPlaylist设置playlist的HTTP caching header,单位是秒。
 
 
- cupertinoCacheControlMediaChunk设置media chunk的HTTP caching header,单位是秒。
MPEG-DASH cache-control 参数
	
    下面是MPEG-DASH 流传输协议需要的相关参数:
	
    
    
	  
		
		  
		  注意: MPEG-DASH cache-control 参数,只在Wowza Streaming Engine 软件才支持。
		
 
	   
     
	
	
	  用Wowza Streaming Engine Manager 管理界面来配置
      
	    - 在Wowza Streaming Engine Manager管理界面,点击Applications菜单,再点击你的HTTP origin application。
 
 
- 在HTTP origin application 界面的Propertiestab页,在Quick Links导航条上点击HTTP Cache Origin。
- 在HTTP Cache Origin区域,点击Edit,做如下改变:
		  
 
 
		    - 选择mpegdashCacheControlPlaylist边上的Enabled复选框,将值设置为max-age=1。
 
 
- 选择mpegdashCacheControlMediaChunk边上的Enabled复选框,将值设置为max-age=3600。
 
 
- 点击Save,然后重启应用,让配置生效。
用XML来配置
      
		- 
		  用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,在<HTTPStreamer>/<Properties>中加入以下参数: 
		  
 
<Property>
    <Name>mpegdashCacheControlPlaylist</Name>
    <Value>max-age=1</Value>
    <Type>String</Type>
</Property>
<Property>
    <Name>mpegdashCacheControlMediaChunk</Name>
    <Value>max-age=3600</Value>
    <Type>String</Type>
</Property>
			
- 重启Wowza Streaming Engine,让配置生效。
 
		  说明:
          
			- mpegdashCacheControlPlaylist 设置Mpeg-dash流的manifests和playlists的HTTP caching header,单位为秒。
 
 
- mpegdashCacheControlMediaChunk 设置Mpeg-dash流的media 片段的HTTP caching header,单位为秒。
自定义参数
	
	
	cupertinoOnChunkStartResetCounter
    将这个参数设置为
true,可以对每一个生成的media chunk的continuity counter进行重置。 
	这可以确认每一个生成的Chunk都是唯一的。当禁用这个参数时(设置为
false), 每一个media chunk的continuity counter会连续增加,可以用于跟踪和检查TCP传输的丢包。
	
    
    
	  用Wowza Streaming Engine Manager管理界面来配置
      
	    - 在Wowza Streaming Engine Manager管理界面,点击Applicationstab,再点击菜单中的HTTP origin application。
 
 
- 点击HTTP origin application 界面的 Properties tab页,点击Quick Links的Custom链接。
 
 
- 在Custom区域,点击Edit.
 
 
- 点击Add Custom Property, 在Add Custom Property对话框里输入如下信息,再点击Add:
 
 
		    - Path - 选择 /Root/Application/HTTPStreamer.
 
 
- Name - 输入 cupertinoOnChunkStartResetCounter.
 
 
- Type - 选择 Boolean.
 
 
- Value - 输入 true.
 
 
- 点击Save,重启application,让配置生效
用XML来配置
      
	    - 
		  用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,在<HTTPStreamer>/<Properties>中添加以下参数:
          
<Property>
    <Name>cupertinoOnChunkStartResetCounter</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>
- 重启Wowza Streaming Engine,让配置生效
 
	
	
	
	httpRandomizeMediaName
    将这个参数设置为
true,用来确保编码器重启后(重新连接后)发来的音视频片段(Chunk)是唯一的(没有重复的)。
	
    
    
	  用Wowza Streaming Engine Manager管理界面来配置
       
	    - 在Wowza Streaming Engine Manager管理界面上,点击Applicationstab菜单,再点击你的HTTP origin application。
 
 
- 
		  在HTTP origin application 界面上的Propertiestab页,点击Quick Links导航条上的Custom。
 
 
- 在Custom区域,点击Edit.
 
 
- 
		  点击Add Custom Property, 然后在Add Custom Property对话框中按下面的信息输入自定参数,然后点击Add:
		  
 
 
		    - Path - 选择 /Root/Application/LiveStreamPacketizer.
 
 
- Name - 输入 httpRandomizeMediaName.
 
 
- Type - 选择 Boolean.
 
 
- Value - 输入 true.
 
 
- 点击Save,然后重启Wowza 应用,让配置生效。
用XML来配置
      
	    - 
		  用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,然后在<LiveStreamPacketizer>/<Properties>中添加以下参数。
		  
 
<Property>
    <Name>httpRandomizeMediaName</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
</Property>
 
	
      
    HTTP Caching技术
    
    要了解更多关于HTTP caching 的技术细节, 请访问以下资源: