diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 21a5fda8ac..842503b620 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -604,12 +604,17 @@ static void rtsp_parse_transport(RTSPHeader *reply, const char *p)
                      "/", &p);
         if (*p == '/')
             p++;
+        if (!strcasecmp (transport_protocol, "rtp")) {
         get_word_sep(profile, sizeof(profile), "/;,", &p);
         lower_transport[0] = '\0';
         if (*p == '/') { /* rtp/avp/<protocol> */
             p++;
             get_word_sep(lower_transport, sizeof(lower_transport),
                          ";,", &p);
+            }
+        } else if (!strcasecmp (transport_protocol, "x-pn-tng")) { /* x-pn-tng/<protocol> */
+            get_word_sep(lower_transport, sizeof(lower_transport), "/;,", &p);
+            profile[0] = '\0';
         }
         if (!strcasecmp(lower_transport, "TCP"))
             th->protocol = RTSP_PROTOCOL_RTP_TCP;