Wowza Community

Issues with keyframe interval insertion

Hello Wowza Community

We’ve recently noticed a somewhat strange behaviour with our Streaming Engine.
When we transcode a video stream (50fps) into 4 quality levels, we also adjust the keyframe interval to be 50 frames.
But the LiveStreamPacketizerCupertino.endChunkTS still reports that the chunk duration is out of bounds.

LiveStreamPacketizerCupertino.endChunkTS[ingest/_definst_/outstream_480]: Duration is out of bounds: duration:6040 targetDuration:2000 bounds:[0,6000], setting to calculated duration:6040, marking as discontinuity

With a stream monitoring tool, we discovered that the messured duration, always equals the incommings streams keyframe interval
Which would mean that the keyframe insertion that should be happening in the transcode process, just isn’t

Is anyone else experiencing a similar issue?
Or did we forget to set something specific up in the Streaming Engine to make the keyframe interval insertion work?

With regards,

Simon

Hi Simon,

I have not changed the kf interval for awhile, so don’t have much recent info. However I would be surprised if its broken.

I assume you set the KeyFrameInterval in your transcoder template, and FollowSource to false.

The other thing I would check is that the correct transcoder template is specified in your Application.xml. The default goes to “${SourceStreamName}.xml,transrate.xml”

ScottK
Streaming Video Consultant
scott@blankcanvas.video

<>
					<FollowSource>false</FollowSource>
					<Interval>60</Interval>
				</KeyFrameInterval>

All of our Transcoding Templates have the following option enabled

<KeyFrameInterval>
    <FollowSource>false</FollowSource>
    <Interval>50</Interval>
</KeyFrameInterval>

But we are still getting the Errors

LiveStreamPacketizerCupertino.endChunkTS[ingest/_definst_/outstream_low]: Duration is out of bounds: duration:6040 targetDuration:2000 bounds:[0,6000], setting to calculated duration:6040, marking as discontinuity

LiveStreamPacketizerCupertino.endChunkTS[ingest/_definst_/outstream_720]: Duration is out of bounds: duration:6160 targetDuration:2000 bounds:[0,6000], setting to calculated duration:6040, marking as discontinuity

LiveStreamPacketizerCupertino.endChunkTS[ingest/_definst_/outstream_480]: Duration is out of bounds: duration:6160 targetDuration:2000 bounds:[0,6000], setting to calculated duration:6040, marking as discontinuity

LiveStreamPacketizerCupertino.endChunkTS[ingest/_definst_/outstream_360]: Duration is out of bounds: duration:6160 targetDuration:2000 bounds:[0,6000], setting to calculated duration:6040, marking as discontinuity

LiveStreamPacketizerCupertino.endChunkTS[ingest/_definst_/outstream_1080]: Duration is out of bounds: duration:6160 targetDuration:2000 bounds:[0,6000], setting to calculated duration:6040, marking as discontinuity

We typically stream at 50fps or 25fps and we observe these issues from time to time
What mainly confuses me, is that the measured duration is so far out of bounds and no where near our target keyframe interval.
If we were streaming at 25fps and the measured duration would be 2100ms then I would understand that our timings might be a bit tight
But the duration is far beyond anything we are inserting in terms of Keyframe intervals
Which is why we suspect that the keyframes might not get inserted properly

What does your application.xml have set for the transcoder template? And is this the one you are expecting?

The application.xml is pointing to our custom transcoder preset that we made, which is giving us a correct output except for the keyframe interval.

Simon,

Out of ideas here, :frowning:
Form the outside looks like a transcoder bug (which is where you started)

ScottK