Block Types - Video
Broadcast Block
A Broadcast Block is a versatile Block that allows speakers to present their content to an audience within Jomablue Community while facilitating audience participation.
The Broadcast Block enables one or more hosts to participate in a video meeting within Community and then broadcast that meeting to a Block where attendees can view the stream without needing to download any software. Any device with a working internet connection, camera, and microphone can be used to present live content and engage with the audience.
The Block supports a ‘waiting room’ feature where audience members can request to join the meeting. Once they join the meeting, they can speak directly to the host.
The architecture of a Broadcast Block
The architecture of a Broadcast Block consists of the following components:
- Host: Up to 15 hosts can participate simultaneously in one Broadcast Block. At least one host is required to operate the Block
- AWS Chime Meeting: The video meeting that each host joins
- Broadcast Container: The server responsible for controlling the Broadcast and outputting the video stream
- Streaming Service: The service that takes the stream from the Broadcast Container and makes it consumable as a video stream
- Broadcast Block: The actual Block within the Community. It contains a player for the video stream and an interface for attendees to request entry into the Chime meeting and the Broadcast itself.
All these components work together to make the Broadcast functional, as shown below in the architectural diagram. Except for the streaming service, all elements are hosted and managed by Jomablue.
Timings for each state of the Broadcast Block
To enable a smooth experience for the audience, it’s important to consider the timings for each state of the Broadcast Block. Key timings are:
- Broadcaster Start Streaming: The moment the Broadcast container begins streaming to the designated RTMP endpoint
- Session Start: The scheduled time for the session content to begin or when hosts are expected to start presenting
- Session End: The scheduled time for the session content to conclude
- Broadcaster End Streaming: When the Broadcast container stops streaming and subsequently powers down
Broadcast Block session duration
The Broadcast Block streaming duration is limited to 10 hours. This restriction is in place to prevent lengthy broadcasts from being run accidentally and consuming excessive resources. This duration limit will be indicated when setting up the Broadcast Block.
For more information, please check out the Set up a Broadcast Block section.
Available interactions for this block
The following interactions are available within the Broadcast Block:
- Host Entered (host_entered): Indicated that a host has entered the Broadcast Block; this interaction is for record purposes only
- Guest Entered (enter_question_waiting_room): Shows that a guest (non-host Community user) has entered the waiting room
- Playback Started (playback_started): Triggered when an attendee starts playback of the Live Stream in the Broadcast Block
- Chunk Played (chunk_played): Triggered when a chunk (1 minute) of the live stream is played
- Time Watched (time_watched): The total amount of time an individual has spent watching the stream (the sum of all obtained chunks for that person). If a person watches concurrently on two devices, their time_watched will appear double.
- First Playback (first_playback): A timestamp indicating when the first playback_started interaction was fired, in the event’s time zone
Notes:
- There is a soft limit of 30 concurrent Broadcasts per Jomablue instance. If an increase in the number of Broadcasts is needed, please contact the Jomablue Team for assistance.
- It is better to avoid reusing Broadcast Blocks. Testing a Block and then rescheduling it for later use may lead to unexpected results.
Set up a Broadcast Block
- Go to the Jomablue Portal and log in with your email address and password
- Click on Canvases in the left-hand menu
- Click on the relevant Canvas type where you wish to add the Block (e.g., Lobby, Session, Vendor or Page)
Locate the specific Canvas where the Block will be added and click Edit - Click on Layout
- Within a Flex, click Add Block. Here, a list of Blocks will appear. Choose Broadcast and click Save.
- Now that the Broadcast Block is added to the Canvas, you can name the Block and proceed to configure it.
Configuration Options
Presentation settings
- Hosts: You can select the Host(s) for the Broadcast. Any active person in the event can serve as a host. A Broadcast Block will need at least one host to run the Broadcast, but there is no upper limit on the number of hosts present.
- Allow questions: This option is disabled by default. If enabled, it allows hosts to open the Waiting Room, permitting attendees to join and ask questions during the broadcast.
- Question settings timeout: The time attendees have to confirm their camera and mic settings (minimum of 15 seconds, defaulting to 30)
- Background Image: This optional feature allows users to set a background image. If not used, the default theme background is applied. Keep in mind that different parts of the background may be visible or obscured depending on the broadcast content (recommended dimensions are 2000px * 2000px).
- Start time: This is when a host can begin streaming their broadcast to viewers, usually 15 minutes before presenting content. A Poster Image will be displayed to viewers before this time.
- End time: This is when streaming to viewers is automatically terminated, usually 15 minutes after the presentation concludes. Poster Image will be displayed to viewers following the end time. Streams are limited to a maximum of 10 hours.
- Poster Image: This image is displayed when the video is not playing. Poster images serve as a placeholder for various states of the player, such as errors or other functionalities. The design should not indicate specific states like 'Starting Soon,' 'has not finished,' or 'Technical Difficulty'.
Broadcast settings
- Broadcaster RTMP Endpoint URL: This is the RTMP Ingest URL you are streaming to (specific to 5stream)
- Broadcaster start/end streaming: The times at which the broadcast container pushes video out to the RTMP Ingest URL
- Select Region: This allows you to select an AWS region; by default, it is set to Asia Pacific (Sydney)
- Broadcast ID: A UUID for the broadcast, generated automatically and not editable
Stream settings
Note: The Broadcast Block will automatically fill out all streaming settings. The descriptions for each field are as follows:
- Content URL: The .m3u8 URL is loaded into the stream player. This can be obtained from 5stream or the Jomablue product team.
- Poster Image URL: A URL pointing to an image that serves as a placeholder when the video is not playing (it doesn't need to be from Cloudinary)
- Auto-play: Enables auto-play for the stream
- Automatically Poll for Progress: Periodically checks if the player is progressing and reset the stream if not. This option is off by default.
- Progress Polling Interval: The frequency (in seconds) with which the player checks for progress, set to 0 by default
- Show Controls: Toggles the visibility of the stream player controls, defaulted to “on”
- Show quality selector: Toggles the visibility of the stream quality selector, defaulted to “on”
- Native controls on touchscreens: Enables/disables natural video controls for touchscreens, defaulted to “on”
To set up built-in live streaming in the Broadcast Block, please check out the Set up Built-in Live Streaming in a Broadcast Block section.
User Experience when Viewing a Broadcast Block
Pre-Broadcast View
Before the host(s) go live, the Broadcast Block will display the following:
Note: The colour of the Broadcast Block view at this stage depends on the overall theming of the Community. For example, the clock colour above is shown as orange, but it can change according to the Community’s theme. For more information on Custom Theming, please consult with the Jomablue Team.
During Broadcast View
While the broadcast is live, users will see the content displayed in the Host view. If multiple hosts are present or a host is sharing their screen, the background of the broadcast will be visible.
Note: The background can be set manually when configuring the Broadcast Block. If not customised, it will default to the Community theme background. For more information, check out the Set up a Broadcast Block section
Below is an example of a host sharing the screen during the broadcast:
Multiple presenters will display in a stacked configuration when screen sharing, as shown below:
Set up Built-in Live Streaming in a Broadcast Block
The Broadcast Block supports built-in live streaming. Although it does not require integration with a 5stream service or another live-streaming service, it is available for more advanced users who wish to use their own live-streaming service.
Important Notes
- The fields for editing a Broadcast Block will become read-only 15 minutes before the configured Start Time. After this period, the Block can only be disabled, so ensure that everything is configured correctly ahead of time.
- If the 'Event End Date & Time' has passed, broadcasts won't start. Verify that the Event End Date & Time is accurate and that the Broadcast is scheduled to run before that time.
Standard Configuration
Advanced Configuration
The following fields can be shown in the advanced configuration by clicking on Show Additional Fields:
- Select Region: Allows selection of the AWS region where the Broadcast will be hosted (defaults to nearest AWS region)
- Auto-play: Allows enabling video auto-play (not recommended)
- Automatically poll for progress: Periodically checks to see if the player is progressing
- Progress polling interval: The interval at which the player checks for progress
- Broadcast ID: An automatically generated unique ID for this Broadcast (not editable)
- External Live Stream ID: This is automatically populated if an external live streaming service is used (not editable)
Custom Stream Settings
Editing the Custom Stream Settings will disable the built-in live streaming functionality. If these settings aren't configured correctly, the stream may not function as intended.
If you are using an external live streaming service, this section can be expanded to reveal two fields: the RTMP Ingest URL field and the .m3u8 Content Egress URL:
To enable a Custom Stream service, add the relevant URLs to these fields. This setup allows the Broadcast container to stream according to the provider details instead of relying on the built-in streaming service.
Clearing both the Ingest and Egress URL fields will re-enable the built-in streaming service.
Setup Process & Running a Broadcast
A Broadcast Block must be configured well in advance of the scheduled broadcast time to prevent unexpected technical difficulties and ensure reliable connectivity. To set up the Broadcast Block, follow the below steps:
1. Create a Stream
a. Log in to 5Stream
b. Ensure there is adequate buffer time before and after the desired start and end times of the broadcast session
c. Obtain the RTMP Ingest URL (from the 5stream portal) and the .m3u8 stream URL (provided by the Jomablue Team).
2. Create the Broadcast Block
On a Canvas, create the Broadcast Block (for more information, check out the Set up a Broadcast Block section) and populate the required fields:
a. Add the RTMP Ingest URL to the Broadcaster RTMP Endpoint URL field
b. Add the .m3u8 stream URL to the Content URL field
c. Enter the Broadcaster Start Time and Broadcaster End Time.
d. Add at least one host.
3. Configure any other desired options for the Broadcast Block
Options include:
a. Enable questions if that functionality is required
b. Add background and/or poster images
c. Configure other streaming settings if required
Run A Broadcast
Host View
- As a host, when you reach the Canvas with the Broadcast Block, locate the button marked Go to Presentation Mode in the live stream player and click on it. Note: The Poster image can be displayed when nothing is playing on the Broadcast Block.
- You can now configure your camera and microphone settings, as shown below:
- Click Continue to enter the main broadcast view. If there are other hosts already present, you’ll join the meeting with them.
- You now have access to a number of controls. See below overview of each control.
Presentation Controls
- Share Screen: Allows one of the hosts to share their screen
- Open Waiting Room: If enabled, this option allows the host to open the "waiting room" and let guests join the meeting and ask questions
- Guests who have requested to enter the room will appear in the ‘People Waiting’ panel on the right
- Guests who have entered the room will be listed in the ‘People Here’ panel on the right. Hosts can mute or remove guests as needed.
- End: Ends the broadcast (if it is running) and closes the host view
Broadcast Controls
- Start: Begins streaming the broadcast to the Broadcast Block for other Community users to view
Layout: Allows a host to rearrange the Layout when a screen is being shared. The Layout can either place the hosts on the right or left of the shared screen. - Reset: Stops the broadcast (if it is running) and resets all settings to their defaults
Other controls
- Inputs: Enables each host to change their camera/mic settings and mute/hide themselves
- People Here: Allows each host to mute, hide, or remove any guests in the room and to see who else is present.
Going Live
Once the hosts have properly set up their camera and microphone settings, any host can press the Start button to start the broadcast.
When the broadcast is Live, the meeting frame will pulse red, and a "Live" icon will appear in the Broadcast Controls:
The video will then be streamed to the Broadcast on the Canvas for viewers.
End the Broadcast
To end the broadcast, click on the End button. The Broadcast Block will continue to play out the rest of the stream already in the streaming pipeline, and will then display a message indicating that the broadcast has ended, as shown below:
Host Broadcasts List Block
The Hosted Broadcast List Block provides hosts with a single place to manage all presentations. This Block is created to offer hosts a ‘green room’ experience on a Custom Page Canvas, which is only visible to Community members who are presenting in Broadcasts.
The Block displays a list of all the Broadcast sessions that the logged-in Community member is hosting. The list is displayed in alphabetical order and provides the following information:
- The name of the Broadcast (as set in the Broadcast Block "name" field)
- The scheduled times for each Broadcast will run, along with the time remaining until each one starts. A flashing "On Now" indicates if a
- Broadcast is currently in progress.
- A list of the hosts in the Broadcast.
A ‘Launch’ button is available for all ongoing and future broadcasters. This functionality is not available for past broadcasts. For example, a Block displays a schedule for past, current, and future broadcasts.
If a Community member has no broadcasts to host, they will see a ‘no items’ message instead of a list of broadcasts, as shown below.
Available interactions for this Block
There are no interactions available for this Block.
Set up a Host Broadcasts List Block
- Go to the Jomablue Portal and log in with your email address and password
- Click on Canvases in the left-hand menu
- Click on the relevant Canvas type where you wish to add the Block (e.g., Lobby, Session, Vendor or Page)
- Locate the specific Canvas where the Block will be added and click Edit
- Click on Layout
- Within a Flex, click Add Block. Here, a list of Blocks will appear. Choose Host Broadcasts List Block and click Save.
- Now that the Host Broadcasts List Block is added to the Canvas, you can name the Block and proceed to configure it.
- Populate each field of the Block in the Configuration settings
The Broadcast Block has two configuration fields:
- Description: This allows adding an optional description and displays it as text at the top of the Block.
- No items text: This text field will display a message in the Block if the user viewing the page has no associated Broadcasts.
Here is an example of the Host Broadcasts List Block with a description:
Here is an example of the Host Broadcasts List Block with no broadcasts associated with it:
Live Reaction Block
The Live Reaction Block is a fun interactive addition to the wide range of content and interaction blocks. It enhances the attendee experience by adding vibrancy and encouraging interaction, allowing attendees to express their opinions. It is designed for use during live stream sessions.
The ‘react’ emoticons allow attendees to react in real-time to a live stream session with the emoji they can most relate to during the session. It encourages the attendees to participate more and spark a response to the content. And while it may look like a ‘react’ tab is a fun experience for the attendees, for the organisers, it provides a better analysis of attendees' reactions to the content. It helps organisers understand what content is generating the most reactions and resonating with the attendees.
Features of the Live Reaction Block
The Live Reaction Block is configurable and comes with its own set of features, such as:
Adding & Removing a Reaction
Between 2 to 5 reactions can be displayed on the tab. The default reaction tab contains the following reactions: Like, Love, Celebrate, Interesting, and Unsure.
You could also present simple thumbs-up and thumbs-down icons.
Custom Reactions
All icons, labels, and colours within the Reaction block can be customised. There is also an option of providing a text label beneath the reactions. The recommended image size for a reaction image is 120px x 120px transparent PNG format. Each reaction’s colour can be set using a hex code in the configuration settings.
Please note that if you wish to change the default icons, all icons must be changed with new images and labels; a mix of default and custom icons is not supported.
Block Placement
The live reaction block is best placed just beneath the live Stream/ Video-on-Demand Block. It is recommended that the Session block take up at least 50% of the page to provide enough space for the reactions and the equaliser.
Data Points
Although the exact count of reactions is not displayed in Community, the most clicked emoji will automatically form the highest curve on the equaliser compared to less popular emojis. Jomablue records data points for each reaction and timestamps when the reaction is pressed; however, this information is not currently visible to users in Jomablue.
There could be two ways data can be viewed or interpreted in post-event reporting:
- Unique people per session per type: For example, if two attendees clicked on multiple reactions throughout the session, the data will show the number of unique people (in this case, two) who reacted to the types of reactions in the session.
- Overall clicks per session per type: For example, if a single attendee clicks on the 'happy' emoji multiple times throughout the session (one reaction is recorded for every 15 seconds per person), the data will show the overall number of clicks on the ‘happy’ reaction type during the session.
Reaction Limits
An attendee can click on a reaction icon every second without limit. However, only one reaction is recorded per person every 15 seconds to prevent one person from overwhelming the reaction chart. The personal graph equaliser still their overall impact.
To see how to use a ‘Live Reaction’ Block on Community Plus, please proceed to the Set up a Live Reaction Block section.
Available interactions for this Block
When an attendee interacts with a Live Reaction Block, the ‘react’ interaction can be captured for post-event reporting. These ‘reactions’ are collected as data points, providing insights into:
- Who (people) has ‘reacted’ within a Block
- What specific reactions people have responded to within a Block
Here is an example of counting by Key and limiting by canvas:
In addition, block metrics are available in a People Export. When a Community contains one or more Live Reaction Blocks, a new column will be added to the report for each Reaction Key (e.g., each reaction icon) in a Live Reaction Block. Each column will have a header containing:
- The Block ID
- The name of the Block (if applicable)
- The reaction key (e.g., love, curious, etc.)
Set up a Live Reaction Block
- Go to the Jomablue Portal and log in with your email address and password
- Click on Canvases under Community on the left-hand menu
- Click on the Canvas type where you wish to add the Block (e.g., Lobby, Session, Vendor or Page)
- Locate the specific Canvas where the Block will be added and click Edit
- Click on Layout. This block is best positioned within the same flex as a live stream of the video player where the width of the block is at least 50% of the page.
- Within a Flex, click Add Block. Here, a list of Blocks will appear. Select Live Reaction.
- The Live Reaction Block is now added to the Canvas. You may now add Title, Configure, Automate or Delete the Block (Note: you cannot delete the Block once it has data in it).
Configuration options
The default Live Reaction Block includes five reactions that require no additional configuration, as shown below:
You can customise your own set of reactions instead of using the default reaction bar. Each reaction can be configured with the following fields:
- Reaction Name
- Image
- Reaction Label
- Custom Colour
Live Stream Block
Live Streams reated through the Live Streaming feature (found in the left menu) or the Live Stream Block are recorded and available for download via the portal. You can preview the stream recording after the session ends and generate a downloadable file in MP4 format within a few minutes.
This feature supports multiple streaming sessions within a single Live Stream. For example, if a stream is stopped and restarted (often due to technical issues), an asset will be made available for each streaming session.
If you need to download the live stream recording and upload it as VOD, refer to the How to view and download a recording section below.
Latency when Live Streaming
Stream latency refers to the delay between the camera capturing an event and the event being displayed on the attendee’s screen. This latency builds up at each step of the streaming workflow. Consequently, attendees will not see the event in real-time; there will always be a delay. Jomablue built-in streaming for either Streaming, Simulated live, or broadcast block is subject to the nature of HLS video delivery.
Jomablue Stream Latency
Jomablue latency from the camera/source to the viewer is approximately 15-30 seconds. Low latency options can reduce this to around 10-15 seconds; however, this may come with trade-offs regarding video resolution and compatibility. Jomablue can consider reduced latency for the Broadcast or Simulated Live Block on a case-by-case basis.
Default Latency for Broadcast and Simulated Live
The default latency for broadcast and simulated live streaming is currently up to 30 seconds. Therefore, even with the perfect timing for the simulation play-out, viewers may see it up to 30 seconds behind real-time. For example, if a keynote started at 9 am sharp, viewers may see it start at 09:00:30.
Jomablue Streaming Synchronised Streaming
HTTP Live Streaming (HLS) is the widely used protocol for streaming live videos. In HLS, latency is closely linked to the duration of the media segments; thus, attendees may not be synchronised in the content they're watching. Some viewers might be 21 seconds behind, while others may be 29 seconds behind. Generally, all viewers will see the 'same' content but with a margin of approximately 10 seconds of latency.
Note: When conducting any time-based interactions, such as polling, ensure that there is enough buffer time to accommodate latency.
AI Closed Captions functionality for Live Streaming
Jomablue Live Streaming now supports the addition of AI Closed Captions. This feature uses an AI speech-to-text engine to generate captions based on what is being said during the Live Stream.
If AI Closed Captions are enabled, a Closed Captions button will appear in the Live Stream player, allowing a user to enable them (if desired).
Note: AI Live Captions are provided on a "best effort" basis. While they are generally accurate, there may be occasionallyd discrepancies between the captions and the actual spoken content of the live stream. This can include incorrect interpretations of specific words or phrases, such as company or product names, acronyms, or other industry-specific jargon.
In addition to the standard speech-to-text library of words and phrases, the feature also supports the creation of Vocabularies.
Vocabularies is a list of specific words and phrases that the speech-to-text engine can use to enhance transcription accuracy.
Configuration
To enable AI Closed Captions for an existing Live Stream:
- Navigate to Community > Live Streaming in the portal left navigation
- Select More on the relevant Livestream
- Click on the AI Closed Captions tab
- Use the radio toggle to enable AI Closed Captions
- Press Save to save your changes
Note: If a Live Stream is currently active (e.g., it is receiving a stream to its ingest URL or has streamed in the past 5 minutes), you will not be able to modify the Live Stream configuration. An error message will appear in this case.
Once enabled, viewers will see a toggle for Closed Captions in the player when the live stream is active, allowing them to enable and view the captions.
Vocabularies
When configuring AI Closed Captions, you also have the option to create Vocabularies and associate them with your Live Stream.
Add Vocabularies
To view existing Vocabularies or create a new one:
- Navigate to Community > Live Streaming
- Click on the Vocabularies tab
- Click on Create New Vocabulary to create a new Vocabulary
After clicking Create New Vocabulary, you will be directed to the Vocabulary detail screen, where you can see the Vocabulary name (along with an external ID used by the Live Streaming service) and a list of linked Live Streams (this list will be empty upon creation).
Add Phrases
To add Phrases to the Vocabulary:
- Click on the Phrases tab
- Click on the Edit Phrases button
This will open a modal that allows you to add a list of Phrases (one per line) to the Vocabulary.
3. After saving, the list of Phrases will be visible in the Phrases tab:
Live Streaming
Live Streaming provides a native solution for streaming video and is fully configured within Jomablue, requiring no external configuration.
Additionally, Streams can be created and assigned to Blocks without specifying dates and times. When the stream starts transmitting content via the ingest URL, it will automatically become available in the assigned Live Streaming Block(s).
The configuration is flexible, allowing for a single live stream to be reused for multiple sessions without the need for onsite teams to reconfigure encoders each time.
Within an event, you can view the Live Streaming Summary, by navigating to Community > Live Streaming. The Live Streaming summary view contains a list of all Live Streams for the current event, including:
- Live Stream ID and Nickname (the nickname is editable to help identify streams that may be grouped across multiple blocks)
- Created At time
- Stream Key
- Linked Blocks (number of Live Stream Blocks using this Stream
- Actions (contains a "More" button)
Note: To view more information about a particular Live Stream, click "More".
Live Stream Detail view
The Live Stream detail view displays additional information about a specific Live Stream including:
- External ID and External Created: the external identifier and created time for the stream. This is used for Jomablue support to reference streams within an external infrastructure.
- Status: The status of the stream (either idle or active; a stream is considered active when content is being ingested)
- Linked Blocks: a list of all Live Stream Blocks using this Live Stream, including columns for Block visibility and direct links to edit each block
Live Stream Recordings
Live Streams created via the Live Streaming feature (available in the left menu) or the Live Stream Block are recorded and can be downloaded via the portal. After the session ends, the stream recording can be previewed, and you can generate a downloadable file in mp4 format within a few minutes.
Configure a Live Stream Block
Live Streaming provides a native solution for streaming video, fully configured within Jomablue without the need for external configuration.
When creating streams, there’s no requirement to set specific dates and times; streams can be created and simply assigned to Blocks.
As soon as the stream is initiated 9when content is sent via the ingest URL), it will automatically be available in the designated Live Streaming Block(s).
The configuration is quite flexible, allowing a single live stream to be reused for multiple sessions without requiring onsite teams to reconfigure encoders between events.
Configuration
To create a Live Stream Block, select the "Live Stream" option during the setup of a new Block. (Please note that “Self Hosted Live Stream” and “Simulated Live Stream” are distinct options):
There are two options when using the Live Stream Block: create a new Live Stream when creating the Block or reuse an existing Live Stream.
Create a Live Stream Block with a new Live Stream
After creating the Live Stream Block, navigate to the Configuration tab and click the button labelled Generate Live Stream Ingest Details to generate a new Live Stream, click this button:
Once you click this button, a new Live Stream will be generated along with its corresponding ingest and preview details. (Please note that the Live Stream Key and Live Stream Preview Link will be blurred for security.)
The grey fields can't be edited, but you can still copy these details to your clipboard using the buttons to the right.
The Live Stream RTMP Ingest and Live Stream Key should be provided to the AV Provider (or any source streaming the content) for their encoder. It’s important to remember that the Jomablue ingest URL remains constant; only the key changes for each stream.
The Live Stream Preview Link can be shared with the AV Provider for testing and with event organisers so they can monitor the stream.
Important Note: Some corporate networks may block outbound traffic, particularly at volume. This issue may manifest as the stream working initially but failing subsequently, due to the network detecting and blocking the traffic. It’s advisable for clients to consult their IT department to whitelist *.jomablue.com and allow outbound TCP traffic over port 5222.
Create a Live Stream Block with an existing Live Stream
When creating a new Live Stream Block, instead of clicking "Generate Live Stream Ingest Details", you can click on "Show Optional Fields" and then select an existing Stream to re-use:
Select the desired stream and then click Save. This action will automatically configure the Block with the corresponding Live Streaming details.
Preview a Live Stream
For testing and monitoring purposes, a Live Stream Preview URL is generated when the Live Stream is generated. To access this URL, locate the Live Stream in the Live Streaming menu and locate the Preview URL field:
The button to the right of this field can be used to copy the URL to your device's clipboard and it can then be viewed in any browser.
Latency
Stream latency is on average, between 20 and 35 seconds.
Usage and Charging
Live Streaming is accounted for in the following way:
- Stream Encoding: This refers to the hours of video sent from OBS or the Encoder to the Jomablue ingest
- Stream Viewing: This accounts for the hours of video watched by viewers (e.g., 1 hour x 100 viewers equals 100 hours)
These charges apply only to streamed video, which means the video being sent by OBS/Encoder to the ingest point, not simply creating a "stream" in Jomablue. The usage data is recorded in the Jomablue Subscription information for each instance.
Additionally, for every hour of live streaming encoding, there is a monthly charge for hosting that recorded stream.
e.g., 1 hour of Stream Encoding counted as 1 hour of recorded video. If this is kept for 6 months, the cost will be: 1 hour x 6 months.
Offline Handling
To ensure the best user experience, the goal is to make the stream available as viewers join until they leave, with no interruptions.
Failing to achieve this can detract from a seamless experience; however, Jomablue includes built-in automatic recovery features for potential live stream issues.
The player is designed to recover in most scenarios, but experiences may differ depending on browsers and devices. If no video is being streamed, viewers will see a message accompanied by an animated spinner. At this point, viewers do not need to take any action, as playback will automatically resume when the video begins again.
If playback doesn’t resume, users may need to refresh the entire page to reload the stream.
Offline status can be classified into two different states, with varying considerations and resolutions depending on the situation:
1. No Video Streamed
This occurs when a viewer arrives on a canvas before the video has started streaming, such as when the Pre-roll hasn't started yet. To avoid this situation, plan to reveal canvases or blocks only after the pre-roll has started. This way, the viewers will immediately see video content instead of an error message.
The same principle also applies to the end of a stream; the block should be hidden before the post-roll has finished.
2. Dropouts
A dropout happens when a video has been successfully streaming and is unexpectedly cut. For example, this can occur if the internet connection in the studio drops out. There are two types of dropouts: minor and major.
- Minor dropouts last less than 5 minutes and automatically recover from where they left off after viewers see an error message for the duration of the dropout.
- Major dropouts last longer than 5 minutes. On some browsers, viewers may see the last ~10 seconds of buffered video before an error message is displayed. If a viewer refreshes their browser during a major dropout, they may continue to see the buffered video for a few minutes before the player shows an indefinite error message.
Both minor and major dropouts are handled in the player, but the user experience is less satisfactory for major dropouts.
How the player looks when no stream is available
Encoder Settings
Live streaming supports a variety of incoming sources and types, including most modern codecs and frame rates. Only a single high-quality incoming stream is required; multiple renditions are not necessary. The following recommendations are provided, though experimenting with encoder settings is advisable to find what works best for your specific content, as this may vary based on your region or camera choices.
When selecting an encoder bitrate, consider your available upload bandwidth. There should be at least 50% bandwidth headroom above your chosen bitrate. If bandwidth is limited, it is advisable to reduce the quality of the stream (e.g., choose a setting similar to 'good quality').
The following recommendations apply to a range of content types, including talking head videos, stage productions, webinars with screen sharing, and more.
Overall
- Video Codec - H.264 (Main Profile)
- Audio Codec - AAC
Great Quality
- 1080p (1920x1080) @ 25fps or 30fps
- Bitrate - 6500 kbps
- Keyframe Interval - 2 seconds
Good Quality
- 720p (720x480) @ 25fps or 30fps
- Bitrate - 4000 kbps
- Keyframe Interval - 2 seconds
Advanced Settings:
- These are not required but provided as a reference to tweak advanced settings
- Audio sample rate: 44.1Khz
- Audio bitrate: 128Kbps Stereo
- Pixel aspect ratio: Square
- Frame types: Progressive Scan, 2 B-Frames, 1 Reference Frame
- Keyframe Interval: Recommended 2 seconds, do not exceed 4 seconds
- Bitrate Encoding: CBR
Troubleshooting:
When experiencing connectivity issues to the live stream servers please ensure:
- There are no typos in the Live stream details within the device or software configuration
- There are no firewalls or antivirus programs that may prevent you from streaming
- A stable internet connection is established, preferably using a wired connection instead of WIFI
- Try using a different network, such as a mobile device hotspot, to confirm if the production network is affected by these issues.
How to view and download a recording
- Navigate to Live Streaming in the left menu
- Select More on the stream you wish to download
- Click on the Assets tab
- To preview any session of the live stream:
a. Select the thumbnail image to display a player
5. To download a file:
a. Select Generate Master .mp4 file
b. When the generation is complete, select Download Master File
Use a downloaded Live Stream as a VOD
After downloading a Live Stream, the file can be uploaded for use as a VOD (in a VOD Block) or made available on-demand through other means. It is recommended to edit the file by removing or replacing unwanted intro/outro content to enhance the viewing experience.
Additional Notes
- Live Streams are always recorded by default; this feature cannot be turned off
- The process of generating a master file can take from 30 seconds to several minutes, depending on the length of the asset
- Once a file is generated for download, it will be available for 24 hours. After this period, users will need to generate a new master file for download
- If one portal user generates a file for download, it will also be available to other users
- The downloaded filename will be “master.mp4” or a variant, such as “master (1).mp4)”
- The file format is .mp4
FAQ: Live Stream
Q: Why is the stream key so long and hard to enter into our encoder?
A: The stream key functions like a password. Its length and complexity ensure that unauthorised users cannot access your stream. Although it can be inconvenient to type, having a short and guessable key poses a significant security risk. Note that the ingest URL remains the same; only the stream key changes.
Q: I need a single-line ingest URL for my encoder/My encoder doesn't support stream keys
A: Some encoders lack separate fields for the stream ingest URL and the stream key. In such cases, you can combine both. In this example, using the following format: rtmp://ingest.jomablue.com/522/app/b5c710c8-7d7f-11ec-90d6-0242ac120003 where 'b5c710c8-7d7f-11ec-90d6-0242ac120003' is the stream key
Self Hosted Live Stream Block
A Self Hosted Live Stream Block accepts an HLS playlist (.m3u8 URL) and allows users to consume live video content on both mobile and desktop devices. It can be used with nearly any video provider, including those not available as native Jomablue plugins. This also includes self-managed video streaming infrastructures such as Wowza.
The player supports a custom holding image, which should be hosted publicly. The URL of the image is added to the block configuration, with a recommended image size is 1920 x 1080px.
Picture-in-picture display is supported in this block, offering users greater control over the video on their devices.
If the stream becomes unavailable (either it hasn’t started or has been manually stopped), a message will appear in the middle of the player, allowing users to click a refresh button to attempt to reconnect to the stream.
Platforms that Support HLS Streaming
The following platforms support HLS streaming and can be used within the Self Hosted Live Stream Block, but please verify with these providers as their platforms may change over time:
- Wowza
- Kaltura
- Jwplayer
- Brightcove
- Viostream
Features of the Self Hosted Live Stream Block
- The Self Hosted Live Streaming feature supports the industry-standard HLS streaming protocol, which is widely compatible with almost all video streaming providers
- Automations and insights are available no matter the streaming provider used
- Custom-holding posters (images) are also supported
- The Content URL must start with https:// and end with .m3u8. Non-https: sources cannot be played
- Captions are supported if embedded in the HLS playlist from the video provider
- Picture-in-Picture is supported, which lets users place the video anywhere on their device
Available interactions for this block
Available interactions for the Self Hosted Live Stream Block are:
- playback_started: Triggered when the live stream begins playing in the user’s browser
- playback_paused: Triggered when the user pauses playback of the live stream
- chunk_played: Triggered when a chunk of the live stream has fully played
- time_watched: The total amount of time the user has spent watching the stream
- first_playback: A timestamp indicating when the first playback_started interaction occurred, in the event’s timezone
Users watching Live Stream chunks create a new data point every 60 seconds, allowing us to track which parts of the Live Stream viewers engaged with to the nearest minute.
These interactions can be stored for post-event reporting and block automations. For more information see the Available Interactions for this Block section.
Set up a Self Hosted Live Stream Block
- Go to the Jomablue Portal and log in with your email address and password
- Click on Canvases under Community on the left-hand menu
- Click on the Canvas type where you wish to add the Block (e.g., Lobby, Session, Vendor or Page)
- Locate the specific Canvas where the Block will be added and click Edit
- Click on Layout
- Within a Flex, click Add Block. Here, a list of Blocks will appear. Select Self Hosted Live Stream.
- The Self Hosted Live Stream Block is now added to the Canvas. You may now add a Title, Configure, Automate or Delete the Block.
Configuration options
A Self Hosted Live Stream accepts a URL via the Content URL in the Block's Configuration tab.
You can also add an image URL link and configure the following options:
- Auto-play: This can be turned on and off; it is recommended to keep autoplay disabled
- Automatically poll for progress: This can also be turned on or off. If activated, the system will automatically check if the video player is progressing and will reset the stream if it is not.
- Progress polling interval: If automatic polling is enabled, you can set how frequently the player checks for progress.
Simulated Live Stream Block
The Simulated Live Stream Block allows speakers to present their pre-loaded content as a live stream. This combines the perks of live streaming with pre-recorded sessions, creating an all-encompassing experience for the audience.
What the Simulated Live Stream Block does
With the Simulated Live Stream Block, users can upload a video and configure the Block to play it over a stream at a certain time, without the play/pause functionality.
There is a failover system that handles unlikely stream failures, allowing another stream container to activate and continue streaming from the same point in the video playback. This preserves the illusion that the video is being streamed live rather than being a pre-recorded playback.
Note: Closed captions are currently not supported in Simulated Live Stream; attendees cannot turn subtitles on or off. However, open captions (which are always on and cannot be turned off) are supported in Simulated Live Stream.
Benefits of the Simulated Live Stream Block
- Smooths over any technical glitches: Removes stress related to technical issues during live stream sessions
- Production control: Allows the producer time to edit and remove mistakes from the content
- Flexibility & convenience: The session can be recorded anytime prior to the event, providing convenience and flexibility for speakers
- Creates excitement: Creates the urgency and excitement typically associated with live streaming
The architecture of the Simulated Live Stream Block
The Simulated Live Stream Block comprises the following components:
- Video File: the file that will be played back as a ‘live’ stream
- Simulated Live Block (configuration): Configures the ‘Container’ that will run the stream
- Simulated Live Container: The server that plays back the video as a ‘live’ stream
- Streaming Service: Takes the RTMP stream from the Container and makes it available as a .m3u8 stream URL
- Simulated Live Block in Community: Contains a player that plays back the content on the Canvas in the form of a .m3u8 stream.
Note: .m3u8 is an HTTP Live Streaming-based file format that contains a multimedia playlist
All these components work together to ensure the Simulated Live Stream Block functions properly, as shown below in the architectural diagram.
Available interactions for this Block
The available interactions for the Simulated Live Stream Block include:
- Playback Started (playback_started): Triggered when the stream playback begins
- Chunk Played (chunk_played): Triggered when an attendee views a chunk (1 minute) of the stream
- Time Watched (time_watched): The total amount of time a person has consumed watching the stream(the sum of all obtained chunks for that person). If a person watches concurrently on two devices, their time_watched would be twice as much as expected.
- First Playback (first_playback): A timestamp in the event’s timezone indicating when the first playback_started interaction was fired
Video file requirements for the Simulated Live Stream Block
The video files to be played out in the Simulated Live Stream Block have the following requirements. All uploaded video files will be validated to ensure requirements are met and consistent playback can be achieved.
For the best viewer experience, it is highly recommended to include both pre-roll and post-roll segments, ideally lasting at least 15 minutes each. Failing to include these will result in an abrupt viewer experience, where the live stream starts or stops unexpectedly, much like an error with the live stream.
1. Video requirements
- Resolution: 1920x1080 @ 25fps or 30fps
- Video codec: h264 avc1
- h264 profile: High
- Bitrate: 2500kb/s - 4500kb/s recommended
2. Audio requirements
- Audio codec: AAC (LC) Stereo
- Bitrate: 256kb/s recommended
3. File requirements
- Max File Size: 20GB
- Max File Length: 6 hours
- File Type: mp4 recommended
We strongly advise producing a test video before creating your final production video. The test video should match the output settings of your production content exactly. This enables you to use the built-in preview tools in Jomablue to validate and ensure good-quality playback for your audience.
Set up a Simulated Live Stream Block
- Go to the Jomablue Portal and log in with your email address and password
- Click on Canvases under Community on the left-hand menu
- Click on the Canvas type where you wish to add the Block (e.g., Lobby, Session, Vendor or Page)
- Locate the specific Canvas where the Block will be added and click Edit
- Click on Layout
- Within a Flex, click Add Block. Here, a list of Blocks will appear. Select Simulated Live.
- The Simulated Live Block is now added to the Canvas. You may now add a Title, Configure, Automate or Delete the Block.
Configuration options
Video File Settings
- Upload Requirement: You must upload the desired video file in the Files section of the Jomablue portal
- Select Video File: Choose the Video File that you want this Simulated Live Stream to play. This file should be uploaded via the Files page in the portal.
- Video File Duration: This specifies the total length of the selected Video File, including both pre-roll and post-roll durations. Sum the length of the video file and the pre-roll length; if there is no pre-roll, set this to 0h 0m 0s.
- Video Pre-roll Duration: This specifies the amount of pre-roll in the selected Video File. Setting this duration will determine the actual Session Streaming Start time.
Pre-Roll Duration is the length of pre-roll in the video file before the actual content ‘starts’. This is used to calculate when we need to start streaming the pre-roll so that the video starts at the desired time. It is a requirement to include the video pre-roll duration otherwise the viewer’s experience could be less than optimal, resulting in ‘stream not running’ errors up until the exact start time of the session.
The ‘Session Streaming Start’ timing should be when the session is due to start. The length of the pre-roll included in the file will ensure that the video starts playing at the right time. For example, if there is a 30-minute pre-roll and the sessions will start at 9:00 AM then the Block will start streaming the pre-roll from 8:30 AM.
Stream Content Settings
- Content Start Time: Select the date and time for the start of the actual session stream content
- Poster Image: An image displayed as a placeholder when the video is not playing. Recommended size is 3840px W X 2160px H.
- Auto-play: This option starts playing the video automatically when the page loads and is turned off by default (it is recommended to keep it off).
- Automatically Poll For Progress: This option checks periodically to see if the player is progressing and resets the stream if it is not
- Progress Polling Interval: The frequency at which the player checks the video’s progress to ensure it is playing as expected. Defaults to 0 seconds.
- Simulated Live Stream ID: This is generated automatically
- External Live Stream ID: This field is populated automatically
Note: For support on uploading the Cloudinary image ID, please reach out to Jomablue.
Experience Rating for Simulated Live Block
An ‘Experience’ tab is available in a Simulated Live Stream Block that provides information on:
- The overall rating of the expected experience produced by the Block
- An analysis of the Block’s configuration, including any potential issues
- Hints and tips for improving the Experience, based on a set of pre-configured rules
- A timeline that displays each Transition in the Block and the durations between them
Experience Rating Interface
If the Block encounters at least one experience rule warning, it will appear next to the Canvas Edit button in the Canvas view, as shown below:
In the Canvas Detail view, the warning badge will appear next to the Layout tab:
In the Canvas Layout view, the warning badge will appear next to the "Edit" button for the specific Block(s) generating the warnings:
Note: As shown in the image, the inactive Simulated Live Stream Block shows a warning because all newly created Blocks will show a warning until they are configured.
On the Block Detail page, the badge will be displayed on the Experience tab:
The Experience Tab itself shows the overall rating, a list of detected issues, and the Transitions timeline, indicating each transition between states. A freshly created Block will likely show two high-severity issues due to a lack of configuration:
Once the Block is fully configured with all the correct settings, it will appear with an ‘excellent’ rating:
Experience Rules
Rating Severity
The Experience Tab will produce a series of messages in the portal based on potential issues, each rated at different levels of severity: "low", "medium", and "high":
- Low: Intended for configurations that could be valid but are not optimal based on our experience (e.g., insufficient pre-roll time)
- Medium: For configurations that may not adversely affect user experience but appear unprofessional (e.g., displaying a "stream not found" message before the pre-roll starts)
- High: For critical issues that will cause content to fail or be hidden (e.g., content starting before block reveal)
Experience Validation Rules
The following is the list of Experience Validation Rules along with their severity levels:
- Pre-roll length must be set (High)
- Pre-roll should begin before the block is visible (medium)
- Pre-roll should be at least 10 minutes in length (low)
- Content start must be set (High)
- Content start should be after block reveal (High)
- Content start should be after the canvas reveal (High)
- Content start should be before the block hide time (High)
- Content start should be before the canvas hide time (High)
- Simulation ends should occur after the block disappears (Medium)
- Simulation ends should at least be 2 minutes before the block disappears (Low)
Video On Demand (VOD) Block
The Video On Demand feature provides native on-demand video playback functionality.
Upload a Video On Demand asset
- Select On Demand in the left navigation
- Select Add New Asset
- The Video button will automatically be selected under the asset type
- Provide a unique label for the asset
- Upload the file by dragging and dropping it into the specified area, or clicking on the area to browse and select your file
The asset will be labelled as "Processing". Once fully uploaded, it will appear in the On Demand asset list and will be available for selection within a Block. To view more information and preview the asset, select View on the right-hand side.
Apply a Video Asset to a Block
- Navigate to the Canvas
- Go to the Layout tab
- Add a Video On Demand Block or select an existing Video On Demand Block
- Click on Configure
- In the Configuration tab, choose your video asset from the drop-down menu (titled Select Video Asset). A preview will be provided for your convenience.
- Customise the Thumbnail by specifying the timestamp at which the desired thumbnail displays on the video under 'Timestamp of thumbnail’
- You can upload a Preview Image to be used as the video thumbnail; the recommended size is 1920px x 1080px
- Optionally, you can select Autoplay if you want the video to play automatically when the page opens. Please note that this feature may only work with supported clients.
- Make your block active in the Details tab and select Save