Ticket #951 (closed feature: fixed)

Opened 3 years ago

Last modified 3 years ago

RTMPT fallback

Reported by: pablo Owned by: jeroen
Priority: Milestone: Player 5.4
Component: embedding Keywords:
Cc: pablo Forum thread:

Description

From Martin:

It seems to take JWPlayer to take over minute to recognize that RTMP doesn't work 
and to then try RTMPT. My workaround is to specify RTMPT in the playlist, but now
bitrate switching stutters.

I think that the reason for this is that JWPlayer is implementing Adobe's old standard 
procedure of sequentially trying out RTMP over various ports before trying RTMPT (as 
described in http://kb2.adobe.com/cps/166/tn_16631.html ).

Other players implement a parallel approach, wherein an RTMP and an RTMPT 
connections are opened at the same time and whichever connects first is used (as 
described at the bottom of http://kb2.adobe.com/cps/185/tn_18537.html : "To 
alleviate this delay, the SimpleConnect component has been improved to make two 
connection attempts, 250 milliseconds apart: the first uses RTMP and the second uses 
RTMPT. When one connection succeeds, the other is discarded. This dramatically 
decreases the time it takes for a connection to be established.")

We should implement the simultaneous connection approach, and use whichever connection returns first.

Streamer Behavior
rtmp:// Connect to both RTMP and RTMPT, use whichever responds first
rtmpt:// Only connect to RTMPT
rtmpe:// Connect to both RTMPE and RTMPTE, use whichever responds first
rtmpte:// Only connect to RTMPTE

Change History

comment:1 Changed 3 years ago by jeroen

Make sure to not try encrypted if it's not used in the streamer and vice versa. A user makes a conscious decision on whether to use encryption or not ( I hope ;). The player should then try the following connections:

  • rtmp:// and rtmpt:// when the streamer is RTMP
  • rtmpe:// and rtmpte:// when the streamer is RTMPE

Also note that, for SMIL-based redirections, it might not be possible to connect to RTMPT. We might have to do another XML request first. I can do a quick check on that, using Highwinds.

comment:2 Changed 3 years ago by jeroen

  • Owner changed from pablo to jeroen

comment:3 Changed 3 years ago by jeroen

  • Cc pablo added; jeroen removed
  • Status changed from new to closed
  • Resolution set to fixed

Implemented and documented in [1209].

comment:4 Changed 3 years ago by pablo

  • Status changed from closed to reopened
  • Resolution fixed deleted

There seems to be an issue when the RTMP host is not available at all. Steps to reproduce:

  1. Start an Wowza server running only on port 80 (or block port 1935 via firewall settings)
  2. Connect to the stream. The RTMPT connection will be made successfully, but the error in connecting to RTMP will cause the player to go into an error state before the RTMPT connection can succeed.

comment:5 Changed 3 years ago by pablo

See this forum thread for another description of the issue.

comment:6 Changed 3 years ago by jeroen

  • Status changed from reopened to closed
  • Resolution set to fixed

Fixed by moving the NetStatus listener also behind the RTMP/RTMPT switch.

comment:7 Changed 3 years ago by pablo

  • Status changed from closed to reopened
  • Resolution fixed deleted
  • Component set to embedder
  • Milestone changed from Flash 5.3 to Player 5.4

This appears to still be broken. If the RTMPT (port 800 connection is rejected, the stream will stop.

http://www.longtailvideo.com/support/forums/jw-player/bug-reports/14858/redirect-load-balancing-with-jw-player-53

comment:8 Changed 3 years ago by jeroen

  • Status changed from reopened to closed
  • Resolution set to fixed

Fixed in [1396]

Note: See TracTickets for help on using tickets.