[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://192.168.1.1:7070/myTest", returning a SDP
>description:
>v=0
>o=- 1101129512331145 1 IN IP4 192.168.1.1
>s=Session streamed by "jitterTest"
>i=
>t=0 0
>a=tool:LIVE.COM Streaming Media v2004.11.11
>a=type:broadcast
>a=control:*
>a=source-filter: incl IN IP4 * 192.168.1.1
>a=rtcp:unicast reflection
>a=range:npt=0-
>a=x-qt-text-nam:Session streamed by "jitterTest"
>a=x-qt-text-inf:
>m=video 8888 RTP/AVP 96
>c=IN IP4 232.89.244.221/7
>a=rtpmap:96 MP4V-ES/90000
>a=control:track1

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
	LIVE.COM
	<http://www.live.com/>



More information about the live-devel mailing list