--- a/configure
+++ b/configure
@@ -3353,10 +3353,8 @@ xv_outdev_deps="xlib"
 # protocols
 async_protocol_deps="threads"
 bluray_protocol_deps="libbluray"
-ffrtmpcrypt_protocol_conflict="librtmp_protocol"
 ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl mbedtls"
 ffrtmpcrypt_protocol_select="tcp_protocol"
-ffrtmphttp_protocol_conflict="librtmp_protocol"
 ffrtmphttp_protocol_select="http_protocol"
 ftp_protocol_select="tcp_protocol"
 gopher_protocol_select="network"
@@ -3369,20 +3367,18 @@ https_protocol_suggest="zlib"
 icecast_protocol_select="http_protocol"
 mmsh_protocol_select="http_protocol"
 mmst_protocol_select="network"
-rtmp_protocol_conflict="librtmp_protocol"
-rtmp_protocol_select="tcp_protocol"
-rtmp_protocol_suggest="zlib"
-rtmpe_protocol_select="ffrtmpcrypt_protocol"
-rtmpe_protocol_suggest="zlib"
-rtmps_protocol_conflict="librtmp_protocol"
-rtmps_protocol_select="tls_protocol"
-rtmps_protocol_suggest="zlib"
-rtmpt_protocol_select="ffrtmphttp_protocol"
-rtmpt_protocol_suggest="zlib"
-rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol"
-rtmpte_protocol_suggest="zlib"
-rtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
-rtmpts_protocol_suggest="zlib"
+ffrtmp_protocol_select="tcp_protocol"
+ffrtmp_protocol_suggest="zlib"
+ffrtmpe_protocol_select="ffrtmpcrypt_protocol"
+ffrtmpe_protocol_suggest="zlib"
+ffrtmps_protocol_select="tls_protocol"
+ffrtmps_protocol_suggest="zlib"
+ffrtmpt_protocol_select="ffrtmphttp_protocol"
+ffrtmpt_protocol_suggest="zlib"
+ffrtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol"
+ffrtmpte_protocol_suggest="zlib"
+ffrtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
+ffrtmpts_protocol_suggest="zlib"
 rtp_protocol_select="udp_protocol"
 schannel_conflict="openssl gnutls libtls mbedtls"
 sctp_protocol_deps="struct_sctp_event_subscribe struct_msghdr_msg_flags"
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -599,12 +599,12 @@ OBJS-$(CONFIG_MMSH_PROTOCOL)             += mmsh.o mms.o asf.o
 OBJS-$(CONFIG_MMST_PROTOCOL)             += mmst.o mms.o asf.o
 OBJS-$(CONFIG_PIPE_PROTOCOL)             += file.o
 OBJS-$(CONFIG_PROMPEG_PROTOCOL)          += prompeg.o
-OBJS-$(CONFIG_RTMP_PROTOCOL)             += rtmpproto.o rtmpdigest.o rtmppkt.o
-OBJS-$(CONFIG_RTMPE_PROTOCOL)            += rtmpproto.o rtmpdigest.o rtmppkt.o
-OBJS-$(CONFIG_RTMPS_PROTOCOL)            += rtmpproto.o rtmpdigest.o rtmppkt.o
-OBJS-$(CONFIG_RTMPT_PROTOCOL)            += rtmpproto.o rtmpdigest.o rtmppkt.o
-OBJS-$(CONFIG_RTMPTE_PROTOCOL)           += rtmpproto.o rtmpdigest.o rtmppkt.o
-OBJS-$(CONFIG_RTMPTS_PROTOCOL)           += rtmpproto.o rtmpdigest.o rtmppkt.o
+OBJS-$(CONFIG_FFRTMP_PROTOCOL)           += rtmpproto.o rtmpdigest.o rtmppkt.o
+OBJS-$(CONFIG_FFRTMPE_PROTOCOL)          += rtmpproto.o rtmpdigest.o rtmppkt.o
+OBJS-$(CONFIG_FFRTMPS_PROTOCOL)          += rtmpproto.o rtmpdigest.o rtmppkt.o
+OBJS-$(CONFIG_FFRTMPT_PROTOCOL)          += rtmpproto.o rtmpdigest.o rtmppkt.o
+OBJS-$(CONFIG_FFRTMPTE_PROTOCOL)         += rtmpproto.o rtmpdigest.o rtmppkt.o
+OBJS-$(CONFIG_FFRTMPTS_PROTOCOL)         += rtmpproto.o rtmpdigest.o rtmppkt.o
 OBJS-$(CONFIG_RTP_PROTOCOL)              += rtpproto.o ip.o
 OBJS-$(CONFIG_SCTP_PROTOCOL)             += sctp.o
 OBJS-$(CONFIG_SRTP_PROTOCOL)             += srtpproto.o srtp.o
