diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 35c965c0a1a5eed98063622db68d9407f67eecbc..d16a9bddb9c703d3413f38bfc692e38ad78af11a 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1109,7 +1109,9 @@ static int make_setup_request(AVFormatContext *s, const char *host, int port, snprintf(transport, sizeof(transport) - 1, "%s/UDP;multicast", trans_pref); } - if (rt->server_type == RTSP_SERVER_REAL || + if (s->oformat) { + av_strlcat(transport, ";mode=receive", sizeof(transport)); + } else if (rt->server_type == RTSP_SERVER_REAL || rt->server_type == RTSP_SERVER_WMS) av_strlcat(transport, ";mode=play", sizeof(transport)); snprintf(cmd, sizeof(cmd),