Hi,

We have a RTSP server that streams live audio and video (using RTP) to
an Apple QuickTime client (6.3). We are having issues with playing
audio and video simultaneously although if we stream them individually
they play fine.
>>>PROBLEM:
The issue is that when audio and video are played simultaneously,
video plays continuously but audio stops after a short time and
*never* resumes. If we close the quicktime client and reopen the
connection, the behaviour is the same, both audio and video play for a
short duration and then only video is observed.

We have simulated the environment as if the data were being streamed
from Darwin Streaming Server and here's the sequence of packets (and
their contents) being sent:

Packet sequence: (observations are marked with >>>>Xi)
---------------
Sl# Time Source Destination Proto Info
1 86.495388 QT RTSP Server RTSP Describe
rtsp://192.168.81.37/mpeg4live.mp4 RTSP/1.0

Contents:
RTSP:
Describe rtsp://192.168.81.37/mpeg4live.mp4 RTSP/1.0\r\n
CSeq: 1\r\n
Accept: application/sdp\r\n
Bandwidth: 2147483647\r\n
Accept-Language: en-US\r\n
User-Agent: QTS (qtver=6.3;os=Windows NT 5.0Service Pack 3)\r\n
\r\n


Sl # Time Source Destination Proto
Info
2 86.599902 RTSP Server QT RTSP/SDP RTSP/1.0 200 OK,

with session description

Contents:
RTSP:
RTSP/1.0 200 OK\r\n
CSeq: 1\r\n
Cache-Control: must-revalidate\r\n
Content-Type: application/sdp\r\n
Content-Length: 375\r\n
Server: xxx RTSP Server 0.0\r\n
\r\n
Session Description Protocol:
v:0
o:StreamingServer 3256875437 1047525357000 IN 192.168.81.37
s:mpeg4live.mp4
c:IN IP4 0.0.0.0
t:0 0
a:control:rtsp://*/mpeg4live.mp4
a:range:npt=0-
m:video 0 RTP/AVP 96
a:rtpmap:96 MP4V-ES/90000
a:control:rtsp://*/mpeg4live.mp4/video
a:cliprect:12,14,132,174
a:framerate:5.0
a:I_frame_interval:10
m:audio 0 RTP/AVP 0
a:control:rtsp://*/mpeg4live.mp4/audio

Sl # Time Source Destination Proto
Info
3 86.776992 QT RTSP Server RTSP SETUP

rtsp://*/mpeg4live.mp4/video RTSP/1.0

Contents:
RTSP:
SETUP rtsp://*/mpeg4live.mp4/video RTSP/1.0\r\n
CSeq: 2\r\n
Transport: RTP/AVP;unicast;client_port:6970-6971\r\n
x-retransmit: our-retransmit\r\n
x-dynamic-rate: 1\r\n
x-transport-options: late-tolerance=2.900000\r\n
User-Agent: QTS (qtver=6.3;os=Windows NT 5.0Service Pack 3)\r\n
Accept-Language: en-US\r\n
\r\n

Sl # Time Source Destination Proto
Info
4 86.841344 RTSP Server QT RTSP RTSP/1.0 200 OK

Contents:
RTSP:
RTSP/1.0 200 OK\r\n
CSeq: 2\r\n
Cache-Control: must-revalidate\r\n
Session: 3510403072\r\n
Transport: RTP/AVP;unicast\r\n
x-Transport-Options: late-tolerance=10\r\n
x-Retransmit: our-retransmit\r\n
x-Dynamic-Rate: 1\r\n
Content-Length: 0\r\n
Server: xxx RTSP Server 0.0\r\n
\r\n

Sl # Time Source Destination Proto
Info
5 86.853015 QT RTSP Server RTSP SETUP

rtsp://*/mpeg4live.mp4/audio RTSP/1.0

Contents:
RTSP:
SETUP rtsp://*/mpeg4live.mp4/audio RTSP/1.0\r\n
CSeq: 3\r\n
Transport: RTP/AVP;unicast;client_port:6972-6973\r\n
x-retransmit: our-retransmit\r\n
x-dynamic-rate: 1\r\n
x-transport-options: late-tolerance=2.900000\r\n
Session: 3510403072\r\n
User-Agent: QTS (qtver=6.3;os=Windows NT 5.0Service Pack 3)\r\n
Accept-Language: en-US\r\n
\r\n

Sl # Time Source Destination Proto
Info
6 86.940407 RTSP Server QT RTSP RTSP/1.0 200 OK

Contents:
RTSP:
RTSP/1.0 200 OK\r\n
CSeq: 3\r\n
Cache-Control: must-revalidate\r\n
Session: 3510403072\r\n
Transport: RTP/AVP;unicast\r\n
x-Transport-Options: late-tolerance=10\r\n
x-Retransmit: our-retransmit\r\n
x-Dynamic-Rate: 1\r\n
Content-Length: 0\r\n
Server: xxx RTSP Server 0.0\r\n
\r\n

Sl # Time Source Destination Proto
Info
7 86.945190 QT RTSP Server RTSP PLAY

rtsp://mpeg4live.mp4 RTSP/1.0

Contents:
RTSP:
PLAY rtsp://mpeg4live.mp4 RTSP/1.0\r\n
CSeq: 4\r\n
Range: npt=0.000000-\r\n
x-prebuffer: maxtime=2.000000\r\n
Session: 3510403072\r\n
User-Agent: QTS (qtver=6.3;os=Windows NT 5.0Service Pack 3)\r\n
\r\n

Sl # Time Source Destination Proto
Info
8 87.022508 RTSP Server QT RTSP RTSP/1.0 200 OK

Contents:
RTSP:
RTSP/1.0 200 OK\r\n
CSeq: 4\r\n
Cache-Control: must-revalidate\r\n
Session: 3510403072\r\n
Content-Length: 0\r\n
Server: xxx RTSP Server 0.0\r\n
\r\n

>>>>Xi: Note: When the PLAY request comes from QT, the
x-Transport-Options is not echoed. I had specified a tolerance of 10
seconds for both the streams (please see contents of packet # 4 & 6),
but it does not seem to have been registered with QT. At this point
the server starts streaming the video and audio RTP packets. As
mentioned earlier, video plays as expected but audio stops playing.
The server however does not stop streaming the audio packets.
---------------

The time stamp used in the audio RTP packets is incremented by 800 and
we are sending out 800 bytes of data per packet. The video time stamp
is incremented by 3000 (since the sampling rate is 90k and frame rate
is 30fps). These values are constant. One point here is we cannot
assure that an audio or video packet is sent out at a specified time,
audio and video streaming is handled by separate threads and their
scheduling is not in our control. Also, we currently do not use RTCP
connections, and would prefer to avoid them unless absolutely
essential.

A dumb question, but is there anything I'm missing out on?!

Thanks in advance!
-Xi