多协议、性能稳定、丰富API的流媒体服务器软件
如何配置Http live streaming切片时的相关参数?
这篇文章向你介绍了Wowza Stream Engine 4在提供Http Live Streaming服务时关于切片的相关参数设置。

目录


采用Wowza Streaming Engine Manager管理界面来配置
关于直播流的切片参数配置
HLS切片参数参考
关于点播流的切片参数配置
采用XML文件来配置
关于直播流的切片参数配置
关于点播流的切片参数配置

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


你可以采用Wowza Streaming Engine Manager管理界面来配置关于HLS切片的相关参数。

一、关于直播流的切片参数配置

  1. 在管理界面的Welcome界面,点击顶部的Applicationstab页。

  2. Applications菜单,点击应用的名字(例如live)。

  3. 在应用主界面的Propertiestab页,点击Quick Links导航条上的Cupertino Streaming Packetizer

    wowza

  4. Cupertino Streaming Packetizer区域点击Edit按钮。 要启用某个参数,在Enabled列中的复选框上打勾,然后你可以修改这个参数对应的默认参数值。 这里所有的时间参数的单位都是毫秒。下面的HLS切片参数参考对这些参数有详细的介绍。

    wowza

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

二、HLS切片参数参考


  • cupertinoChunkDurationTarget - 设置切片的时长大小(毫秒)。如果你采用Origin/Edge的架构,在Origin和Edge上都要配置这个参数,并要保持一致。

  • cupertinoMaxChunkCount - 设置在内存中保存的切片最大个数。

  • cupertinoPlaylistChunkCount - 设置在返回给客户端的Playlist中的切片个数。

  • cupertinoRepeaterChunkCount - 在Origin和Edge(也就是live repeater)架构下,设置当Edge和Origin建立连接后,立刻需要由Origin发送给Edge的切片数量。注意:这个参数需要配置在Origin服务器上。

关于这些参数的详细介绍


音频和视频流从编码器进入Wowza Stream Engine之后,Wowza依据时间将它分割为很多小的片段(本文以下称之为切片)。 切片的时长由cupertinoChunkDurationTarget参数来控制。当切片被创建后,它们被添加到到一个切片列表中。 存储在这个列表中切片的最大个数由cupertinoMaxChunkCount参数控制。 当一个HLS客户端发起拉流请求时,一个播放列表(playlist)被返回给客户端设备,这个播放列表会包含几个最新的切片。 在返回的播放列表(playlist)中的切片个数由cupertinoPlaylistChunkCount参数控制。

直播流中继器(live stream repeater)被用于在源/边缘(origin/edge)架构下由源(Origin)向多个边缘(Edge)系统传送实时流。 当边缘服务器(Edge)第一次向源(origin)请求实时流时,Origin会将之前的切片从源(origin)返回给边缘(edge),再由边缘(Edge)服务器向HLS客户端提供hls流服务。 cupertinoRepeaterChunkCount参数控制着在Edge和Origin完成初始化连接后,从源(origin)向边缘(edge)发送切片的数量。最好的设置是这个值等同或略大于cupertinoPlaylistChunkCount但略小于cupertinoMaxChunkCount
在Wowza Streaming Engine 4.5.0.02 及以上版本,如果你将cupertinoRepeaterChunkCount参数设置为小于或等于0,那么系统将实际采用cupertinoPlaylistChunkCount参数的值。

注意:在直播流中继器(live stream repeater)架构下,你的播放器是从Edge Application拉流的,因此你要注意2点:

1.在Chunklist中返回给播放器的TS文件数量是由Edge Application上的cupertinoPlaylistChunkCount参数决定的。

2.在Edge Application上的cupertinoChunkDurationTarget参数,只是约定了最大切片时长,而不是每一个切片的实际时长,因为我们知道切片是在Origin Application上生成的。 它的实际切片大小由Origin Application上的cupertinoChunkDurationTarget参数决定。

如果Edge Application上的cupertinoChunkDurationTarget参数值大于或等于Origin Application上的cupertinoChunkDurationTarget参数值。那么在Chunklist中的#EXT-X-TARGETDURATION将由Edge Application上的cupertinoChunkDurationTarget参数值决定。

如果Edge Application上的cupertinoChunkDurationTarget参数值小于Origin Application上的cupertinoChunkDurationTarget参数值。那么在Chunklist中的#EXT-X-TARGETDURATION将由Origin Application上的cupertinoChunkDurationTarget参数值决定



