Products
Products
Video Hosting
Upload and manage your videos in a centralized video library.
Image Hosting
Upload and manage all your images in a centralized library.
Galleries
Choose from 100+templates to showcase your media in style.
Video Messaging
Record, and send personalized video messages.
CincoTube
Create your own community video hub your team, students or fans.
Pages
Create dedicated webpages to share your videos and images.
Live
Create dedicated webpages to share your videos and images.
For Developers
Video API
Build a unique video experience.
DeepUploader
Collect and store user content from anywhere with our file uploader.
Solutions
Solutions
Enterprise
Supercharge your business with secure, internal communication.
Townhall
Webinars
Team Collaboration
Learning & Development
Creative Professionals
Get creative with a built in-suite of editing and marketing tools.
eCommerce
Boost sales with interactive video and easy-embedding.
Townhall
Webinars
Team Collaboration
Learning & Development
eLearning & Training
Host and share course materials in a centralized portal.
Sales & Marketing
Attract, engage and convert with interactive tools and analytics.
"Cincopa helped my Enterprise organization collaborate better through video."
Book a Demo
Resources
Resources
Blog
Learn about the latest industry trends, tips & tricks.
Help Centre
Get access to help articles FAQs, and all things Cincopa.
Partners
Check out our valued list of partners.
Product Updates
Stay up-to-date with our latest greatest features.
Ebooks, Guides & More
Customer Stories
Hear how we've helped businesses succeed.
Boost Campaign Performance Through Video
Discover how to boost your next campaign by using video.
Download Now
Pricing
Watch a Demo
Demo
Login
Start Free Trial
Embedding live streams into a Content Management System (CMS) via blocks allows content creators and developers to deliver real-time video content seamlessly within the CMS structure. This setup is useful for platforms that require dynamic video content, such as news websites, online events, e-learning platforms, and sports broadcasts. By embedding live streams directly into CMS blocks, content can be updated dynamically and presented in a user-friendly format. Understanding CMS Blocks for Livestreams In CMS systems like WordPress, Drupal, or headless CMS platforms, a “ block ” is a modular element used to display content in various sections of a page. By embedding a livestream player within a CMS block, you can ensure that the video content is managed and updated in real time without the need for hard coding or manual intervention. Embedding Live Streams with CMS Blocks Adding a Livestream Block in WordPress In WordPress, blocks are the building blocks of content. You can easily add a livestream player into a block using custom HTML or by utilizing a plugin. This method works for live stream platforms like YouTube, Vimeo, or custom RTMP streams. Example : Embedding a YouTube Livestream
Explanation : YouTube Embed Code : You can use YouTube’s iframe embed code to add a live stream to any block. Replace YOUR_CHANNEL_ID with the specific channel ID for the live stream. Customization : You can adjust the width, height, and other attributes to fit your CMS layout. Embedding Custom RTMP Streams into CMS Blocks For custom RTMP-based live streaming, you can embed a player like Video.js or JW Player into a CMS block using the embed code provided by your media server. Example : Embedding an RTMP Stream with Video.js
Your browser does not support the video tag.
Explanation : RTMP Stream : The source element is configured to fetch an RTMP stream from your server. Video.js Player : The video.js player is used to handle the RTMP stream within a browser that supports Flash or uses modern streaming protocols. Embedding Live Streams in Headless CMS via API In headless CMS platforms (like Strapi, Contentful, or Sanity), live streams can be embedded dynamically using an API and JavaScript. This allows for more flexibility and control over the presentation layer. Example : Dynamically Embedding Live Stream in Headless CMS const liveStreamURL = 'https://www.example.com/live/stream'; // Replace with dynamic URL fetch('/api/get-live-stream-url') .then(response => response.json()) .then(data => { const iframe = document.createElement('iframe'); iframe.src = data.streamUrl; // The live stream URL from the API iframe.width = '100%'; iframe.height = '315'; document.getElementById('livestream-container').appendChild(iframe); }) .catch(err => console.error('Error fetching live stream URL:', err)); Explanation : API Call : Fetches the live stream URL dynamically from the CMS API. Dynamic Embed : The live stream is embedded into the page by creating an iframe element dynamically and appending it to the DOM. Handling Video Formats and Playback Options When embedding live streams into CMS blocks, it's essential to handle multiple video formats for cross-browser compatibility. You should support HTML5, HLS (HTTP Live Streaming), and RTMP for broader audience reach, especially for mobile devices and browsers that may not support Flash. HLS Support for HTML5 HLS is a modern video streaming protocol widely used for live broadcasts. It provides adaptive bitrate streaming and ensures the video quality adjusts based on the viewer's bandwidth. Example : Embedding HLS Stream in Video.js
Your browser does not support the video tag.
Explanation : HLS Stream : The source element points to an .m3u8 file, which is the HLS playlist format. Video.js handles the playback of this format. Multiple Streaming Protocols Ensure your CMS block can handle different streaming protocols. For platforms that require adaptive streaming, HLS or DASH are commonly used, while RTMP is favored for live events. Example : Adaptive Streaming with Dash.js
Your browser does not support the video tag.
Explanation : DASH Streaming : The .mpd manifest file is used for MPEG-DASH streams. Dash.js allows smooth streaming of live content. Best Practices for Streaming in CMS Blocks Auto-Detecting Playback State Ensure the video player within your CMS block automatically detects when to play or pause, particularly when embedded in a carousel or gallery. Use the IntersectionObserver API for efficient loading and playback. Example : Auto Play Video Based on Viewport Visibility const videos = document.querySelectorAll('video'); const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { const video = entry.target; if (entry.isIntersecting) { video.play(); } else { video.pause(); } }); }, { threshold: 0.5 }); videos.forEach(video => observer.observe(video)); Explanation : IntersectionObserver : Automatically plays the video when it enters the viewport, saving resources by pausing off-screen videos. Responsive Video Embeds Ensure that your video content remains responsive across various screen sizes and devices. Use CSS to scale the video player container to fit different viewport sizes. .video-container { position: relative; width: 100%; height: auto; } .video-js { width: 100%; height: auto; } Explanation : Responsive Design : The video player’s size adjusts dynamically, ensuring it scales properly across various screen sizes, including mobile devices.