Problem:
I see a pause in my live stream at (roughly) 10-11 seconds after I hit play and again around 20-22 seconds after I initially hit the play button. These pauses last around 2 seconds. Again these numbers are approximate so bear with me.

Circumstances under which I can reproduce this:
Watching the stream on a flash player using the CDN based links. If I access the Wowza server directly (bypassing the CDN) I don't see the issue.

Stream workflow:
A server running VLC captures video from a card then encodes the video and sends it via RTP to an Amazon server running Wowza. Wowza transcodes the video into 2 streams (the source and a lower quality stream). Our CDN then pulls the video from the Amazon server and our players are set up to use the CDN to get the video.

Key Information:
  • This is only visible on flash players (I've tried 3 different players with the same result).
  • This is a live stream.
  • The pausing is visible on both CDN Adaptive and CDN Static streams.
  • If I reduce the sanjoseChunkDurationTarget it either increases the length of the pauses or causes the flash player to go into (what I call) a playlist loop. Where it keeps loading .abst files but never grabs any segments.
  • After those two initial pauses the stream is silky smooth. If the stream is playing and I refresh the page and press play I won't experience the pausing. But! If the stream is playing, I refresh the page and don't press play for at least 5 (or so) minutes then I experience the pausing once again.
  • The Amazon server has a maximum of 5 streams coming in. Each stream uses a different port so there aren't any streams getting mixed enroute to Wowza.
  • Wowza version 3.5.2
  • EdgeCast is our CDN
  • At the CDN level we are caching .abst files for 10s and not caching video fragments at all.


My hunch is that this is a product of what and how long we are caching and our keyframe settings. If there are any EdgeCast customers reading this could you provide any insight into how you are caching things? I'm sure I'm not the only one who would find that information helpful! I'm not sure if you need this information but I've included snippets of my transrate.xml, Application.xml and VLC command.

VLC command
/usr/local/bin/cvlc decklink:// --decklink-card-index="0" --decklink-mode="hp59" --rtsp-timeout 0 --sout='#transcode{venc=x264{keyint=60, subme=1, ref=1, bframes=16, b-adapt=1, bpyramid=none, weightp=0}, vcodec=h264, vb=1000, vt=100000, width=1280, acodec=mp4a, ab=96, threads=4 }:rtp{dst=amazon.ip.address,port=20000,mux=ts}' --file-logging --logfile=/home/user/liveStream.log --verbose=1  --sout-x264-level=3.0 --sout-x264-profile=baseline
Application.xml
<LiveStreamPacketizer>
            <!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
            <Properties>
                <Property>
                	<Name>sanjoseChunkDurationTarget</Name>
                	<Value>10000</Value>
                	<Type>Integer</Type>
                </Property>
                <Property>
                	<Name>sanjoseMaxChunkCount</Name>
                	<Value>10</Value>
                	<Type>Integer</Type>
                </Property>
                <Property>
                	<Name>sanjosePlaylistChunkCount</Name>
                	<Value>4</Value>
                	<Type>Integer</Type>
                </Property>
                <Property>
                	<Name>sanjoseRepeaterChunkCount</Name>
                	<Value>4</Value>
                	<Type>Integer</Type>
                </Property>
                <Property>
                	<Name>cupertinoChunkDurationTarget</Name>
                	<Value>10000</Value>
                	<Type>Integer</Type>baseline
                </Property>
                <Property>
                	<Name>cupertinoMaxChunkCount</Name>
                	<Value>10</Value>
                	<Type>Integer</Type>
                </Property>
                <Property>
                	<Name>cupertinoPlaylistChunkCount</Name>
                	<Value>5</Value>
                	<Type>Integer</Type>
                </Property>
                <Property>
                	<Name>cupertinoRepeaterChunkCount</Name>
                	<Value>5</Value>
                	<Type>Integer</Type>
                </Property>

                <Property>
                	<Name>httpRandomizeMediaName</Name>
                	<Value>true</Value>
                	<Type>Boolean</Type>
                </Property>
            </Properties>
        </LiveStreamPacketizer>
Transrate.xml
        <Encode>
                <Enable>true</Enable>
                <Name>360pLow</Name>
                <StreamName>mp4:${SourceStreamName}_360p</StreamName>
                <Video>
                    <!-- H.264, H.263, PassThru, Disable -->
                    <Codec>H.264</Codec>
                    <!-- default, CUDA, QuickSync -->
                    <Transcoder>default</Transcoder>
                    <GPUID>-1</GPUID>
                    <FrameSize>
                        <!-- letterbox, fit-width, fit-height, crop, stretch, match-source -->
                        <FitMode>fit-height</FitMode>
                        <Width>640</Width>
                        <Height>360</Height>
                        <!-- <Crop>0,0,0,0</Crop> -->
                        <!-- <SourceRectangle>0,0,320,240</SourceRectangle> -->
                    </FrameSize>
                    <Profile>baseline</Profile>
                    <Bitrate>375000</Bitrate>
                    <KeyFrameInterval>
                        <FollowSource>false</FollowSource>
                        <Interval>60</Interval>
                    </KeyFrameInterval>
                    <Overlays>
                        <Overlay>
                            <Enable>false</Enable>
                            <Index>0</Index>
                            <ImagePath>${com.wowza.wms.context.VHostConfigHome}/content/bimls360.png</ImagePath>
                            <CheckForUpdates>false</CheckForUpdates>
                            <Opacity>40</Opacity>
                            <Location>
                                <X>5</X>
                                <Y>5</Y>
                                <Width>${ImageWidth}</Width>
                                <Height>${ImageHeight}</Height>
                                <!-- horiz: left, right, hcenter - vert: top, bottom, vcenter -->
                                <Align>left,top</Align>
                            </Location>
                        </Overlay>
                    </Overlays>
                    <Parameters>
                    </Parameters>
                </Video>
                <Audio>
                    <!-- AAC, PassThru, Disable -->
                    <Codec>PassThru</Codec>
                    <Bitrate>${SourceAudioBitrate}</Bitrate>
                    <Parameters>
                    </Parameters>
                </Audio>
                <Properties>
                </Properties>
            </Encode>