Wowza nDVR的一些高级配置
这篇文章介绍了一些关于Wowza nDVR的一些高级配置。包括激活录制功能的一些基本配置在
如何为直播业务配置和运行Wowza nDVR功能?里有介绍。
我们建议你在使用本文介绍的高级配置前,先从基本开始开始进行测试。
要获得更多关于Wowza nDVR的资料,请参阅
Wowza相关文档中的Wowza nDVR用户使用指南
Wowza nDVR的高级参数配置在
Application.xml文件的
DVR/Properties中:
streamTimeout
毫秒(ms)为单位的时长,是输入流停止之前,Wowza nDVR等待的时间(即超过个时间还没有输入流到来,则认为输入流已经停止了)
默认值是
300,000 ms (5 分钟)。
这个超时时长代表了编码器从断开连接到重新连接的最大时长。这个值应该保持非零,否则,只要没有输入流数据了,Wowza nDVR就会停止录制(不会有任何等待)。
<Properties>
<Property>
<Name>streamTimeout</Name>
<Value>300000</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrMinimumAvailableChunks
在对外提供流服务之前,最少的数据切片个数。单位是数据切片的个数,默认值是
3 个切片, 这是Http流媒体技术的通常要求。
<Properties>
<Property>
<Name>dvrMinimumAvailableChunks</Name>
<Value>3</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrChunkGroupingSeconds
设置在每一个目录下保存多少时长的录制文件,单位是秒。默认值是
600 秒 (10 分钟)。
目录的命名格式为
HHHH_
MM_
SS ,其中
H = 小时,
M = 分钟,
S = 秒。
如果使用默认值,第一个目录为
0000_00_00,第二个目录为
0000_10_00,以此类推。
<Properties>
<Property>
<Name>dvrChunkGroupingSeconds</Name>
<Value>600</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrAppendDiscontinuityDelta
适用于
<ArchiveStrategy> append 模式。单位为毫秒(ms)。
默认值是
0。当使用append模式时, 在已有的录制流和新增加的录制流之间会有一个短时间的增量。
<Properties>
<Property>
<Name>dvrAppendDiscontinuityDelta</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrMaxChunkLogCount
输出到
wowzamedia_access.log文件中的关于录制的切片信息的最大切片个数。
单位是切片的数量,默认是
10个切片。当录制的切片数量超过这个值并继续录制时,就不会再有对应的日志输出在这个日志文件中。
你可以在
[install-dir]/dvr目录下看到被创建的录制切片数据。
<Properties>
<Property>
<Name>dvrMaxChunkLogCount</Name>
<Value>10</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrMaxRecountDurationLogCount
在重新计算切片时长时输出最大数量的日志记录条数。
小于
0的值意味所有的日志都会被记录而没有任何限制。默认值为
30。
<Properties>
<Property>
<Name>dvrMaxRecountDurationLogCount</Name>
<Value>30</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrAudioOnlyChunkTargetDuration
适用于对纯音频的流进行录制的场景,它是目标切片时长。单位是毫秒(ms)。
默认值是
2000 毫秒。如果输入流里包括音频和视频,这个设置将被忽略,在那个场景下是依赖关键帧来决定切片的大小。
<Properties>
<Property>
<Name>dvrAudioOnlyChunkTargetDuration</Name>
<Value>2000</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrChunkDurationMinimum
控制nDVR切片的最小时长,单位为毫秒。默认值为
1500 毫秒。切片将通过关键帧来分割。
注意:在切片大小和延时之间需要有一个权衡。因为HTTP流媒体技术有一个固有3个切片的延时,切片尺寸过大会导致播放之间有较长的延时。
<Properties>
<Property>
<Name>dvrChunkDurationMinimum</Name>
<Value>10000</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrWaitForCodecTime
一个单位为毫秒(ms)的时长,这是当输入流进来后,Wowza nDVR等待接收音频和视频编码信息的时间。
默认是
8000毫秒(ms)。
<Properties>
<Property>
<Name>dvrWaitForCodecTime</Name>
<Value>8000</Value>
<Type>Integer</Type>
</Property>
</Properties>
recordVideo
设置为
true将录制输入流中的视频。默认是
true。
设置为
false则在录制时会忽略视频数据包。
recordVideo或
recordAudio至少其中一个必须是
true。
<Properties>
<Property>
<Name>recordVideo</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
recordAudio
设置为
true将录制输入流中的音频。默认是
true。
设置为
false则在录制时忽略音频数据包。
recordVideo或
recordAudio至少其中一个必须是
true。
<Properties>
<Property>
<Name>recordAudio</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
dvrAllowableAVPacketDelta
Wowza nDVR 希望输入流的音频和视频是同步的。通过这个参数,Wowza nDVR将尝试对没有同步的数据做一些补偿,但它并不会真正解决这个同步的问题。
这个设置是对音频和视频不同步时的一个保护。单位为毫秒(ms)。默认值是
2000毫秒。
www.ttstream.com
如果音频和视频不同步的时间超过这个值,这个音频和视频切片就会被忽略,并尝试获得n an attempt to get the streams back into alignment.
如果你已经发现了音视频不同步问题, 增加这个值很有可能会导致更多的问题。
增加这个值将增加忍耐级别,但是它会导致整体的播放质量变得不可接受。
<Properties>
<Property>
<Name>dvrAllowableAVPacketDelta</Name>
<Value>2000</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrPacketSortTime
在输入流进入Wowza nDVR之前为数据包增加sorter。单位为毫秒(ms)。默认值为(
0) 意味着means that no sorting occurs.
这个和直播流的数据包 sorter有些类似。它会增加对应这个值的延时。
www.ttstream.com
因此建议在wowza media server的上游来解决音视频不同步的问题,在不可能这样解决时,可以使用这个参数。
<Properties>
<Property>
<Name>dvrPacketSortTime</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
</Properties>
dvrEncryptionSharedSecret
在直播流中继(origin/edge)场景下,Wowza使用了数据包加密技术, 在源(origin)和边缘(edge)服务器上都要设置一个共享密钥用来对它们之间的数据传输做加密和解密,这样加密后的信息就不会被暴露出来。
<Properties>
<Property>
<Name>dvrEncryptionSharedSecret</Name>
<Value>AGoodSecret</Value>
<Type>String</Type>
</Property>
</Properties>
startRecordingOnStartup
这个参数决定了当输入流启动后DVR是否应立刻开始录制。
默认值(
true) 意味当输入流启动后,DVR 立刻开始录制。如果DVR录制功能由API来控制,将它设置为
false是有用的。
<Properties>
<Property>
<Name>startRecordingOnStartup</Name>
<Value>false</Value>
<Type>boolean</Type>
</Property>
</Properties>
dvrPlaylistRequestDelegate
注册一个用于提供DVR播放列表请求服务的代理类。
要了解更多,请阅读
如何使用Wowza nDVR Playlist Request API?
<Properties>
<Property>
<Name>dvrPlaylistRequestDelegate</Name>
<Value>com.wowza.wms.dvr.impl.DvrStartDurationPlaylistRequestDelegate</Value>
</Property>
</Properties>
dvrSanJosePlaylistVersion
设置San Jose f4m playlist 的版本号(version 1.0 或 version 2.0)。默认是
2.0。
<Properties>
<Property>
<Name>dvrSanJosePlaylistVersion</Name>
<Value>1.0</Value>
</Property>
</Properties>