Live Streaming

To access these features, Upgrade Now

Within the ecosystem of JW Player products, you have many ways available to you to utilize live streaming. Three of the main use cases for live streaming with JW Platform and JW Player are:

  1. Using JW Live as your live streaming provider (end-to-end solution, part of JW Platform)

  2. Using JW Platform to manage an external live stream (via external URL import)

  3. Using JW Player only (with an external live streaming provider)

Getting Started with JW Live

JW Live enables you to easily broadcast and manage your event live to your audience around the world. Best of all, it's natively integrated into JW Platform and JW Player for desktop, mobile, and OTT.

All you need to get started is a video source (typically a camera or video switcher) and an RTMP encoder. The camera captures the video source of your event and the RTMP encoder encapsulates and transmits (via your internet connection uplink) the video via RTMP to JW Live.

NOTE: JW Live is designed for one-off and recurring event-based live streaming and has a maximum of 6 hours per broadcast.

Step 1: Preparing Your Source Stream

To get started with JW Live, you should first make sure you have a source stream (camera, screen capture, etc.) and encoder that is able to output RTMP with H.264 video. Also make sure you have a stable internet uplink with at least 3-4 times your RTMP video bitrate total as sustained upload throughput. A few supported encoder options include:

  1. Mobile: Broadcast Me app for iOS and Android
  2. Software: Telestream Wirecast
  3. Hardware: Teradek Vidiu and NewTek TriCaster products

Step 2: Setting Up Your Live Event

To setup your live event in JW Live, log in to your JW Platform account and click on the “Live” option in the left navigation under the “Content” section.

Click the “Create Live Stream” button which will launch the live stream setup screen.

On the first screen, you can enter your event metadata (title, description, and poster image) as well as your Simulcast end points (optional). All metadata is optional.

For simulcasting, JW Live supports Facebook Live, YouTube Live, Twitch, Periscope/Twitter or any other RTMP end point that uses a stream URL and stream name structure. Please click the links above for instructions on connecting each Simulcast end point. NOTE: If you simulcast you will need to "go live" on JW Live before your simulcast stream starts. At which point you may also need to start or "go live" on the simulcast end point (for example, clicking "Go Live" on Facebook Live).

To enable simulcasting, toggle the "Simulcast" button to the "on" position and copy and paste the Server URL and Stream Key (name) from Facebook, YouTube, Twitch etc. into these fields. You can have up to 5 simulcast endpoints enabled per live broadcast. NOTE: These values cannot be changed after your event begins.

Once you’re on the Connect screen, you will first have to select your geographical location for your broadcast origin. It is best to select an origin location that is closest geographically to your live stream. This will reduce overall latency.

NOTE: Typical latency is between 15-30 seconds from source to end viewer, depending on the location of your source, the location of the data center (which is what you select in this step), and the location of the viewer.

Once you’ve selected your location, we will automatically allocate and prepare server resources to broadcast your live stream at the data center location you chose. Please allow up to a few minutes for the server resources to allocate once you’ve selected your location.

NOTE: The location setting cannot be changed after it is set.

 

Once server resources are allocated you will see an RTMP Entry Point URL and Stream Name that you can use to connect your source stream to JW Live. Some encoders support separate URL and Stream Names and others only take a single URL containing both values. In the latter case, you can concatenate the RTMP Entry Point URL and Stream Name like so:

http://001.livestream.jwplatform.com/app-0001/fw48fhs

NOTE: You must enter a trailing slash (“/”) after the Entry Point URL and before the Stream Name

 

Enter these values into your encoder and then start broadcasting from your encoder.

Figure A. An example using Telestream Wirecast by entering the Entry Point URL in the “Address” field and the Stream Name in the “Stream” field.

Figure B. An example of recommended settings for a 720p source stream. Please note that the key frame interval should be 2x the frame rate always.

Please allow 15-30 seconds after you begin broadcasting for servers to detect your RTMP source stream. Once we detect your source stream, you will see a preview of the stream in the player window with the “preview” indicator illuminated in the player.

Figure C. Example of player with connected source stream via RTMP and preview player.

