I have compared logs from my rtsp server ( runned on embedded device) and rtsp client ( runned on PC) and I found difference in timestamps.
On the server has elapsed 4.7 s
On the testRTSPClient has elapsed 1.6 s.

First timestamps are similar but next one is +110 ms on the server and + 40 ms on the client.

I have dumped RTP transmission using wireshark and I have checked that timestamp field is incremented by 3600 with every frame; I have read document RFC6184 chapter 5. RTP payload format. There is description of timestamp: "Timestamp: 32 bits The RTP timestamp is set to the sampling timestamp of the content. A 90 kHz clock rate MUST be used."

I am working on embedded device and I assume that my system timer is not 90kHz clocked. Am I right ? I must investigate how timestamp is calculated. Any advice ? RTPSink class will be good place to investigate ?

What else, I see that first packet is not displayed by testRTSPClient but it is another issue which probably has not influence on my problem.

Below I pasted logs from my server and from testRTSPClient application.

Regards

Server:
PIPE:LOS: Sending 13164 bytes   Presentation time: 567993726.600011
PIPE:LOS: Sending 10742 bytes   Presentation time: 567993726.719010
PIPE:LOS: Sending 11823 bytes   Presentation time: 567993726.827011
PIPE:LOS: Sending 11831 bytes   Presentation time: 567993726.946010
PIPE:LOS: Sending 11840 bytes   Presentation time: 567993727.053011
PIPE:LOS: Sending 12131 bytes   Presentation time: 567993727.173045
PIPE:LOS: Sending 11929 bytes   Presentation time: 567993727.281011
PIPE:LOS: Sending 11992 bytes   Presentation time: 567993727.399010
PIPE:LOS: Sending 11987 bytes   Presentation time: 567993727.508013
PIPE:LOS: Sending 15912 bytes   Presentation time: 567993727.625010
PIPE:LOS: Sending 11970 bytes   Presentation time: 567993727.744019
PIPE:LOS: Sending 11889 bytes   Presentation time: 567993727.854011
PIPE:LOS: Sending 11817 bytes   Presentation time: 567993727.965011
PIPE:LOS: Sending 4137 bytes with truncated 7685 bytes Presentation time: 567993728.084010
PIPE:LOS: Sending 7685 bytes    Presentation time: 567993728.094322
PIPE:LOS: Sending 11821 bytes   Presentation time: 567993728.193010
PIPE:LOS: Sending 11857 bytes   Presentation time: 567993728.311010
PIPE:LOS: Sending 11833 bytes   Presentation time: 567993728.421011
PIPE:LOS: Sending 11788 bytes   Presentation time: 567993728.541010
PIPE:LOS: Sending 15631 bytes   Presentation time: 567993728.650010
PIPE:LOS: Sending 11713 bytes   Presentation time: 567993728.768010
PIPE:LOS: Sending 11683 bytes   Presentation time: 567993728.877011
PIPE:LOS: Sending 11784 bytes   Presentation time: 567993728.996011
PIPE:LOS: Sending 11707 bytes   Presentation time: 567993729.104011
PIPE:LOS: Sending 11759 bytes   Presentation time: 567993729.224049
PIPE:LOS: Sending 11814 bytes   Presentation time: 567993729.334011
PIPE:LOS: Sending 8925 bytes with truncated 2975 bytes Presentation time: 567993729.447011
PIPE:LOS: Sending 2975 bytes    Presentation time: 567993729.459502
PIPE:LOS: Sending 11726 bytes   Presentation time: 567993729.560011
PIPE:LOS: Sending 15451 bytes   Presentation time: 567993729.679049
PIPE:LOS: Sending 11609 bytes   Presentation time: 567993729.788010
PIPE:LOS: Sending 11605 bytes   Presentation time: 567993729.907035
PIPE:LOS: Sending 11724 bytes   Presentation time: 567993730.016011
PIPE:LOS: Sending 11697 bytes   Presentation time: 567993730.134052
PIPE:LOS: Sending 11729 bytes   Presentation time: 567993730.243012
PIPE:LOS: Sending 11911 bytes   Presentation time: 567993730.361011
PIPE:LOS: Sending 12043 bytes   Presentation time: 567993730.471021
PIPE:LOS: Sending 12031 bytes   Presentation time: 567993730.590034
PIPE:LOS: Sending 15888 bytes   Presentation time: 567993730.698011
PIPE:LOS: Sending 9609 bytes with truncated 2372 bytes Presentation time: 567993730.818010
PIPE:LOS: Sending 2372 bytes    Presentation time: 567993730.833537
PIPE:LOS: Sending 11981 bytes   Presentation time: 567993730.928011
PIPE:LOS: Sending 12015 bytes   Presentation time: 567993731.046010
PIPE:LOS: Sending 12124 bytes   Presentation time: 567993731.157018
PIPE:LOS: Sending 12024 bytes   Presentation time: 567993731.275042
PIPE:LOS: Sending 12051 bytes   Presentation time: 567993731.383011


