[Live-devel] Broken data when streaming HEVC video

Ross Finlayson finlayson at live555.com
Thu May 4 04:44:55 PDT 2017


> Just to be clear: the buffer sizes I have to increase are the OutPacketBuffer::maxSize on the server, prior to creating any RTPSinks, as well as the size of my own, user-created buffer in the client, the one I'm passing to FrameSource::getNextFrame in my MediaSink::continuePlaying overload, right?

Yes.


> Or is there something else?

Yes, the “something else” is that you also need to reconfigure your encoder to generate multiple ‘slice’ NAL units for each ‘key frame’, rather than generating each key frame as a single (~150000-byte) NAL unit.  This is not just a ‘hint’.  It’s not just something that you need to ‘look into’.  If you don’t do this, each of your key frames will take up about 1000 RTP packets.  If *any* of these packets gets lost, then you will not be able to deliver and render the key frame - at all!

If your network packet loss rate is just 0.1%, then this means that you can expect to deliver only about 37% (==0.999^1000) of your key frames.  Even if your network packet loss rate were just 0.01%, then you could expect to deliver only about 90% (==0.9999^1000) of your key frames.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/




More information about the live-devel mailing list