Ross,

Thanks for your input.

I reported the absence of RTSP for the unicast case to the server maker.
Luckily I can configure the device to multicast - here is the SDP

http://10.0.70.25/stream.sdp outputs:

v=0
o=- 8500488 8500488 IN IP4 10.0.70.25
s=ESP H264 STREAM
e=NONE
t=0 0
m=video 8800 RTP/AVP 96
c=IN IP4 225.0.0.0/1
a=rtpmap:96 H264/90000
a=fmtp:96 media=video; clock-rate=90000; encoding-name=H264; 
sprop-parameter-sets=Z0IAH6aAUAW5AA==,aM44gAAAAAA=

Do I have to use a lightweight HTTP client to get the SDP and then side load 
your RTPClient with the string?

Thanks
Markus.


From: live-devel-boun...@ns.live555.com 
[mailto:live-devel-boun...@ns.live555.com] On Behalf Of Ross Finlayson
Sent: Thursday, January 17, 2013 6:37 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] stream descriptor only reachable by HTTP

I have an RTP source where it's stream descriptor is only available via HTTP - 
any advice on how to go about it?
[...]

Browser output:

v=0
o=- 8161451 8161451 IN IP4 10.0.70.25
s=ESP H264 STREAM
e=NONE
t=0 0
m=video 8800 RTP/AVP 96
c=IN IP4 10.0.71.24
a=rtpmap:96 H264/90000
a=fmtp:96 media=video; clock-rate=90000; encoding-name=H264; 
sprop-parameter-sets=Z0IAH6aAUAW5AA==,aM44gAAAAAA=

Grumble....  I wish people (in this case, the developers of that server) would 
stop thinking that they can avoid implementing RTSP.  The RTSP protocol was 
designed and standardized for a good reason!  Generally speaking, trying to 
specify a stream using a SDP description only - without using the RTSP protocol 
- works only for multicast streams, not unicast streams like this.

But what *might* work here is the following:
1/ Call "MediaSession::createNew()" with this SDP description (string) as 
parameter, to create a new "MediaSession" object.
2/ Call "MediaSession::initiate()" on this "MediaSession" object.  This will 
create a "RTPSource" (and corresponding "RTCPInstance") objects, to receive the 
stream.
3/ Then, iterate through the "MediaSubsession" objects (there should be just 
one) of the "MediaSession" object, and call
            yourMediaSinkObject->startPlaying(*(subsession->readSource()), 
<etc>);

One potential issue here is that - using this approach - RTCP "RR" packets from 
you (the receiver) will not get sent back to the server (because the receiver - 
because it didn't use RTSP - has no way of knowing the server's IP address).  
This means that if the server uses "RR" packets coming from the receiver to 
indicate 'liveness', then it will eventually time out the connection.

If you have any control over the server, it would be better if you told it to 
stream via multicast instead of unicast, or - even better - to implement RTSP!

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

Reply via email to