testRTSPClient:

Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 10738 bytes. Presentation time: 567993726.682812 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11819 bytes. Presentation time: 567993726.722812 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11827 bytes. Presentation time: 567993726.762812 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11836 bytes. Presentation time: 567993726.802800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 12127 bytes. Presentation time: 567993726.842800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11925 bytes. Presentation time: 567993726.882800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11988 bytes. Presentation time: 567993726.922800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11983 bytes. Presentation time: 567993726.962800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 15908 bytes. Presentation time: 567993727.002800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11966 bytes. Presentation time: 567993727.042800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11885 bytes. Presentation time: 567993727.082800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11813 bytes. Presentation time: 567993727.122800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11818 bytes. Presentation time: 567993727.162800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11817 bytes. Presentation time: 567993727.202800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11853 bytes. Presentation time: 567993727.242800 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11829 bytes. Presentation time: 567993727.282788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11784 bytes. Presentation time: 567993727.322788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 15627 bytes. Presentation time: 567993727.362788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11709 bytes. Presentation time: 567993727.402788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11679 bytes. Presentation time: 567993727.442788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11780 bytes. Presentation time: 567993727.482788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11703 bytes. Presentation time: 567993727.522788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11755 bytes. Presentation time: 567993727.562788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11810 bytes. Presentation time: 567993727.602788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11896 bytes. Presentation time: 567993727.642788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11722 bytes. Presentation time: 567993727.682788 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 15447 bytes. Presentation time: 567993727.722776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11605 bytes. Presentation time: 567993727.762776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11601 bytes. Presentation time: 567993727.802776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11720 bytes. Presentation time: 567993727.842776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11693 bytes. Presentation time: 567993727.882776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11725 bytes. Presentation time: 567993727.922776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11907 bytes. Presentation time: 567993727.962776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 12039 bytes. Presentation time: 567993728.002776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 12027 bytes. Presentation time: 567993728.042776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 15884 bytes. Presentation time: 567993728.082776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11977 bytes. Presentation time: 567993728.122776 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 11977 bytes. Presentation time: 567993728.162764 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 12011 bytes. Presentation time: 567993728.202764 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 12120 bytes. Presentation time: 567993728.242764 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 12020 bytes. Presentation time: 567993728.282764 Stream "rtsp://192.168.1.82:8554/testStream/"; video/H264: Received 12047 bytes. Presentation time: 567993728.322764



On 31/03/16 22:33, Ross Finlayson wrote:
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/


_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

--
Paweł Domagalski
Software Engineer
Mobica Ltd.
www.mobica.com

Mobica is a provider of innovative, cutting-edge software engineering, testing and 
consultancy services. Based in the UK, Poland, the USA and Mexico, Mobica has a 
worldwide customer base and a proven track record in delivering complex solutions 
to global leaders in a range of sectors including automotive, mobile, 
semiconductor, finance, TV & broadcasting, telecommunications, connected 
devices, marine and aviation.

Mobica Limited is a limited company registered in England and Wales with 
registered number 05169596 and VAT registered number 845117630. Our registered 
office is at Crown House, Manchester Road, Wilmslow, Cheshire, SK9 1BH, UK.
This message is intended solely for the addressee(s) and may contain confidential information. If you have received this message in error, please send it back to us, and immediately and permanently delete it. Do not use, copy or disclose the information contained in this message or in any attachment.

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to