[Live-devel] How framerate is passing to rtsp client

Ross Finlayson finlayson at live555.com
Thu Mar 31 13:33:31 PDT 2016


The (64-bit) "presentation time” values are not passed directly from the server to the client; instead, they are transferred implicitly, using the (32-bit) RTP timestamps in each RTP packet, plus periodic RTCP packets that provide the mapping from RTP timestamp to “presentation time”.  This is all very complicated, and is (IMHO) a flaw in the RTP/RTCP design; it was done to save space in each RTP packet.  However, our code (at both the server end and the client end) handles this all automatically, so that you don’t need to worry about it.

HOWEVER, for this to work properly (when writing a server that uses the LIVE555 code), the "presentation time” values that the server generates MUST be aligned with ‘wall clock’ time - i.e., the times that you’d get by calling “gettimeofday()”.

Therefore, you should go back to using “gettimeofday()” to generate your presentation times (in your server code).  (However, if you have more than one NAL unit for the same video frame, then each of these NAL units should be given the same presentation time.)


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




More information about the live-devel mailing list