This article covers the technical details of contributing a live feed into the Kaltura Live platform.
The article is divided into two parts:
- Encoder Set-Up
- Outputting to a Kaltura End Point
On-Set (or Near-Set) Encoder Environment
Executing a successful live production requires focus and resources in several areas. The following is a basic checklist for you to get started.
Standardized Content Ingestion from Production
It is imperative to stick to common, modern video standards like 1080p@30, 720p@25, etc.
Make sure the feed coming from production into the encoder includes video and audio in the correct temporal resolution (frame rate, scan type), spatial resolution (pixel dimensions, aspect ratio, pixel aspect ratio), and audio resolution (sample rate, channel layout, perceived volume).
Network Environment
Verify the encoder has sufficient upstream bandwidth to stream the content going out to Kaltura.
As a rule of thumb, your uplink bandwidth should be double the stream data-rate. For 5mbps stream, there should be at least 10mbps uplink bandwidth.
For high profile events, it is recommended to use redundant network infrastructure such as multiple ISPs, redundant network equipment, and multiple cloud regions (if applicable).
If you need to broadcast over a cellular connection, it is recommended that you use a bonded solution that combines cellular connections from multiple carriers into a single high-speed output.
Resiliency
It is important that the encoder can publish multiple outputs for stream redundancy and stability.
If possible, have a backup encoder standing by for unexpected failures.
Compliance and Live Captions
Content localization is encouraged for viewers that require viewing aids or would like to view content in a different language. Ensure your encoder supports closed captions and/or multiple audio track output (languages) in case it is needed.
If you need to integrate with an external captioning service, make sure to do this well ahead of time.
The following is a list of encoding solutions recommended for use with Kaltura.
Enterprise Grade | Prosumer Grade |
For additional information about the supported encoders for Kaltura Live Streaming, see What encoders can I use with the Kaltura Live streaming?
Publish Your Stream to Kaltura
When creating a new live stream with Kaltura using KMC, API, or any other integration, you receive two RTMP endpoints and a stream name, such as the following:
The RTMP URLs, one for primary and one for backup, are used by the encoder publishing the stream to Kaltura. You must copy these details and paste them into the relevant fields in your encoder.
Passthrough
Passthrough means Kaltura will package the stream (from RTMP) but will not transcode the stream and will deliver the same flavors the original encoder is delivering.
For multi-bitrate output, the ‘Stream name’ will have sequential number appended for each stream at the end. For example, stream 1 (first bitrate/rendition/variant) would have the stream name 'abcdABCD_1' and stream 2 would have the stream name 'abcdABCD_2'.
Manual Live
This is a passthrough session where Kaltura will not package the stream or transcode it; the encoder will deliver HLS stream with all flavors.
Cloud Transcode
This is the most common option. Encoders will deliver Primary and Backup RTMP streams. Kaltura will package and transcode the streams and deliver all flavors.
Stream Localization
The Kaltura video player supports both language audio menu selection and a caption menu selection. In order to use these features, several conditions must be met.
For Audio Language Tracks
For example, if you want to add a French audio-only channel in addition to your base video stream, you will need to configure your encoder to publish to:
Video (+English audio) | rtmp://1_abcdABCD.p.kpublish.kaltura.com:1935/kLive?t=1234567/1_abcdABCD_1 |
French audio | rtmp://1_abcdABCD.p.kpublish.kaltura.com:1935/kLive?t=1234567/1_abcdABCD_1002 |
The full list of language audio codes will be supplied by Kaltura.
For Closed Caption Tracks
Kaltura supports live captions, carried over RTMP, in the CEA/EIA-608, CEA/EIA-708 (aka embedded) standard.
When setting up your encoder, make sure to annotate the caption track's language so it will be represented correctly in the Captions Selector menu in the player.
Note: Use Kaltura's API to add “createvodcaption” in the “adminTags” property of your liveEntry to enable carry over of ingested 608/708 captions to your live broadcast recording. See Kaltura VPaaS API Documentation for further details about Kaltura's API.
Pre-Roll / Post-Roll
All live streams published to Kaltura during the event must start with a pre-roll and end with a post-roll.
Pre-roll is 30 minutes of live feed preceding the scheduled time of the live session. The existence of pre-roll gives Kaltura and the production a chance to spot last minute errors and validate the stream.
It recommended to have a post-roll of 10-30 minutes live feed trailing the live session. Post-roll gives users the chance to stay on the live session page for chatting with the host and have a Q&A session (if applicable).
Live Stream Readiness
A few weeks prior to the event, Kaltura will contact the production and schedule several live stream tests to verify that everything is working as planned.
Kaltura will request to test the following scenarios:
Audio / Video compliance – Ensure video is ingested correctly into the system, transcoded, packaged, and delivered to the player.
Stream Failover - Take down the primary/backup stream and watch failover behavior.
Captions - Ensure caption position, size, timing, accuracy, and compliance.
Multiple Audio Channels - Ensure switching between audio channels in the player.
Audio / Video quality - Overview general audio and video quality.
Simulive Sessions
What is a Simulive session?
In Kaltura’s Virtual Events platform, a Simulive session means scheduling the playback of a VOD file as a live broadcast.
A Simulive session consists of a VOD file as source, a pre-roll file, a post-roll file, and a scheduled broadcast time and duration.
Simulive sessions are the most recommended live experience. You can edit the content, watch it, and approve it before anyone else. It’s like having a live session without the risks of having a live session.
Kaltura Content Ingestion
While Kaltura supports a wide range of video formats and codecs, there are some recommended specifications for creating source files. These will ensure that your source files are quickly and safely transcoded to multiple flavors (renditions), while offering optimal video and audio quality.
Container / Format: MP4, MOV and most other common video file formats.
Video codec: AVC/H264, Apple ProRes and most other common video codecs.
Audio codec: AAC, MP3, Most PCM types and other common audio codecs.
For video content, it's recommended to use a video bitrate equal to or higher than 10Mb/s (Megabits per second) and audio bitrate equal to or higher than 96kb/s (kilobits per second).
Recommended spatial resolution: >15Mb/s, 1920x1080, 16:9 aspect ratio, square pixels. 8 bit picture, 4:2:2/4:2:0 subsampling.
Recommended temporal resolution: Constant frame rate of 25, 30 fps, progressive scan
Recommended audio resolution: >96kb/s, 1 stereo track, 48 kHz sample rate
If editing is done using Adobe Premiere Pro, please choose the following export preset (also attached here as .epr file):
Please base your Premiere export on this preset
Tips and Best Practices
When preparing your content, please respect the Action and Title safety grids
Please remove any letterbox and/or pillarbox from the content.
Pre-Roll / Post-Roll
All Simulive content (presentations, lectures, etc.) must have a leader (pre-roll) and a trailer (post-roll).
Pre-roll and Post-roll are to be supplied as standalone files, which will later be “stitched” to the content for Simulive playback.
It’s advised for Pre-roll and Post-roll videos to show a counter, leading to the beginning/ending of the content.
Pre-roll file duration can be 5 to 10 minutes long, or anywhere in between
Post-roll file duration can be 15 to 20 minutes long, or anywhere in between
Content can be of any duration.
Limitations
Pre-roll and Post-roll files must match the content in video parameters, in the following aspects:
Frame rate (fps)
Pixel dimensions (resolution)
Aspect ratio
Audio channel layout
It’s recommended to “normalize” audio levels so that all segments (pre-roll | content | post-roll) have the same 'perceived' loudness or volume.
Files supplied with varying video parameters may not stitch correctly, leading to a suboptimal Simulive experience.
Scheduling the Simulive Session
Before uploading your Simulive content, you would normally provide Kaltura with the Simulive playback schedule. The schedule indicates the broadcast time and duration (broadcast window).
When preparing your Simulive content, you must make sure to match the scheduled session’s indicated duration. The scheduled time should match the content duration, without the pre-roll and post-roll.
If the Simulive session exceeds the Simulive scheduled duration, the content will playback correctly, but viewers will not be able to join the session outside of the scheduled window. This also applies for page refresh.
If the Simulive session subceeds the Simulive scheduled duration, the content will playback correctly but for viewers joining after the scheduled window, or those who refresh the page, content will playback from the beginning.