[Live-devel] Viewing private RTSP streams through our RTSP->WebRTC proxy server
Ross Finlayson
finlayson at live555.com
Sun May 29 20:33:34 PDT 2016
This email is for those of you who are interested in our ongoing experimental RTSP->WebRTC proxy server, demoed at
http://webrtc.live555.com
Everyone else can simply ignore this email.
--------------------
Our demo lets you input the “rtsp://“ URL of a stream that you want to have proxied to WebRTC-compatible browsers.
For a “rtsp://“ URL that you enter on the web page, the stream must be accessible on the public Internet - i.e., it cannot be behind a NAT. The reason for this is that our RTSP->WebRTC server runs on the public Internet, and therefore it can’t access the RTSP stream if it’s private.
HOWEVER, if you have a RTSP server that’s implemented using the LIVE555 code, you can use our experimental “REGISTER” RTSP server->client command to notify the RTSP->WebRTC server about your stream; this server will then be able to proxy your stream, even if it’s behind a NAT.
To test this, you can add the following code to your server, after you’ve added the stream’s “ServerMediaSession” object to the server:
yourRTSPServer->registerStream(sms,
"webrtc.live555.com", 11685,
<your-response-handler-for-REGISTER>,
NULL, NULL,
True,
<string-name-to-identify-your-stream>);
where:
- “yourRTSPServer” is a pointer to your “RTSPServer” object
- “sms” is a pointer to your “ServerMediaSession” object for your stream. (You must have already added this to the server.)
- <your-response-handler-for-REGISTER> is a pointer to an optional handler function (of type “responseHandlerForREGISTER”, see “include/RTSPServer.hh”). Alternatively, you can leave this parameter as NULL.
- <string-name-to-identify-your-stream> is a string name - chosen by you - that will identify the proxied stream. (You should choose a string that other people are unlikely to choose.)
If you do this, then your WebRTC proxied stream should be viewable (from WebRTC-combatible browsers) at:
http://webrtc.live555.com/view-stream.php?streamName=<string-name-to-identify-your-stream>
NOTE: There’s currently no “UNREGISTER” command (because I haven’t yet figured out the right way it should work). Therefore, there’s currently no way to remove a back-end stream that you’ve asked to have proxied. However, after 10 minutes of inactivity (from front-end clients), then the back-end stream proxying will get removed automatically.
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
More information about the live-devel
mailing list