Live RTMP re-stream of QuickTime RTSP breaking up -- packet loss?

I’m taking live RTSP feeds from Darwin (QuickTime) Streaming Server, and re-streaming them as RTMP (and recording MP4) through Wowza. Since I recently upgraded to the latest Wowza dev build (2.2.3.03), the RTMP feeds are consistently breaking up – see screenshot:

http://160.94.17.23/demo-jim/screenshot.jpg

My stream type is rtp-live-record, and I have the sort buffer and jitter buffer enabled, as well as forceInterleaved and forceH264BaselineProfile. I use a simple aliasmap to direct my Wowza stream name to the appropriate Darwin RTSP stream.

I think these live playback problems may have started when I jumped from version 2.1.2 to 2.2.0 last month – I did not notice this problem previously, and I’ve discovered some new error messages appearing regularly since that update:

interleavePackets: audio:224 video:75 data:2 error:java.lang.IndexOutOfBoundsException: Index: 223, Size: 223
writePackets: audio:1 video:0 data:0 error:java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
addAudioData: java.lang.NullPointerException

It seems like I can make these errors go away if I disable forceInterleaved, and use rtp-live instead of rtp-live-record, but the viewing problem still remains.

I’m seeing regular packet loss for each stream every minute or two – not sure why, and I don’t remember if this was the case before (previously I had this logging turned off, as I had no problems). I haven’t changed anything on my network since these last played smoothly, I’ve got all of my buffer settings cranked up (in VHost.xml, application.xml, and on the client), and a cursory network test shows no issues. The Darwin server hasn’t changed recently either. My client machines are all on the same gig ethernet network too. Machine is Windows Server 2008 64-bit, Wowza is tuned, load is very light, and Java is 64-bit Server VM 1.6.0_20.

Any ideas?

Have you tried this:

https://www.wowza.com/docs/how-to-turn-on-an-rtp-jitter-buffer-and-packet-loss-logging-rtp-and-mpeg-ts)

Try that with forceInterleaved set to both ways.

Richard

Richard

I am not sure You should try it.

Glad it’s working better.

Richard

Thanks Richard. As I said, I had the jitter buffer (and the sort buffer) on the whole time, and it didn’t seem to help, regardless of what I had set for forceInterleaved.

Interestingly, I just re-built my Application.xml from scratch (basically removing the jitter buffer, sort buffer, and forceInterleaved options entirely), and although I still see these artifacts occasionally (stream startup and motion sometimes trigger it), it actually seems watchable now. No odd error log messages anymore either (although that’s without packet loss logging, so I don’t know what’s happening there). I can’t hardly remember why I needed the buffers to begin with, so I will try to do without. My stream source (the Darwin server) is very close to the Wowza box and I generally find the local network to be very reliable.

Just out of curiosity, if I want to monitor packet loss logging, but I don’t want the actual buffer, can I simply add the wrapper but set the buffer and flush times to zero?