The JW Player 5.3+ supports RTMP DVR streaming, a feature introduced by Adobe's Flash Media Interactive Server 3.5. DVR streaming allows users to pause/resume a live stream or seek back for a replay. In short, DVR allows a live stream to behave exactly like an on-demand stream; the only difference being that the duration might increase.
Note: JW Player versions 5.1 and 5.2 use a no longer supported mechanism for DVR streaming.
To enable DVR streaming on Flash Media Server, you will have to install and enable the DVRCast application on your server(s). It is freely available at Adobe's FMS tools overview page. The application only works with the Flash Media Interactive server, not with the Flash Media Streaming Server.
If you do not have administrative control over your FMS servers, please contact your hosting provider or CDN. Note that certain CDN's (like Edgecast) have DVRCast already up and running. Unfortunately, Amazon Cloudfront does not support live (DVR) streaming yet.
Currently, the only software available off the shelf that allows for DVR-enabled live streaming is Adobe's free Flash Media Live Encoder. Until other tools (like Quicktime Broadcaster or Telestream Wirecast) support the RTMP server calls for starting and stopping DVR recordings, FMLE is the way to go.
Make sure the Stream to Flash Media Server option is checked, and point the FMS URL to your DVRCast application:

Next, make sure the DVR Auto Record option is checked. This ensures the stream is automatically recorded serverside:

Finally, click the Start button to begin streaming:

Once your DVR-enabled live stream is running, configure your JW Player to connect to it using the rtmp provider. You also need to set the rtmp.dvr flashvar to true. The following example uses the SWFObject 2.0 embed method:
<div id='container'>The player will be placed here</div>
<script type="text/javascript">
var flashvars = {
file:'dvrstream',
streamer:'rtmp://www.myserver.com/dvrplay',
'rtmp.dvr':'true',
};
swfobject.embedSWF('player.swf','container','480','270','9.0.115','false', flashvars,
{allowfullscreen:'true',allowscriptaccess:'always'},
{id:'jwplayer',name:'jwplayer'}
);
</script>
That's it. With the rtmp.dvr value set to true, the JW Player knows it will be dealing with a DVRCast stream. The player will do the necessary subscription and info polling calls, and it will grow the value of the duration over time.
By default, when using a DVR-enabled live stream, the duration will grow as the stream records more time-shifted content, and the user can seek to the live portion of the stream by scrubbing to the end of it. The controlbar in this instance looks like it's playing a normal RTMP stream, although the duration constantly updates:

When no duration is set however, the position of the time slider's thumb will jump around slightly, since the duration is updating simultaneously to the position. To create a slightly smoother user experience, you can set the duration flashvar (in seconds), if you know for how long a DVR stream will be active. When duration is set, the player's timeline will display the seekable area of the stream as a percentage of the total time, with the recorded section displayed in a different color:
