Wowza Community

rtsp redirect

hi,

is there any way, in a custom module to issue the rtsp REDIRECT instruction?

i’ve seen the loadbalancing module, but it works only for rtmp if i understand correctly

thanks

I don’t think so. The load balancing redirect method sends instruction to the client which does the actual redirecting, and is always Flash app. With rtsp, there are many possible clients.

Richard

We have not investigated RTSP load balancing as of yet. The idea of providing RTSP redirects in the current load balancing system is a good idea. We will consider it. It is unclear how many players and which players support RTSP redirection.

Charlie

What aspects of an RTSP session do you need to control?

I will consider adding hooks to enable RTSP redirection.

Charlie

OK, let me think about it. I also think you need to be able to stop an RTSP session mid-session.

Charlie

No, I am not sure when I will get to this. It will most likely not be soon.

Charlie

Plus, it is not very useful if the players do not support it. It seems that the player support for RTSP redirects is very spotty at best. So we are not motivated to add this feature. I do not know of any other solutions other then to do the redirection outside of RTSP.

Charlie

Smil file is not support for rtsp in Wowza.

Richard

It is not supported at present, but under consideration

I do not have eta

Richard

For non-Flash client the only option is use the HTTP method of getting least loaded edge.

Richard

That’s interesting. Are you using IMediaCasterNotify2 ?

https://www.wowza.com/docs/imediacasternotify2-example

Can you show how?

Richard

Jay,

Thanks for the report. I will forward info.

Richard

Does anyone happen to know if Android based phones and VLC support a .smil or other playlist for rtsp streams?

Do you think other RTSP clients are more likely to support an RTSP url within a playlist or the RTSP redirect convention?

Just thinking that redirection would be more easily handled via HTTP…

Hi all!

Is there any useful info how to make RTSP redirects with Android devices?

I tried to use 302 RTSP code, however android player seemed to not understand it and immediately said that it cannot play video…

(I used perl-based script as redirector service)

public class RedirectorModule extends ModuleBase {
    
    public void onRTPSessionCreate(RTPSession rtpSession)
    {
        rtpSession.addActionListener(new Redirector());
    }
}
public class Redirector implements IRTSPActionNotify {
    @Override
    public void onDescribe(RTPSession rtps, RTSPRequestMessage rtsprm, RTSPResponseMessages rtsprm1) {
        RTSPResponseMessage resp = new RTSPResponseMessage();
        resp.setResponseCode(302);
        resp.setResponseMessage("REDIRECT");
        resp.setHeader("Location", "rtsp://192.168.0.194:1935/live/kakakak2_1");
        resp.setCSeq(rtsprm.getCSeq());
        rtsprm1.addMessage(resp);
    }

Works for me :slight_smile:

Does resp.setResponseMessage(“REDIRECT”); really require the current request uri like illustrated here @ 10.10 : http://www.ietf.org/rfc/rfc2326.txt ?

S->C: REDIRECT rtsp://example.com/fizzle/foo RTSP/1.0
           CSeq: 732
           Location: rtsp://bigserver.com:8001
           Range: clock=19960213T143205Z-

I have RTSP redirection working on Android, Blackberry, Quicktime, and VLC by returning the following to the DESCRIBE request:

response message: REDIRECT

response header: Location rtsp://targetdomain/app/instance/stream

response code: 302

CSeq: The CSeq of the request

I’m using a class that implements IRTSPActionNotify.

In my module, I create an instance of my class, and in the onRTPSessionCreate handler, I use RTPSession.addActionListener() to have my my IRTSPActionNotify implementing class listen for events.

Then, in my class, I use the onDescribe() handler to inspect the request URI, replace the hostname/ip with my target, create a new RTSPResponseMessage with the aforementioned propreties, and then use RTSPResponseMessages.addMessage() to send the response message to the client.

FWIW, this appears to be broken in Android 4.0 (Ice Cream Sandwich). Redirect no longer works, and the native video player just hangs.

i know that there is plenty of rtsp clients, but since redirect is in the rfc (http://tools.ietf.org/html/rfc2326#section-10.10), i hope that at least some clients handle it. And since Wowza API mention onRedirect event for RTPModel, i was hopping that a method would allow me to issue the redirect directive.

Actually, thinking of it, since Wowza API does not allow to override or control any aspect of the RTSP (only RTP underlying session), it may be not possible now. would it be possible in the future?

does anybody have any experience on rtsp/RTP load balancing?

i know that rtsp is the most difficult since many STB are implementing it their own way…

btw, is there any possibility to control RTSP session unsing API? i understand that implementing rtsp redirect directly in Wowza might not be your priority, due to the wide range of possibly different and incompatible clients, but it is going to be very important for us.

thanks for your help