This article outlines how to enable in-player captions for your Facebook Live events (encoded into your video stream via 608 caption encoding). 3Play supports the RTMP streaming protocol, however, Facebook has recently limited its support to only the RTMPS protocol. In order to convert the stream from RTMP to RTMPS, this workflow will require the use of a 3rd party service, the steps outlined here utilize Restream.io.
In this workflow, you will stream from your video source (encoder) to 3Play. 3Play will encode captions into your video stream, and then send that video stream with captions to the specified Restream URL, which in this scenario is Restream.io. The stream will be converted from RTMP to RTMPS by Restream.io, and from there you will configure Restream.io to stream to your Facebook Live event. In summary:
Encoder --> 3Play --> Restream.io --> Facebook Live
Note that events default to US-Eastern time unless a new timezone has been configured at the user level and configured for users outside of the US-Eastern time zone.
Before Getting Started.....
- Enable Live Captions within the Facebook Integration's Settings page
- Contact 3Play Media Account Manager to enable the Live Captioning permissions
Step 1 - Log in to Facebook and Schedule a Facebook Live event
From the Facebook page...
- Navigate to Create > Live from within the Facebook page
- On the left-hand side of the screen, click Schedule a Live Video and enter a date and time for the upcoming event.
- Enter an event title and description.
- Under Settings > Stream ensure that the option Embed live video is selected.
Once these steps are completed please click Schedule Live Video.
Step 2 - Log in to Restream.io
Once the event has been scheduled within Facebook, log in to Restream.io and follow the directions within Restream.io for manually connecting to a Facebook stream.
Step 3 - Log in to 3Play Media
Once the event has been configured in Restream.io, Sign in to 3Play Media and click Live Captioning in the top navigation bar. Next, select “I want to caption another RTMP stream."
Step 4 - Select Event Start Time
Click the calendar icon to choose the MM/DD/YYYY and HH:MM:SS of the event. The time will automatically be set to the current time but can be manually edited within the field.
- Live caption events must be scheduled at least 5 minutes in the future and it is editable up until 5 minutes prior to the scheduled start time.
- If you need to edit your event within 5 minutes of the event start, please cancel or end the original order and create a new event.
- Do not attempt to stream to 3Play before the event start time, as the stream connection will fail to connect from your encoder to 3Play and your encoder will display an error message.
Step 5 - Add Event Name (optional)
Edit the event name if desired. If not edited, the default event name will be "Live Stream at [today’s date].”
Step 6 - Streaming to 3Play from your encoder
To allow 3Play to receive your stream and create captions, you will stream to 3Play's caption service from your encoder. As a default, 3Play will provide you with a stream target (transcoder). The RTMP URL address and Key to the stream target are provided on the confirmation page of this workflow; you'll enter this information into your encoder stream settings in preparation for the event.
If you prefer to use your own transcoder, please check the box “Override 3Pay-provided RTMP URL and key” and enter your own RTMP URL and key information in the fields provided.
Step 7 - Configure Live Captions
Once the event details are populated note that Start Captions defaults to 15 Minutes Before. This is 3Play Media's suggested setting as it should allow enough time to ensure the captions will display during the Live event however it can be adjusted to At Event Start Time, 5 Minutes Before, 10 Minutes Before, 20 Minutes Before, or 30 Minutes Before.
IMPORTANT: Events are scheduled using Eastern Time unless a new timezone has been configured at the user level and configured for users outside of the US-Eastern time zone.
Click + Add Wordlist to provide any words the inform the automatic speech recognition process.
- Do not add words with 3 or fewer letters - they will be removed from the list
- Do not add words with special characters, except for apostrophes and periods
- When adding a name or short phrase, keep all words together on a single line
- Wordlists should be under 75 items in length
Once words have been added, click Add Wordlist
Click Edit Advanced Settings to adjust the settings below for the Live Captioning event.
If any Advanced Settings are changed from their default values, click Save Changes.
Maximum Captioning Delay
This will set a delay between the stream we receive and the captions we output. Longer latency will result in a more accurate output.
Defaults to 5000ms (5 second delay) however this can be toggled between a 2-15 second delay
Stream Wait Time
Set an amount of time for our system to wait for the event to begin. Once the determined wait time is reached for the scheduled event and the event has not started, the scheduled captions will no longer be available.
Defaults to 30 minutes
Max Stream Time
Set a maximum time for your live captioning event. This feature can be used as a safety net should a live event not be manually stopped. The Max Stream Time will determine a hard stop for the event as well.
If it is anticipated that a live event may run longer than scheduled, factor this when determining the Max Stream Time. Events in your project can be no longer than the Event Max Time setting.
Defaults to 240 minutes
Note that when a live event stream is manually stopped this will also override the set Max Stream Time and conclude the live captions for the event as well.
Save Event Stream
If enabled, the live stream will be saved as the source for the file after the event. This is useful if service upgrades are anticipated. Leave this off otherwise as it incurs extra processing both during and after the event and costs an additional $0.10/min.
See more information regarding upgrading Live Captioning files
Set a sensitivity level for filtering out offensive words.
Defaults to Normal however it can be changed to None or Strict.
IMPORTANT: Advanced Settings can be edited up to 5 minutes prior to the scheduled start of the Live Captions!
Step 8 - Add Restream URL from Restream.io
Select the checkbox “Add Restream URL” in 3Play. Next, navigate to Restream.io and select RTMP Settings. From there, you will see an RTMP URL and Stream key, copy the RTMP URL and Stream Key from Restream.io and paste it into the 3Play Restream URL field. The Restream URL should concatenate the stream URL & Key, separated by a forward slash.
For example, let’s say your stream URL is: rtmp://xyz123.entrypoint.com/app-345QRS, and your stream key is: 12345. Your restream URL will be: rtmp://xyz123.entrypoint.com/app-345QRS/12345
This URL represents the destination to which 3Play will send video with captions encoded via 608 standards, and must be in RTMP format (additional formats, such as HLS or RTMPS are not supported in this workflow). 3Play will send video with captions encoded via a 608 standard to this destination.
Step 9 - Click Schedule Event and Paste the Input RTMP URL and Input Stream Key from 3Play into Broadcast Program (encoder).
3Play will provide you with an Input RTMP URL and Input Stream Key on the confirmation page. Enter this information into your encoder.
Step 10 - Start Streaming
The specified start time in 3Play represents the time at which 3Play will initiate a service to listen for your stream at this time. Do not attempt to stream to 3Play before the event start time, as the stream connection will fail to connect from your encoder to 3Play and your encoder will display an error message.
Streaming recommendations: we currently have limitations on event length, related to streams with higher bitrates. Please see the below chart of event length maximum recommendations at different bitrate ranges:
<1mbps - 600+ minutes
1-2mbps - 330 minutes
2-3mbps - 220 minutes
3-4mbps - 160 minutes
4-5mbps - 135 minutes
5-6mbps - 110 minutes
Facebook accepts video in maximum 720p (1280 x 720) resolution,
30 frames per second,
Key frame interval 2 seconds,
Maximum bitrate 4000 Kbps.
Titles must be less than 255 characters otherwise the stream will fail.
H264 encoded video and AAC encoded audio only.
In this workflow, 3Play is streaming both video and captions to the end video player - if you choose to end the event through the 3Play interface, this will also end the video stream. Do not select this unless you want to stop streaming your video.
Additionally, if your stream to 3Play, or the 3Play stream to your specified restream URL is compromised, both captions and video will be impacted. As such we recommend that customers using this workflow have a secondary stream directly between their encoder and the end video player as a fallback.