[Live-devel] 3 questions

Ross Finlayson finlayson at live.com
Mon Nov 22 08:28:38 PST 2004

At 05:25 AM 11/22/04, you wrote:
>That's cool and all, but when no GUI RTSP client can receive my
>streams, the exercise is somewhat pointless.

Not necessarily, because "openRTSP" can tell you:
1/ Whether RTP packets are getting sent at all.  (It wasn't obvious from 
your previous message whether this was even the case.)  You can test this 
by running "openRTSP" with the "-n" flag.
2/ Whether these RTP packets contain data (other than the 12-byte RTP 
header).  You can test this by looking at the size of the "video-<mumble>" 
file that "openRTSP" writes.
3/ What data these RTP packets contain.  You can test this by inspecting 
the file contents.  In particular, for MPEG-4 data, you can try 
re-streaming this file (e.g., rename it to "test.m4v" and try streaming it 
using "testMPEG4VideoStreamer").  That may tell you whether or not the data 
is well-formed.

>  Neither QTPlayer or VLC can receive my MPEG4 stream

Assuming that your data really is being sent, then the problem may just be 
that your MPEG-4 encoder is not periodically generating a "Visual Object 
Sequence header" (i.e., starting with 0x000001B0.  This hypothesis is 
supported by the following:

>Here's the openRTSP output, in case it points to a cause.
>Opened URL "rtsp://", returning a SDP
>o=- 1101129512331145 1 IN IP4
>s=Session streamed by "jitterTest"
>t=0 0
>a=tool:LIVE.COM Streaming Media v2004.11.11
>a=source-filter: incl IN IP4 *
>a=rtcp:unicast reflection
>a=x-qt-text-nam:Session streamed by "jitterTest"
>m=video 8888 RTP/AVP 96
>c=IN IP4
>a=rtpmap:96 MP4V-ES/90000

Note that there's no line
         a=fmtp:96 profile-level-id=1; config=<whatever>
in the SDP description.  This suggests that no MPEG-4 "Visual Object 
Sequence header" is present in the encoded data (and so 
"MPEG4VideoStreamFramer::getConfigBytes()" is always returning NULL).

You need to fix/reconfigure your encoder to generate periodic MPEG-4 
"Visual Object Sequence headers" (or else insert them into the data yourself).

This doesn't explain what's going wrong with your streaming motion-JPEG 
application, but you can test that by running "openRTSP" with the "-m" 
flag.  (This will cause it to output a new file for each received 
frame.  For motion-JPEG, each such file should be a JPEG image.)

	Ross Finlayson

More information about the live-devel mailing list