diff -uN -r mplayer.orig/cfg-common.h mplayer/cfg-common.h --- mplayer.orig/cfg-common.h 2010-05-28 11:21:47.000000000 +0200 +++ mplayer/cfg-common.h 2010-05-28 13:40:15.000000000 +0200 @@ -186,6 +186,7 @@ extern int rtspStreamOverTCP; extern int rtsp_transport_tcp; +extern int rtsp_transport_http; extern int rtsp_transport_sctp; extern int rtsp_port; extern char *rtsp_destination; diff -uN -r mplayer.orig/cfg-common-opts.h mplayer/cfg-common-opts.h --- mplayer.orig/cfg-common-opts.h 2010-05-28 11:21:47.000000000 +0200 +++ mplayer/cfg-common-opts.h 2010-05-28 13:40:15.000000000 +0200 @@ -105,6 +105,7 @@ #if defined(CONFIG_LIBNEMESI) || defined(CONFIG_LIVE555) // -rtsp-stream-over-tcp option, specifying TCP streaming of RTP/RTCP {"rtsp-stream-over-tcp", &rtsp_transport_tcp, CONF_TYPE_FLAG, 0, 0, 1, NULL}, + {"rtsp-stream-over-http", &rtsp_transport_http, CONF_TYPE_FLAG, 0, 0, 1, NULL}, #else {"rtsp-stream-over-tcp", "-rtsp-stream-over-tcp requires the \"LIVE555 Streaming Media\" or \"libnemesi\" libraries.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL}, #endif /* defined(CONFIG_LIBNEMESI) || defined(CONFIG_LIVE555) */ diff -uN -r mplayer.orig/DOCS/man/en/mplayer.1 mplayer/DOCS/man/en/mplayer.1 --- mplayer.orig/DOCS/man/en/mplayer.1 2010-05-25 11:02:23.000000000 +0200 +++ mplayer/DOCS/man/en/mplayer.1 2010-05-28 13:40:15.000000000 +0200 @@ -1811,6 +1811,11 @@ not pass incoming UDP packets (see http://www.live555.com/\:mplayer/). . .TP +.B \-rtsp\-stream\-over\-http (LIVE555 only) +Used with 'rtsp://' URLs to specify that the resulting incoming RTP and RTCP +packets be streamed over HTTP. +. +.TP .B \-saveidx Force index rebuilding and dump the index to . Currently this only works with AVI files. diff -uN -r mplayer.orig/libmpdemux/demux_rtp.cpp mplayer/libmpdemux/demux_rtp.cpp --- mplayer.orig/libmpdemux/demux_rtp.cpp 2010-02-23 15:31:16.000000000 +0100 +++ mplayer/libmpdemux/demux_rtp.cpp 2010-05-28 13:40:15.000000000 +0200 @@ -112,8 +112,10 @@ #ifdef CONFIG_LIBNEMESI extern int rtsp_transport_tcp; +extern int rtsp_transport_http; #else int rtsp_transport_tcp = 0; +int rtsp_transport_http = 0; #endif extern int rtsp_port; @@ -146,7 +148,11 @@ char const* url = demuxer->stream->streaming_ctrl->url->url; extern int verbose; if (strcmp(protocol, "rtsp") == 0) { - rtspClient = RTSPClient::createNew(*env, verbose, "MPlayer"); + if (rtsp_transport_http == 1) { + rtsp_transport_http = demuxer->stream->streaming_ctrl->url->port; + rtsp_transport_tcp = 1; + } + rtspClient = RTSPClient::createNew(*env, verbose, "MPlayer", rtsp_transport_http); if (rtspClient == NULL) { fprintf(stderr, "Failed to create RTSP client: %s\n", env->getResultMsg());