diff -Naur ../mplayer.orig/cfg-common.h ./cfg-common.h --- ../mplayer.orig/cfg-common.h 2010-06-08 08:53:14.000000000 +0200 +++ ./cfg-common.h 2010-06-08 08:53:54.000000000 +0200 @@ -189,6 +189,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 -Naur ../mplayer.orig/cfg-common-opts.h ./cfg-common-opts.h --- ../mplayer.orig/cfg-common-opts.h 2010-06-08 08:53:14.000000000 +0200 +++ ./cfg-common-opts.h 2010-06-08 09:01:24.000000000 +0200 @@ -101,6 +101,9 @@ #ifdef CONFIG_LIVE555 {"sdp", "-sdp has been removed, use sdp://file instead.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"rtsp-stream-over-http", &rtsp_transport_http, CONF_TYPE_FLAG, 0, 0, 1, NULL}, +#else + {"rtsp-stream-over-http", "-rtsp-stream-over-http requires the \"LIVE555 Streaming Media\" library.\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL}, #endif /* CONFIG_LIVE555 */ #if defined(CONFIG_LIBNEMESI) || defined(CONFIG_LIVE555) // -rtsp-stream-over-tcp option, specifying TCP streaming of RTP/RTCP diff -Naur ../mplayer.orig/DOCS/man/en/mplayer.1 ./DOCS/man/en/mplayer.1 --- ../mplayer.orig/DOCS/man/en/mplayer.1 2010-06-08 08:53:08.000000000 +0200 +++ ./DOCS/man/en/mplayer.1 2010-06-08 08:53:54.000000000 +0200 @@ -1816,6 +1816,11 @@ not pass incoming UDP packets (see http://www.live555.com/\:mplayer/). . .TP +.B \-rtsp\-stream\-over\-http (LIVE555 only) +Used with 'http://' 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 -Naur ../mplayer.orig/libmpdemux/demux_rtp.cpp ./libmpdemux/demux_rtp.cpp --- ../mplayer.orig/libmpdemux/demux_rtp.cpp 2010-06-08 08:53:14.000000000 +0200 +++ ./libmpdemux/demux_rtp.cpp 2010-06-08 08:53:54.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());