--- a/libavformat/protocols.c
+++ b/libavformat/protocols.c
@@ -44,12 +44,12 @@ extern const URLProtocol ff_mmst_protocol;
 extern const URLProtocol ff_md5_protocol;
 extern const URLProtocol ff_pipe_protocol;
 extern const URLProtocol ff_prompeg_protocol;
-extern const URLProtocol ff_rtmp_protocol;
-extern const URLProtocol ff_rtmpe_protocol;
-extern const URLProtocol ff_rtmps_protocol;
-extern const URLProtocol ff_rtmpt_protocol;
-extern const URLProtocol ff_rtmpte_protocol;
-extern const URLProtocol ff_rtmpts_protocol;
+extern const URLProtocol ff_ffrtmp_protocol;
+extern const URLProtocol ff_ffrtmpe_protocol;
+extern const URLProtocol ff_ffrtmps_protocol;
+extern const URLProtocol ff_ffrtmpt_protocol;
+extern const URLProtocol ff_ffrtmpte_protocol;
+extern const URLProtocol ff_ffrtmpts_protocol;
 extern const URLProtocol ff_rtp_protocol;
 extern const URLProtocol ff_sctp_protocol;
 extern const URLProtocol ff_srtp_protocol;
--- a/libavformat/rtmpproto.c
+++ b/libavformat/rtmpproto.c
@@ -2592,7 +2592,7 @@ static int inject_fake_duration_metadata(RTMPContext *rt)
 static int rtmp_open(URLContext *s, const char *uri, int flags, AVDictionary **opts)
 {
     RTMPContext *rt = s->priv_data;
-    char proto[8], hostname[256], path[1024], auth[100], *fname;
+    char *proto, tmpProto[10], hostname[256], path[1024], auth[100], *fname;
     char *old_app, *qmark, *n, fname_buffer[1024];
     uint8_t buf[2048];
     int port;
@@ -2603,7 +2603,9 @@ static int rtmp_open(URLContext *s, const char *uri, int flags, AVDictionary **o
 
     rt->is_input = !(flags & AVIO_FLAG_WRITE);
 
-    av_url_split(proto, sizeof(proto), auth, sizeof(auth),
+    memset(tmpProto, 0, sizeof(tmpProto)); 
+    proto = &tmpProto[2];
+    av_url_split(tmpProto, sizeof(tmpProto), auth, sizeof(auth),
                  hostname, sizeof(hostname), &port,
                  path, sizeof(path), s->filename);
 
@@ -3137,9 +3139,9 @@ const URLProtocol ff_##flavor##_protocol = {     \
 };
 
 
-RTMP_PROTOCOL(rtmp)
-RTMP_PROTOCOL(rtmpe)
-RTMP_PROTOCOL(rtmps)
-RTMP_PROTOCOL(rtmpt)
-RTMP_PROTOCOL(rtmpte)
-RTMP_PROTOCOL(rtmpts)
+RTMP_PROTOCOL(ffrtmp)
+RTMP_PROTOCOL(ffrtmpe)
+RTMP_PROTOCOL(ffrtmps)
+RTMP_PROTOCOL(ffrtmpt)
+RTMP_PROTOCOL(ffrtmpte)
+RTMP_PROTOCOL(ffrtmpts)