How Wowza handles MPEG-TS source, RTMP playout

I would appreciate insight on how Wowza manages RTMP time stamps when using MPEG-TS as source, playing back as Adobe RTMP.

I have been trying to get an RTMP streaming system to run full time, but am struggling with encoders as what I have tried; Flash Media Live Encoder, and FFmpeg both stop functioning after twenty-some days.

I understand this is due to the RTMP specifications managing time stamps in milliseconds using 32bit signed int, which overflows after roughly 596 hours.

I am now using FFmpeg to feed MPEG-TS to Wowza and playing out via Adobe RTMP.

As this is working fine, I am assuming that Wowza is generating its own RTMP time stamps for RTMP playout.

Would you please advise how Wowza is designed to handle its time stamps when it overflows after the mentioned duration?

Any corrections to the above understanding is also appreciated.

P.S.

What happened with the two tested encoders after the above duration…

FMLE… Running time locks to 00:00:00 and starts to generate an un-decodable stream.

FFmpeg (32bit)… Outputting RTMP, simply stopped and exited.

Is it because no one runs RTMP full time that I find such little information on workarounds?

Hi David,

I’m not aware of Wowza generated RTMP streams hitting that limit myself. The timestamps are stored as long numbers in Wowza, though there can be other factors such as the underlying OS (32-bit/64-bit etc). Have you managed to run the RTMP stream past the 596 hour mark yet?

Regards,

Paul

Hi Paul,

I just started running the FFmpeg/MPEG-TS source -> Wowza setup today, so I have another 23+ days remaining before confirming this.

From what I read, the time stamp restricted to 32 bits (long or int) is rather a design flaw of the RTMP protocol.

As long as Wowza is generating RTMP packets compatible with Adobe regardless of the source container, I would assume there are similar restrictions.

Would you please advise how this is internally handled?

In hope to resolve my situation, alternatively, do you have any suggestions for encoders or other protocols/containers proven to feed live streams over durations of months?

Thank you.

Hi David,

I’m asking internally about how we specifically manage RTMP timestamps and the significance of any 32-bit signed limitation. I’ll post back here once i get a definitive response.

Paul