--- a/configure 2018-08-17 11:51:31.066805453 +0200 +++ b/configure 2018-08-17 12:03:19.617555506 +0200 @@ -3290,10 +3290,8 @@ # 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" @@ -3306,20 +3304,18 @@ 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 2018-07-18 15:52:01.000000000 +0200 +++ b/libavformat/Makefile 2018-08-17 12:06:16.348291303 +0200 @@ -593,12 +593,12 @@ 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 2018-08-17 12:07:59.489872867 +0200 +++ b/libavformat/protocols.c 2018-08-17 12:08:24.450255607 +0200 @@ -44,12 +44,12 @@ 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 2018-07-18 15:52:02.000000000 +0200 +++ b/libavformat/rtmpproto.c 2018-08-17 12:11:43.844590847 +0200 @@ -2592,7 +2592,7 @@ 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 @@ 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 @@ }; -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)