注意:

  • 每一个切片必须从关键帧快开始,因此关键帧的间隔最好是cupertinoChunkDurationTarget参数的因子(能够被整除).例如,如果cupertinoChunkDurationTarget 被设置为10秒,那么关键帧间隔最好被设置为2秒、2.5秒、5秒、或10秒。

  • 要评估需要多少内存来存储一个直播流的切片,可以用下面的公式:

    [total-memory-mb] = ([stream-bitrate-kbps]/([1024-kb-per-mb]*[8-bits-per-byte])) * [cupertinoChunkDurationTarget-seconds] * [cupertinoMaxChunkCount]

    例如,一个500kbps的实时流,按上面的默认设置将会消耗下面数量的内存:

    (500/(1024*8)) * 10 * 10 = 6 MB 内存

  • 你可以添加cupertinoCalculateChunkIDBasedOnTimecode参数,来让chunk ID 以接收输入流数据包的时间戳来编号。要这么做,请按如下操作:

    1. 在直播应用界面的Propertiestab页,在Quick Links导航条上点击Custom

    2. Custom区域,点击Edit

    3. 点击Add Custom Property,在Add Custom Property对话框中,按如下设置,然后点击Add:

      • Path - 选择 /Root/LiveStreamPacketizers.

      • Name - 输入 cupertinoCalculateChunkIDBasedOnTimecode.

      • Type - 选择 Boolean.

      • Value - 如要让chunk ID 从0开始,请输入false。若要让chunk ID以接收输入流数据包的时间戳来编号,输入true。(使用这个方式,可以在多台接收同一路输入流的Wowza服务器之间同步chunk ID。)

    4. 点击Save,然后根据界面提示,重启Application。

三、关于点播流的切片参数配置



针对VOD应用的切片时长,你可以添加cupertinoChunkDurationTarget参数来控制它。

  1. 在Wowza管理界面的Welcome页面,点击顶部的Applications

  2. Applications导航菜单,点击应用的名字(例如vod)。

  3. 在VOD应用页面的Propertiestab页,点击Quick Links导航条的的Custom连接。

  4. Custom区域,点击Edit

  5. 点击Add Custom Property,在Add Custom Property对话框按如下设置,点击Add

    1. In Path, 选择 /Root/Application/HTTPStreamer.

    2. In Name, 选择 cupertinoChunkDurationTarget.

    3. In Type, 选择 Integer.

    4. In Value, 输入切片的时长,单位是毫秒。

  6. 点击Save,然后按照提示重启应用,让配置生效。

XML configuration


如果你在使用Wowza Streaming Engine Manager管理界面,你可以直接跳过这一步。
如果你这里修改了[install-dir]/conf/[application]/Application.xml,同时如果你使用的是Wowza Streaming Engine软件(不是以前的media server 3.x),在系统重启后,所有这些设置都会体现在管理界面中。以前的Wowza Media Server™ 软件是没有管理界面的,你必须用Application.xml文件来设置所有的参数。

一、关于直播流的切片参数配置


  1. 用文本编辑器打开[install-dir]/conf/[application]/Application.xml文件,您可以按照上面介绍过的HLS切片参数参考在这个文件的LiveStreamPacketizer/Properties中添加以下参数:
    注意: 请确认将这些属性添加在Application.xml文件里正确的<Properties>中。在这个文件中有好几个<Properties>
    <Property>
    	<Name>cupertinoChunkDurationTarget</Name>
    	<Value>10000</Value>
    	<Type>Integer</Type>
    </Property>
    <Property>
    	<Name>cupertinoMaxChunkCount</Name>
    	<Value>10</Value>
    	<Type>Integer</Type>
    </Property>
    <Property>
    	<Name>cupertinoPlaylistChunkCount</Name>
    	<Value>3</Value>
    	<Type>Integer</Type>
    </Property>
    <Property>
    	<Name>cupertinoRepeaterChunkCount</Name>
    	<Value>-1</Value>
    	<Type>Integer</Type>
    </Property>
    <Property>
    	<Name>cupertinoCalculateChunkIDBasedOnTimecode</Name>
    	<Value>false</Value>
    	<Type>Boolean</Type>
    </Property>
                    
  2. 重启 Wowza Streaming Engine,让配置生效。

二、关于点播流的切片参数配置

  1. 用文本编辑器打开你的VOD应用的Application.xml文件,在<HTTPStreamer>/<Properties>中添加cupertinoChunkDurationTarget
    <Property>
    	<Name>cupertinoChunkDurationTarget</Name>
    	<Value>10000</Value>
    	<Type>Integer</Type>
    </Property>
    				
  2. 重启Wowza Streaming Engine,让配置生效。