Wowza and Akamai RTMP push, key frame interval are not constant.
we are using the wowza server to stream feeds from envivio, harmonic, rgb encoders to akamai "universal streaming". Akamai reported that the stream being sent by wowza is not of good quality. They found an issue with the keyframe interval of the video packets. The input to Wowza is Mpeg2Ts over UDP. A tcpdump showed that the stream are fine at the wowza input.
1\ how can i check the rtmp push stream coming from Wowza?
2\ how can I make wowza to streem with steady keyframe intervals?
I'm working with J-C on this topic. We are using Wowza version 3.6.2 with the PushPublish module version 3.5.
As input we have MPEG2-TS UDP multicast streams. There are no drops or streams that are streaming to the same port at the input of the wowza, we even tested the streams directly at the output of the wowza server (with an other configured application) and with that we were able to stream to a player without any freezes or drops.
Here you have the config of the PushPublishMap.txt file:
We tried different other variants of that file, with and without "sendOriginalTimecodes:true" and "originalTimecodeThreshold:0x100000" but the outcome was always the same.
As J-C already mentioned the timestamps from the encoders are in a regular interval, but at the akamai side they are completly in different intervals. This is causing problems to akamai for create the chunks for HDS and HLS. Is the wowza server restamping the timestamps? To my understanding with the "sendOriginalTimecodes:true" setting, the wowza should take the original timestamps coming from the encoder. Did we miss something?
We havn't seen any errors in the logs, here you have a sample from the access logs.
Adding the sort buffer did help in our case, but we had to double the buffer size to 1500.
Does anyone know what is the unit of this value, packets, ms, ...? What are the drawback when increasing this value? Will it lead to additional delay? Does it have an influence on the performance?
For me it is not clear why we need this buffer only when pushing to akamai. We used the same video stream, with an other application on the same server, to stream directly from wowza to the client, this way we hadn't any problems.
It could be that packets are getting lost in the network before Wowza. Take a look at the Wowza Jitter Buffer. It cannot fix this for mpeg-ts stream but it can log packet loss that is helpful for debuging: