<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I am using Live555 to stream raw H.264 live video via RTP/RTSP.  In order to provide the video at various frame rates, 1 or more uncompressed video samples are dropped before being passed to the H264 encoder.  This works well for the source frame rate of 29.97 fps and also frame rates of 14.985, 9.99, 5.994, and 4.995 fps.  When the frame rate is dropped further to 2.997 fps or below, video playback in VLC freezes with warning messages stating "picture is too late to be displayed (missing xxx ms)" followed by an avcodec error message "more than 5 seconds of late video -> dropping frame (computer too slow ?)".<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I get this same behavior whether streaming H264 discrete NALs or AnnexB frames.  I would like to support three lower frame rates of 2.997, 1.998, and 0.999 fps but after extensive searching through the Live555 source code, the VLC source code and trying various timestamping offsets, I am unable to figure out why the problem is occuring.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Is there a correlation between video source frame rate and an allowable tolerance on the RTSP client side?  Any suggestions are greatly appreciated.  <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I've included part of the VLC log below, followed by the Live555 debug output:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><u>VLC Messages<o:p></o:p></u></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>main error: ES_OUT_RESET_PCR called<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 22 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 31 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 40 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 33 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 38 ms)<o:p></o:p></p><p class=MsoNormal>avcodec error: more than 5 seconds of late video -> dropping frame (computer too slow ?)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 4367 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 4374 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 4036 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 35 ms)<o:p></o:p></p><p class=MsoNormal>main warning: picture is too late to be displayed (missing 41 ms)<o:p></o:p></p><p class=MsoNormal>avcodec error: more than 5 seconds of late video -> dropping frame (computer too slow ?)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><u>Live555 Debug Output<o:p></o:p></u></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>accept()ed connection from 166.201.101.178<o:p></o:p></p><p class=MsoNormal>RTSPClientConnection[13C30068]::handleRequestBytes() read 128 new bytes:OPTIONS rtsp://166.201.101.178:5544/stream RTSP/1.0<o:p></o:p></p><p class=MsoNormal>CSeq: 2<o:p></o:p></p><p class=MsoNormal>User-Agent: LibVLC/2.0.4 (LIVE555 Streaming Media v2012.09.13)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>parseRTSPRequestString() succeeded, returning cmdName "OPTIONS", urlPreSuffix "", urlSuffix "stream", CSeq "2", Content-Length 0, with 0 bytes following the message.<o:p></o:p></p><p class=MsoNormal>sending response: RTSP/1.0 200 OK<o:p></o:p></p><p class=MsoNormal>CSeq: 2<o:p></o:p></p><p class=MsoNormal>Date: Mon, Nov 12 2012 20:36:12 GMT<o:p></o:p></p><p class=MsoNormal>Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, GET_PARAMETER, SET_PARAMETER<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>RTSPClientConnection[13C30068]::handleRequestBytes() read 154 new bytes:DESCRIBE rtsp://166.201.101.178:5544/stream RTSP/1.0<o:p></o:p></p><p class=MsoNormal>CSeq: 3<o:p></o:p></p><p class=MsoNormal>User-Agent: LibVLC/2.0.4 (LIVE555 Streaming Media v2012.09.13)<o:p></o:p></p><p class=MsoNormal>Accept: application/sdp<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>parseRTSPRequestString() succeeded, returning cmdName "DESCRIBE", urlPreSuffix "", urlSuffix "stream", CSeq "3", Content-Length 0, with 0 bytes following the message.<o:p></o:p></p><p class=MsoNormal>sending response: RTSP/1.0 200 OK<o:p></o:p></p><p class=MsoNormal>CSeq: 3<o:p></o:p></p><p class=MsoNormal>Date: Mon, Nov 12 2012 20:36:13 GMT<o:p></o:p></p><p class=MsoNormal>Content-Base: rtsp://166.201.101.178:5544/stream/<o:p></o:p></p><p class=MsoNormal>Content-Type: application/sdp<o:p></o:p></p><p class=MsoNormal>Content-Length: 453<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>v=0<o:p></o:p></p><p class=MsoNormal>o=- 1352752561887715 1 IN IP4 166.201.101.178<o:p></o:p></p><p class=MsoNormal>s=Mobile-Vision<o:p></o:p></p><p class=MsoNormal>i=Live Stream<o:p></o:p></p><p class=MsoNormal>t=0 0<o:p></o:p></p><p class=MsoNormal>a=tool:LIVE555 Streaming Media v2012.10.22<o:p></o:p></p><p class=MsoNormal>a=type:broadcast<o:p></o:p></p><p class=MsoNormal>a=control:*<o:p></o:p></p><p class=MsoNormal>a=range:npt=0-<o:p></o:p></p><p class=MsoNormal>a=x-qt-text-nam:Streamer<o:p></o:p></p><p class=MsoNormal>a=x-qt-text-inf:Live Stream<o:p></o:p></p><p class=MsoNormal>m=video 0 RTP/AVP 96<o:p></o:p></p><p class=MsoNormal>c=IN IP4 0.0.0.0<o:p></o:p></p><p class=MsoNormal>b=AS:500<o:p></o:p></p><p class=MsoNormal>a=rtpmap:96 H264/90000<o:p></o:p></p><p class=MsoNormal>a=fmtp:96 packetization-mode=1;profile-level-id=42C00A;sprop-parameter-sets=Z0LACtoFB/EycBEAAAMD6QAAF3CPEiag,aM48gA==<o:p></o:p></p><p class=MsoNormal>a=control:track1<o:p></o:p></p><p class=MsoNormal>RTSPClientConnection[13C30068]::handleRequestBytes() read 185 new bytes:SETUP rtsp://166.201.101.178:5544/stream/track1 RTSP/1.0<o:p></o:p></p><p class=MsoNormal>CSeq: 4<o:p></o:p></p><p class=MsoNormal>User-Agent: LibVLC/2.0.4 (LIVE555 Streaming Media v2012.09.13)<o:p></o:p></p><p class=MsoNormal>Transport: RTP/AVP;unicast;client_port=61044-61045<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>parseRTSPRequestString() succeeded, returning cmdName "SETUP", urlPreSuffix "stream", urlSuffix "track1", CSeq "4", Content-Length 0, with 0 bytes following the message.<o:p></o:p></p><p class=MsoNormal>sending response: RTSP/1.0 200 OK<o:p></o:p></p><p class=MsoNormal>CSeq: 4<o:p></o:p></p><p class=MsoNormal>Date: Mon, Nov 12 2012 20:36:13 GMT<o:p></o:p></p><p class=MsoNormal>Transport: RTP/AVP;unicast;destination=166.201.101.178;source=166.201.101.178;client_port=61044-61045;server_port=6970-6971<o:p></o:p></p><p class=MsoNormal>Session: EA51CD5B<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>RTSPClientConnection[13C30068]::handleRequestBytes() read 164 new bytes:PLAY rtsp://166.201.101.178:5544/stream/ RTSP/1.0<o:p></o:p></p><p class=MsoNormal>CSeq: 5<o:p></o:p></p><p class=MsoNormal>User-Agent: LibVLC/2.0.4 (LIVE555 Streaming Media v2012.09.13)<o:p></o:p></p><p class=MsoNormal>Session: EA51CD5B<o:p></o:p></p><p class=MsoNormal>Range: npt=0.000-<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>parseRTSPRequestString() succeeded, returning cmdName "PLAY", urlPreSuffix "stream", urlSuffix "", CSeq "5", Content-Length 0, with 0 bytes following the message.<o:p></o:p></p><p class=MsoNormal>RTCPInstance[13C80A58]::RTCPInstance()<o:p></o:p></p><p class=MsoNormal>schedule(2.635291->1352752575.699293)<o:p></o:p></p><p class=MsoNormal>sending response: RTSP/1.0 200 OK<o:p></o:p></p><p class=MsoNormal>CSeq: 5<o:p></o:p></p><p class=MsoNormal>Date: Mon, Nov 12 2012 20:36:13 GMT<o:p></o:p></p><p class=MsoNormal>Range: npt=0.000-<o:p></o:p></p><p class=MsoNormal>Session: EA51CD5B<o:p></o:p></p><p class=MsoNormal>RTP-Info: url=rtsp://166.201.101.178:5544/stream/track1;seq=34988;rtptime=1296858229<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>RTSPClientConnection[13C30068]::handleRequestBytes() read 154 new bytes:GET_PARAMETER rtsp://166.201.101.178:5544/stream/ RTSP/1.0<o:p></o:p></p><p class=MsoNormal>CSeq: 6<o:p></o:p></p><p class=MsoNormal>User-Agent: LibVLC/2.0.4 (LIVE555 Streaming Media v2012.09.13)<o:p></o:p></p><p class=MsoNormal>Session: EA51CD5B<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>parseRTSPRequestString() succeeded, returning cmdName "GET_PARAMETER", urlPreSuffix "stream", urlSuffix "", CSeq "6", Content-Length 0, with 0 bytes following the message<o:p></o:p></p><p class=MsoNormal>.<o:p></o:p></p><p class=MsoNormal>sending response: RTSP/1.0 200 OK<o:p></o:p></p><p class=MsoNormal>CSeq: 6<o:p></o:p></p><p class=MsoNormal>Date: Mon, Nov 12 2012 20:36:13 GMT<o:p></o:p></p><p class=MsoNormal>Session: EA51CD5B<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>[13C80A58]saw incoming RTCP packet (from address 166.201.101.178, port 61045)<o:p></o:p></p><p class=MsoNormal> 81c90007 e19e90c2 6a65ecb8 00ffffff 00018900 0000006e 00000000 00000000 81ca0004 e19e90c2 01094441 56454d2d 44543200<o:p></o:p></p><p class=MsoNormal>RR<o:p></o:p></p><p class=MsoNormal>RTSP client session (id "EA51CD5B", stream name "stream"): Liveness indication<o:p></o:p></p><p class=MsoNormal>validated RTCP subpacket (type 2): 1, 201, 0, 0xe19e90c2<o:p></o:p></p><p class=MsoNormal>UNSUPPORTED TYPE(0xca)<o:p></o:p></p><p class=MsoNormal>validated RTCP subpacket (type 2): 1, 202, 12, 0xe19e90c2<o:p></o:p></p><p class=MsoNormal>validated entire RTCP packet<o:p></o:p></p><p class=MsoNormal>sending REPORT<o:p></o:p></p><p class=MsoNormal>sending RTCP packet<o:p></o:p></p><p class=MsoNormal> 80c80006 6a65ecb8 d44bdc3f b4101f32 e79b102c 00000063 0001f667 81ca0004 6a65ecb8 01094441 56454d2d 44543200<o:p></o:p></p><p class=MsoNormal>schedule(1.521657->1352752577.231249)<o:p></o:p></p><p class=MsoNormal>schedule(1.073723->1352752578.305810)<o:p></o:p></p><p class=MsoNormal>schedule(1.315771->1352752579.622907)<o:p></o:p></p><p class=MsoNormal>sending REPORT<o:p></o:p></p><p class=MsoNormal>sending RTCP packet<o:p></o:p></p><p class=MsoNormal> 80c80006 6a65ecb8 d44bdc43 a0232096 e7a0730f 00000120 0005b484 81ca0004 6a65ecb8 01094441 56454d2d 44543200<o:p></o:p></p><p class=MsoNormal>schedule(2.467409->1352752582.098886)<o:p></o:p></p><p class=MsoNormal>[13C80A58]saw incoming RTCP packet (from address 166.201.101.178, port 61045)<o:p></o:p></p><p class=MsoNormal> 81c90007 e19e90c2 6a65ecb8 00ffffff 00018a15 00000155 dc43a023 00010f4d 81ca0004 e19e90c2 01094441 56454d2d 44543200<o:p></o:p></p><p class=MsoNormal>RR<o:p></o:p></p><p class=MsoNormal>RTSP client session (id "EA51CD5B", stream name "stream"): Liveness indication<o:p></o:p></p><p class=MsoNormal>validated RTCP subpacket (type 2): 1, 201, 0, 0xe19e90c2<o:p></o:p></p><p class=MsoNormal>UNSUPPORTED TYPE(0xca)<o:p></o:p></p><p class=MsoNormal>validated RTCP subpacket (type 2): 1, 202, 12, 0xe19e90c2<o:p></o:p></p><p class=MsoNormal>validated entire RTCP packet<o:p></o:p></p><p class=MsoNormal>sending REPORT<o:p></o:p></p><p class=MsoNormal>sending RTCP packet<o:p></o:p></p><p class=MsoNormal> 80c80006 6a65ecb8 d44bdc46 1ac4e725 e7a3da98 000001a5 00085e35 81ca0004 6a65ecb8 01094441 56454d2d 44543200<o:p></o:p></p><p class=MsoNormal>schedule(4.129500->1352752586.241355)<o:p></o:p></p><p class=MsoNormal>[13C80A58]saw incoming RTCP packet (from address 166.201.101.178, port 61045)<o:p></o:p></p><p class=MsoNormal> 81c90007 e19e90c2 6a65ecb8 00ffffff 00018b27 000001f5 dc461ac4 0003ecb4 81ca0004 e19e90c2 01094441 56454d2d 44543200<o:p></o:p></p><p class=MsoNormal>RR<o:p></o:p></p><p class=MsoNormal>RTSP client session (id "EA51CD5B", stream name "stream"): Liveness indication<o:p></o:p></p><p class=MsoNormal>validated RTCP subpacket (type 2): 1, 201, 0, 0xe19e90c2<o:p></o:p></p><p class=MsoNormal>UNSUPPORTED TYPE(0xca)<o:p></o:p></p><p class=MsoNormal>validated RTCP subpacket (type 2): 1, 202, 12, 0xe19e90c2<o:p></o:p></p><p class=MsoNormal>validated entire RTCP packet<o:p></o:p></p><p class=MsoNormal>schedule(0.379229->1352752586.621720)<o:p></o:p></p><p class=MsoNormal>schedule(0.755303->1352752587.377771)<o:p></o:p></p><p class=MsoNormal>sending REPORT<o:p></o:p></p><p class=MsoNormal>sending RTCP packet<o:p></o:p></p><p class=MsoNormal> 80c80006 6a65ecb8 d44bdc4b 60fd4bf1 e7ab18d7 000002af 000da6ca 81ca0004 6a65ecb8 01094441 56454d2d 44543200<o:p></o:p></p><p class=MsoNormal>reap: checking SSRC 0xe19e90c2: 4 (threshold 0)<o:p></o:p></p><p class=MsoNormal>schedule(4.851568->1352752592.235369)<o:p></o:p></p><p class=MsoNormal>RTSPClientConnection[13C30068]::handleRequestBytes() read 149 new bytes:TEARDOWN rtsp://166.201.101.178:5544/stream/ RTSP/1.0<o:p></o:p></p><p class=MsoNormal>CSeq: 7<o:p></o:p></p><p class=MsoNormal>User-Agent: LibVLC/2.0.4 (LIVE555 Streaming Media v2012.09.13)<o:p></o:p></p><p class=MsoNormal>Session: EA51CD5B<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>parseRTSPRequestString() succeeded, returning cmdName "TEARDOWN", urlPreSuffix "stream", urlSuffix "", CSeq "7", Content-Length 0, with 0 bytes following the message.<o:p></o:p></p><p class=MsoNormal>RTCPInstance[13C80A58]::~RTCPInstance()<o:p></o:p></p><p class=MsoNormal>sending BYE<o:p></o:p></p><p class=MsoNormal>sending RTCP packet<o:p></o:p></p><p class=MsoNormal> 80c80006 6a65ecb8 d44bdc4f 9dd9c27f e7b0eaab 00000373 001183b5 81cb0001 6a65ecb8<o:p></o:p></p><p class=MsoNormal>sending response: RTSP/1.0 200 OK<o:p></o:p></p><p class=MsoNormal>CSeq: 7<o:p></o:p></p><p class=MsoNormal>Date: Mon, Nov 12 2012 20:36:31 GMT<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>RTSPClientConnection[13C30068]::handleRequestBytes() read -1 new bytes (of 10000); terminating connection!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>