> Now I'd like to proxy some remote surveillance cameras. As first I started 
> working on some
> own proxying code, but that didn't work too well and then I found 
> ProxyServerMediaSubsession
> which seems to do exactly what I want to do for now. However, I'd like that 
> the streams my
> application serves are multicasted, and ProxyServerMediaSubsession has an 
> explicit
> mention that it uses unicast only.

That's correct.  That code is used to allow a single 'back-end' RTSP/RTP stream 
(which can be either unicast or multicast) to be proxied - *unicast* - to one 
or more 'front-end' clients.  It is not intended to be used for multicast 
front-end streaming, because would be based upon completely different code 
("PassiveServerMediaSubsession" rather than "OnDemandServerMediaSubsession").

Fortunately, however, you can proxy to a multicast 'front-end' very simply, 
using just a modification to the existing tools:
(Assuming that your 'back-end' camera streams H.264 video.)
1/ In the "testH264VideoStreamer.cpp" code (in "testProgs"), change 
"inputFileName" from "test.264" to "stdin".
2/ Then run "openRTSP" on the 'back-end' stream, piping its output to your 
modified "testH264VideoStreamer" application.  I.e.:
        openRTSP -v rtsp://back-end-rtsp-url | 
your_modified_testH264VideoStreamer


> Also I probably want to also be able to decode the incoming stream in order 
> to grab
> still images from it and do some manipulation on it before re-encoding it 
> again. Is there
> some good way to "duplicate" the incoming stream into my custom code for 
> doing the
> image manipulation while at the same time keeping the normal proxied stream 
> working?

Yes, you can use the "StreamReplicator" class.  (Note the "testReplicator" demo 
application - in "testProgs" - that illustrates how to use this.)

If you use the mechanism that I suggested above (piping "openRTSP" into a 
modified "testH264VideoStreamer"), then you could update the 
"testH264VideoStreamer" some more, by feeding the "StreamReplicator" from the 
input "ByteStreamFileSource" (from "stdin"), create two replicas, then feed one 
replica into the "H264VideoStreamFramer" (and thus the "H264VideoRTPSink", for 
streaming), and feed another replica into your decoder.


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