Just be sure the key frame interval on the video is high (short time between key frames). The minimum chunk size is determined by the chunkDurationTarget and the key frame interval. Every chunk must start with a key frame.
Charlie
Just be sure the key frame interval on the video is high (short time between key frames). The minimum chunk size is determined by the chunkDurationTarget and the key frame interval. Every chunk must start with a key frame.
Charlie
You inserted the properties incorrectly into the LiveStreamPacketizers.xml file.
You have:
<LiveStreamPacketizer>
<Name>smoothstreamingpacketizer</Name>
<Description>Smooth Streaming Packetizer</Description>
<BaseClass>com.wowza.wms.httpstreamer.smoothstreaming.livestreampacketizer.LiveStreamPacketizerSmoothStreaming</BaseClass>
<IsRepeater>false</IsRepeater>
<LiveRepeaterPlayerClass></LiveRepeaterPlayerClass>
<LiveRepeaterReceiverClass></LiveRepeaterReceiverClass>
<!-- Target chunk duration (milliseconds) -->
<Property>
<Name>chunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</LiveStreamPacketizer>
It should be:
<LiveStreamPacketizer>
<Name>smoothstreamingpacketizer</Name>
<Description>Smooth Streaming Packetizer</Description>
<BaseClass>com.wowza.wms.httpstreamer.smoothstreaming.livestreampacketizer.LiveStreamPacketizerSmoothStreaming</BaseClass>
<IsRepeater>false</IsRepeater>
<LiveRepeaterPlayerClass></LiveRepeaterPlayerClass>
<LiveRepeaterReceiverClass></LiveRepeaterReceiverClass>
<!-- Target chunk duration (milliseconds) -->
<Properties>
<Property>
<Name>chunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</Properties>
</LiveStreamPacketizer>
Charlie
These are the best recommendations we have for low latency. The smaller the chunk size the lower the latency. The latest patch might help a little:
http://www.wowza.com/devbuild.html
You can certainly see in the “Add chunk” log statements the number of audio/video/keyframes and the duration of the chunk. Remember that we can only chunk on key frame boundries. So you might try setting the key frame interval to 1 second and the chunk duration to 1 second. This should get you down to 1-3 seconds.
Charlie
Be sure to install the most recent patch. It is here:
http://www.wowza.com/forums/showthread.php?t=5491
Charlie
The key frame interval is set on the encoding side. Carefully read the post we are referring to. They tell you where to put the properties.
Charlie
The instructions are here:
http://www.wowza.com/community/t/-/86
Read very carefully and do lots of experimentation. It is important to note the issue on key frame interval as it relates to chunk size.
Charlie
Take a look at this post for chunk duration
http://www.wowza.com/community/t/-/86
Key frame is set in the encoder
The developer license request form is here:
http://www.wowza.com/media-server/developers/license
Richard
my best latency is 10-12 seconds with the same value of ‘grrvin’ and 1 key frame per second. i use FMLE 3 to encode…is it possible to reduce this latency (my dream is 2 seconds )???
I have a camera, a PC, and iphone… i’d like show the video from camera in 2 seconds on my iphone. what can i do??? i’ve to wait an innovation from apple???
thanks to all
i’m using wowza 2,
but the best way is to set the chunk size in Applications.xml or LiveStreamPacketizer.xml file???
My problem is thath a chunk is played on the iphone more and more times…
I’ve this Application.xml, is it correct??
true
live
${com.wowza.wms.context.VHostConfigHome}/content
${com.wowza.wms.context.VHostConfigHome}/keys
cupertinostreamingpacketizer,smoothstreamingpacketizer
cupertinostreaming,smoothstreaming
-1
*
*
*
*
digest
digest
senderreport
12000
*
maxChunkCount
3
Integer
playlistChunkCount
2
Integer
repeaterChunkCount
1
Integer
chunkDurationTarget
1000
Integer
chunkDurationTolerance
1000
Integer
audioGroupCount
1000
Integer
waitForCodecTime
1000
Integer
forceH264BaselineProfile
false
Boolean
base
Base
com.wowza.wms.module.ModuleCore
properties
Properties
com.wowza.wms.module.ModuleProperties
logging
Client Logging
com.wowza.wms.module.ModuleClientLogging
flvplayback
FLVPlayback
com.wowza.wms.module.ModuleFLVPlayback
ModuleSecureURLParams
ModuleSecureURLParams
com.wowza.wms.plugin.security.ModuleSecureURLParams
ConnectionsLimit
ConnectionsLimit
com.wowza.wms.plugin.test.module.ConnectionsLimit
secureurlparams.publish
xxxxx.Pubblica
maxApplicationConnections
50
Integer
Thanks Charlie. I will give that a try. Is there a hardware limitation (CPU, network) that prevents live streaming on the iPhone ideal?
Thanks again.
-Garvin
It didn’t seem to work. I changed both the LiveStreamPacketizers.xml (found under [install dir]\conf) and the Application.xml (found under [install dir]\conf\live). When I start up the WowzaMediaServer the command prompt states that the chunkDurationTarget is still set to 10000. Below is an excerpt of the output and my LiveStreamPacketizer.xml file:
thanks for the help
-Garvin
LiveStreamPacketizer.xml file:
<Root>
<LiveStreamPacketizers>
<LiveStreamPacketizer>
<Name>smoothstreamingpacketizer</Name>
<Description>Smooth Streaming Packetizer</Description>
<BaseClass>com.wowza.wms.httpstreamer.smoothstreaming.livestreampacketizer.LiveStreamPacketizerSmoothStreaming</BaseClass>
<IsRepeater>false</IsRepeater>
<LiveRepeaterPlayerClass></LiveRepeaterPlayerClass>
<LiveRepeaterReceiverClass></LiveRepeaterReceiverClass>
<!-- Target chunk duration (milliseconds) -->
<Property>
<Name>chunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</LiveStreamPacketizer>
<LiveStreamPacketizer>
<Name>smoothstreamingrepeater</Name>
<Description>Smooth Streaming Repeater</Description>
<BaseClass>com.wowza.wms.httpstreamer.smoothstreaming.livestreampacketizer.LiveStreamPacketizerSmoothStreaming</BaseClass>
<IsRepeater>true</IsRepeater>
<LiveRepeaterPlayerClass>com.wowza.wms.httpstreamer.smoothstreaming.liverepeater.SmoothStreamerLiveRepeaterPlayer</LiveRepeaterPlayerClass>
<LiveRepeaterReceiverClass>com.wowza.wms.httpstreamer.smoothstreaming.liverepeater.SmoothStreamerLiveRepeaterReceiver</LiveRepeaterReceiverClass>
<!-- Target chunk duration (milliseconds) -->
<Property>
<Name>chunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</LiveStreamPacketizer>
<LiveStreamPacketizer>
<Name>cupertinostreamingpacketizer</Name>
<Description>Cupertino Streaming Packetizer</Description>
<BaseClass>com.wowza.wms.httpstreamer.cupertinostreaming.livestreampacketizer.LiveStreamPacketizerCupertino</BaseClass>
<IsRepeater>false</IsRepeater>
<LiveRepeaterPlayerClass></LiveRepeaterPlayerClass>
<LiveRepeaterReceiverClass></LiveRepeaterReceiverClass>
<!-- Target chunk duration (milliseconds) -->
<Property>
<Name>chunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</LiveStreamPacketizer>
<LiveStreamPacketizer>
<Name>cupertinostreamingrepeater</Name>
<Description>Cupertino Streaming Repeater</Description>
<BaseClass>com.wowza.wms.httpstreamer.cupertinostreaming.livestreampacketizer.LiveStreamPacketizerCupertino</BaseClass>
<IsRepeater>true</IsRepeater>
<LiveRepeaterPlayerClass>com.wowza.wms.httpstreamer.cupertinostreaming.liverepeater.CupertinoStreamerLiveRepeaterPlayer</LiveRepeaterPlayerClass>
<LiveRepeaterReceiverClass>com.wowza.wms.httpstreamer.cupertinostreaming.liverepeater.CupertinoStreamerLiveRepeaterReceiver</LiveRepeaterReceiverClass>
<!-- Target chunk duration (milliseconds) -->
<Property>
<Name>chunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</LiveStreamPacketizer>
</LiveStreamPacketizers>
</Root>
OUTPUT:
INFO server server-start Wowza 2 Advanced Preview 7 expires 30 November 2009 2.0
.0-preview7 build21940 -
INFO server comment - Serial number: XXXXX-XXXXX-XXXXX-XXXXX-EQ4BK
INFO server comment - Maximum connections: Unlimited
INFO server comment - Hardware Available Processors: 4
INFO server comment - Hardware Physical Memory: 1814MB/2047MB
INFO server comment - Hardware Swap Space: 4095MB/4095MB
INFO server comment - Max File Descriptor Count: Unlimited
INFO server comment - OS Name: Windows XP
INFO server comment - OS Version: 5.1
INFO server comment - OS Architecture: x86
INFO server comment - OS CPU: pentium_pro+mmx pentium_pro pentium+mmx pentium i4
86 i386 i86
INFO server comment - Java Name: Java HotSpot™ Client VM
INFO server comment - Java Vendor: Sun Microsystems Inc.
INFO server comment - Java Version: 1.6.0_07
INFO server comment - Java VM Version: 10.0-b23
INFO server comment - Java Spec Version: 1.6
INFO server comment - Java Home: C:\opt\jdk1.6.0_07\jre
INFO server comment - Java Max Heap Size: 762MB
INFO server comment - Java Architecture: 32
INFO server comment - CMDInterface now listening: [any]:8083
INFO server comment - vhost home directory: C:\opt\WowzaMediaSystems\WowzaMediaS
erver2Preview7
INFO vhost vhost-start defaultVHost -
INFO vhost comment defaultVHost RTMP/RTMPT bind attempt ([any]:1935)
INFO vhost comment defaultVHost Bind successful ([any]:1935)
INFO vhost comment defaultVHost RTMP/RTMPT bind attempt ([any]:8086)
INFO vhost comment defaultVHost Bind successful ([any]:8086)
INFO application app-start definst live/definst
INFO session connect-pending 10.1.139.17 -
INFO session connect-pending 10.1.139.17 -
INFO session connect 10.1.139.17 -
INFO session connect 10.1.139.17 -
INFO stream create - -
INFO stream create - -
INFO stream publish gLowStream -
INFO stream publish gStream2 -
INFO session connect-pending 10.1.139.17 -
INFO session connect 10.1.139.17 -
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gLowStre
am]: chunkDurationTarget: 10000
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gLowStre
am]: chunkDurationTolerance: 500
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gLowStre
am]: audioGroupCount: 3
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gLowStre
am]: playlistChunkCount:3
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream
packetizer: cupertinostreamingpacketizer:gLowStream
INFO server comment - CupertinoPacketHandler.startStream[live/definst/gLowStre
am]
WARN server comment - LiveStreamPacketizerCupertino.handlePacket: Video encoding
settings are beyond iPhone/iPod touch recommendations (Baseline/3.0) [live/_def
inst_/gLowStream]: {H264CodecConfigInfo: profile: “Main”, level: 1.3, frameSize:
320x240, aspect: 0/1, }
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream
packetizer: smoothstreamingpacketizer:gLowStream
INFO server comment - LiveStreamPacketizerSmoothStreaming.startStream[live/_defi
nst_/gLowStream]
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gStream2
]: chunkDurationTarget: 10000
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gStream2
]: chunkDurationTolerance: 500
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gStream2
]: audioGroupCount: 3
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gStream2
]: playlistChunkCount:3
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream
packetizer: cupertinostreamingpacketizer:gStream2
INFO stream create - -
INFO server comment - CupertinoPacketHandler.startStream[live/definst/gStream2
]
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream
packetizer: smoothstreamingpacketizer:gStream2
WARN server comment - LiveStreamPacketizerCupertino.handlePacket: Video encoding
settings are beyond iPhone/iPod touch recommendations (Baseline/3.0) [live/_def
inst_/gStream2]: {H264CodecConfigInfo: profile: “Main”, level: 1.3, frameSize: 3
20x240, aspect: 0/1, }
INFO stream publish gHighStream -
INFO server comment - LiveStreamPacketizerSmoothStreaming.startStream[live/_defi
nst_/gStream2]
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Audio info[liv
e/definst/gLowStream]: {AACFrame: size: 0, rate:32000, channels:1, samples:102
4, errorBitsAbsent:true, profileObjectType:2}
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Audio info[liv
e/definst/gStream2]: {AACFrame: size: 0, rate:32000, channels:1, samples:1024,
errorBitsAbsent:true, profileObjectType:2}
INFO session connect-pending 10.1.139.17 -
INFO session connect 10.1.139.17 -
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gHighStr
eam]: chunkDurationTarget: 10000
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gHighStr
eam]: chunkDurationTolerance: 500
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gHighStr
eam]: audioGroupCount: 3
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gHighStr
eam]: playlistChunkCount:3
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream
packetizer: cupertinostreamingpacketizer:gHighStream
INFO server comment - MediaStreamMap.getLiveStreamPacketizer: Create live stream
packetizer: smoothstreamingpacketizer:gHighStream
INFO server comment - CupertinoPacketHandler.startStream[live/definst/gHighStr
eam]
INFO server comment - LiveStreamPacketizerSmoothStreaming.startStream[live/_defi
nst_/gHighStream]
WARN server comment - LiveStreamPacketizerCupertino.handlePacket: Video encoding
settings are beyond iPhone/iPod touch recommendations (Baseline/3.0) [live/_def
inst_/gHighStream]: {H264CodecConfigInfo: profile: “Main”, level: 3.1, frameSize
: 720x540, aspect: 0/1, crop: l:0 r:0 t:0 b:2, }
INFO stream create - -
INFO stream publish gStream -
INFO server comment - LiveStreamPacketizerCupertino.handlePacket: Audio info[liv
e/definst/gHighStream]: {AACFrame: size: 0, rate:44100, channels:2, samples:10
24, errorBitsAbsent:true, profileObjectType:2}
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gStream]
: chunkDurationTarget: 10000
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gStream]
: chunkDurationTolerance: 500
INFO server comment - LiveStreamPacketizerCupertino.init[live/definst/gStream]
: audioGroupCount: 3
A
That did the trick. Unfortunately the iPhone lag only dropped down to 20 seconds from 45 seconds. I updated my LiveStreamPacketizer.xml with
<Property>
<Name>chunkDurationTarget</Name>
<Value>100</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>chunkDurationTolerance</Name>
<Value>100</Value>
<Type>Integer</Type>
</Property>
Is there anything else I can adjust to squeeze out anymore latency?
Thanks
-Garvin
Hi,
Could anyone tell me what exactly to change on live/Application.xml and conf/LiveStreamPacketizers.xml?
I tried to change “chunkDurationTarget” in conf/LiveStreamPacketizers.xml (no change to live/Application.xml) but either didn’t get any improvement on the latency (50 seconds on 300k streams) or the media couldn’t be played.
We just want to have latency within 20 seconds.
Thanks a lot!
BTW: I am using Wowza 2.
Thanks Charlie!
I read that link before. Did you mean I don’t have to change the config/LiveStreamPacketizers.xml at all? Just play with the values of the properties mentioned in the link you referred?
Thanks a lot!
hi
Could someone tell me where to set this value ?
key frame interval to 1 second
chunk duration to 1 second
which xml file ? under which section
© 2007–2024 Wowza Media Systems™, LLC. All rights reserved. Security & Privacy PolicyLegalSystem Status