多协议、性能稳定、丰富API的流媒体服务器软件
如何将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 Streamer 的参数
自定义参数
其它资源

关于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点播中的wowzaplaystartwowzaplayduration以及nDvr播放中的wowzadvrplayliststartwowzadvrplaylistduration。 以及其它任何自定义参数(但这不包括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文件来实现这个功能。

  1. 在Wowza Streaming Engine Manager管理界面,点击Applications菜单,在面板中再点击Add Application

  2. Add Application页面,点击Live HTTP Origin (针对直播流) 或 VOD HTTP Origin (针对点播流)。
    wowza

  3. New Application 对话框中,填写Application的名字,再点击Add
    wowza

  4. 点击Save 来保存这个Application。
    wowza


注意: 根据上面的截图,你可以看到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 管理界面来配置


  1. 在Wowza Streaming Engine Manager管理界面,点击ApplicationsTab页,再点击你的HTTP Origin 应用。

  2. 在HTTP origin 应用界面的Propertiestab页,点击Quick Links导航条的HTTP Cache Origin

  3. HTTP Cache Origin区域,确认httpOriginMode被设置为on。要禁用HTTP Origin 模式,点击Edit,在将其设置为off

  4. 点击Save,重启application让配置生效。

用XML 来配置



  1. 用文本编辑器打开[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 管理界面来配置


    1. 在Wowza Streaming Engine Manager管理界面,点击ApplicationsTab页,再点击你的HTTP Origin 应用。

    2. 在HTTP origin 应用界面的Propertiestab页,点击Quick Links导航条的HTTP Cache Origin

    3. HTTP Cache Origin区域点击EDIT,做以下修改:
      1. 选择cupertinoCacheControlPlaylist边上的Enabled复选框,并将值设置为max-age=1

      2. 选择cupertinoCacheControlMediaChunk边上的Enabled复选框,并将值设置为max-age=3600

    4. 点击Save,重启application让配置生效。

    用XML 来配置


    1. 用文本编辑器打开[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 管理界面来配置


    1. 在Wowza Streaming Engine Manager管理界面,点击Applications菜单,再点击你的HTTP origin application。

    2. 在HTTP origin application 界面的Propertiestab页,在Quick Links导航条上点击HTTP Cache Origin
    3. HTTP Cache Origin区域,点击Edit,做如下改变:

      1. 选择mpegdashCacheControlPlaylist边上的Enabled复选框,将值设置为max-age=1

      2. 选择mpegdashCacheControlMediaChunk边上的Enabled复选框,将值设置为max-age=3600

    4. 点击Save,然后重启应用,让配置生效。

    用XML来配置


    1. 用文本编辑器打开[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>
      			
    2. 重启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管理界面来配置


    1. 在Wowza Streaming Engine Manager管理界面,点击Applicationstab,再点击菜单中的HTTP origin application。

    2. 点击HTTP origin application 界面的 Properties tab页,点击Quick LinksCustom链接。

    3. Custom区域,点击Edit.

    4. 点击Add Custom Property, 在Add Custom Property对话框里输入如下信息,再点击Add:

      • Path - 选择 /Root/Application/HTTPStreamer.

      • Name - 输入 cupertinoOnChunkStartResetCounter.

      • Type - 选择 Boolean.

      • Value - 输入 true.

    5. 点击Save,重启application,让配置生效

    用XML来配置


    1. 用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,在<HTTPStreamer>/<Properties>中添加以下参数:
      <Property>
          <Name>cupertinoOnChunkStartResetCounter</Name>
          <Value>true</Value>
          <Type>Boolean</Type>
      </Property>
    2. 重启Wowza Streaming Engine,让配置生效

    httpRandomizeMediaName


    将这个参数设置为true,用来确保编码器重启后(重新连接后)发来的音视频片段(Chunk)是唯一的(没有重复的)。

    用Wowza Streaming Engine Manager管理界面来配置


    1. 在Wowza Streaming Engine Manager管理界面上,点击Applicationstab菜单,再点击你的HTTP origin application。

    2. 在HTTP origin application 界面上的Propertiestab页,点击Quick Links导航条上的Custom

    3. Custom区域,点击Edit.

    4. 点击Add Custom Property, 然后在Add Custom Property对话框中按下面的信息输入自定参数,然后点击Add:

      • Path - 选择 /Root/Application/LiveStreamPacketizer.

      • Name - 输入 httpRandomizeMediaName.

      • Type - 选择 Boolean.

      • Value - 输入 true.

    5. 点击Save,然后重启Wowza 应用,让配置生效。

    用XML来配置


    1. 用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,然后在<LiveStreamPacketizer>/<Properties>中添加以下参数。
      <Property>
          <Name>httpRandomizeMediaName</Name>
          <Value>true</Value>
          <Type>Boolean</Type>
      </Property>

    HTTP Caching技术


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