Once the stream is detected, the “Go Live” button will become available. When you are ready to begin broadcasting, click the “Go Live” button. This will activate all of your player embeds as well as simulcast broadcasts (such as Facebook Live) at the same time.

Once you are live, you will see your video in a player with the “live” label on it. You will also see a Facebook Live icon if you’re connected to this simulcast end point. On the right you will see your analytics for the event, which will update every few minutes (you may need to refresh the page to see updates).

Click on any of the analytics items to see a detailed view of each item.

 

NOTE: You can also see your RTMP Entry Point info again by clicking the “info” icon in the player.

Once your stream is ready to end, click the “End Stream” button. You will be prompted to confirm the end of your broadcast. Your stream will automatically be archived. Once your live stream is archived, you can can trim it using in the videos section. (In the trimming step, drag the in-point and out-point to the start and end of the window you wish to trim. You can only trim once. Confirm by clicking “Trim and Save” to continue.)

Once your stream has ended, you can restart it. This allows you to use the same RTMP entry point information, metadata, and player embed code for a subsequent broadcast.

If you have any questions please don’t hesitate to check out our support site or ask your account manager.

 

JW Platform: Managing an External Live Stream

Managing your live stream via an external provider in JW Platform allows you to utilize your existing live streaming workflow while taking advantage of the premium features of JW Platform and JW Player such as custom metadata, automatically curated recommendations, real-time analytics and more.

To manage a live stream in JW Platform, simple click the “Import Video URL” button in the JW Dashboard “Videos” section and paste the URL to the M3U8 document (HLS manifest file). See your live streaming providers support documentation for instructions on how to get the output M3U8 manifest URL.

Figure A. Paste your URL into the text field in this popup after clicking “Add Video URL” and then click “Add” to finish importing.

 

JW Player: Playing a Live Stream

JW Player natively supports live streaming via HTTP Adaptive Streaming technologies such as HLS and MPEG-DASH as well as RTMP live streams.

HLS & MPEG-DASH

Using a live stream with JW Player is very similar to working with static VoD content. You simply load the URL to the live stream into JW Player and the player will automatically show a “live” indicator and show the appropriate control bar for live (including DVR controls if DVR is enabled with your provider).

See our developer documentation for additional information on how to use a live stream in JW Player.

RTMP

RTMP (Real Time Messaging Protocol) is a system for delivering on-demand and live media to Adobe Flash applications (like the JW Player). However, RTMP only works in Flash and not in HTML5. Newer HTTP streaming protocols, like Apple's HTTP Live Streaming (HLS), have wider device support (e.g. iOS) and are the recommended way to do live streaming.

Also note that JW Platform and JW Live do not offer RTMP delivery of live streams directly. You will need to have your own provider to deliver the RTMP stream to your JW Player.

Setup

An RTMP live stream is embedded in JW Player in exactly the same way as an on-demand stream. However, the Akamai, Edgecast and Limelight CDNs require a player to subscribe to a live stream. JW Player supports this mechanism.

JW Player will embed and play a live stream like an on-demand file, with one exception: instead of displaying a slider to scrub through the timeline, the player will display the title of the event in the controlbar.

Serving RTMP

In order to use RTMP, your host or CDN needs to have a dedicated RTMP server installed.

There are two major offerings, both supported by JW Player:

  • Wowza Media Server is today's most widely used solution. It includes support for almost any streaming protocol, including RTMP. Wowza 3 introduced dedicated support for SMIL manifests (see below)

  • Adobe Media Server is another great option. Since Flash is developed by Adobe, new RTMP functionalities find their way in FMS first.

Load Balancing

For large-scale RTMP deployments, JW Player supports three mechanism for server load balancing:

  • DNS load balancing, working independent of JW Player.

  • RTMP 302 redirects, as used by Wowza for load balancing. See their user guide for more info.
  • SMIL load balancing, where an initial SMIL file contains the RTMP links to edge nodes. See the section on dynamic streaming below for an example SMIL file.

See the developer documentation for code samples on how to configure the player to play RTMP streams.

Did you find this article helpful?

Please log in to rate this article.