目录
采用Wowza Streaming Engine Manager管理界面来配置
采用XML文件来配置
采用Wowza Streaming Engine Manager管理界面来配置
你可以采用Wowza Streaming Engine Manager管理界面来配置关于HLS切片的相关参数。
一、关于直播流的切片参数配置
- 在管理界面的Welcome界面,点击顶部的Applicationstab页。
- 在Applications菜单,点击应用的名字(例如live)。
- 在应用主界面的Propertiestab页,点击Quick Links导航条上的Cupertino Streaming Packetizer。
-
在Cupertino Streaming Packetizer区域点击Edit按钮。
要启用某个参数,在Enabled列中的复选框上打勾,然后你可以修改这个参数对应的默认参数值。
这里所有的时间参数的单位都是毫秒。下面的HLS切片参数参考对这些参数有详细的介绍。
- 点击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 以接收输入流数据包的时间戳来编号。要这么做,请按如下操作:
- 在直播应用界面的Propertiestab页,在Quick Links导航条上点击Custom。
- 在Custom区域,点击Edit。
- 点击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。)
- Path - 选择 /Root/LiveStreamPacketizers.
- 点击Save,然后根据界面提示,重启Application。
- 在直播应用界面的Propertiestab页,在Quick Links导航条上点击Custom。
三、关于点播流的切片参数配置
针对VOD应用的切片时长,你可以添加cupertinoChunkDurationTarget参数来控制它。
- 在Wowza管理界面的Welcome页面,点击顶部的Applications。
- 在Applications导航菜单,点击应用的名字(例如vod)。
- 在VOD应用页面的Propertiestab页,点击Quick Links导航条的的Custom连接。
- 在Custom区域,点击Edit。
- 点击Add Custom Property,在Add Custom Property对话框按如下设置,点击Add
- In Path, 选择 /Root/Application/HTTPStreamer.
- In Name, 选择 cupertinoChunkDurationTarget.
- In Type, 选择 Integer.
- In Value, 输入切片的时长,单位是毫秒。
- In Path, 选择 /Root/Application/HTTPStreamer.
- 点击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文件来设置所有的参数。
一、关于直播流的切片参数配置
-
用文本编辑器打开[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>
- 重启 Wowza Streaming Engine,让配置生效。
二、关于点播流的切片参数配置
-
用文本编辑器打开你的VOD应用的Application.xml文件,在<HTTPStreamer>/<Properties>中添加cupertinoChunkDurationTarget。
<Property> <Name>cupertinoChunkDurationTarget</Name> <Value>10000</Value> <Type>Integer</Type> </Property>
- 重启Wowza Streaming Engine,让配置生效。