Top Related Projects
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Video.js - open source HTML5 video player
:clapper: An extensible media player for the web.
JW Player is the world's most popular embeddable media player.
HTML5 FLV Player
JavaScript player library / DASH & HLS client / MSE-EME player
Quick Overview
Flowplayer is an open-source, customizable HTML5 video player for the web. It provides a robust and feature-rich solution for embedding and playing video content on websites, with support for various video formats and streaming protocols.
Pros
- Highly customizable with a wide range of configuration options and API methods
- Supports adaptive streaming (HLS, DASH) and multiple video formats
- Responsive design and mobile-friendly
- Extensive plugin ecosystem for additional functionality
Cons
- Learning curve can be steep for advanced customizations
- Some features require commercial licenses
- Documentation could be more comprehensive and up-to-date
- Limited built-in analytics compared to some commercial alternatives
Code Examples
- Basic video player setup:
flowplayer("#player", {
src: "https://example.com/video.mp4",
title: "My Video"
});
- Setting up an adaptive streaming (HLS) video:
flowplayer("#player", {
src: "https://example.com/playlist.m3u8",
type: "application/x-mpegurl"
});
- Adding a custom logo and watermark:
flowplayer("#player", {
src: "https://example.com/video.mp4",
logo: {
url: "https://example.com/logo.png",
fullscreen: false,
displayTime: 0
},
watermark: {
url: "https://example.com/watermark.png",
position: "top-right"
}
});
Getting Started
- Include Flowplayer scripts and styles in your HTML:
<link rel="stylesheet" href="https://releases.flowplayer.org/7.2.7/skin/skin.css">
<script src="https://releases.flowplayer.org/7.2.7/flowplayer.min.js"></script>
- Add a container element for the player:
<div id="player"></div>
- Initialize the player with JavaScript:
flowplayer("#player", {
src: "https://example.com/video.mp4",
title: "My First Flowplayer Video"
});
This will create a basic video player with default controls and settings. You can further customize the player by adding more configuration options and utilizing the Flowplayer API for advanced functionality.
Competitor Comparisons
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Pros of hls.js
- Specialized in HLS streaming, offering robust support for adaptive bitrate streaming
- Lightweight and focused on a single streaming protocol, potentially leading to better performance
- Active development with frequent updates and a large community
Cons of hls.js
- Limited to HLS streaming, lacking support for other formats like DASH or progressive download
- Requires more setup and configuration compared to Flowplayer's all-in-one solution
- May need additional plugins or libraries for features like DRM support
Code Comparison
hls.js:
var video = document.getElementById('video');
var hls = new Hls();
hls.loadSource('https://example.com/video.m3u8');
hls.attachMedia(video);
hls.on(Hls.Events.MANIFEST_PARSED, function() { video.play(); });
Flowplayer:
flowplayer("#player", {
clip: {
sources: [
{ type: "application/x-mpegurl", src: "https://example.com/video.m3u8" }
]
}
});
The code comparison shows that hls.js requires more explicit setup, while Flowplayer offers a more abstracted configuration. hls.js provides finer control over the HLS implementation, whereas Flowplayer simplifies the process with a higher-level API.
Video.js - open source HTML5 video player
Pros of Video.js
- Larger community and more frequent updates
- Extensive plugin ecosystem
- Better documentation and examples
Cons of Video.js
- Larger file size, potentially impacting page load times
- Steeper learning curve for advanced customizations
- More complex setup for basic usage
Code Comparison
Video.js basic implementation:
<video id="my-video" class="video-js" controls preload="auto" width="640" height="360">
<source src="video.mp4" type="video/mp4">
</video>
<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script>
<script>
var player = videojs('my-video');
</script>
Flowplayer basic implementation:
<div id="player"></div>
<script src="//releases.flowplayer.org/7.2.7/flowplayer.min.js"></script>
<script>
flowplayer("#player", {
clip: {
sources: [
{ type: "video/mp4", src: "video.mp4" }
]
}
});
</script>
Both libraries offer robust video playback solutions, but Video.js has a larger community and more extensive features. Flowplayer, on the other hand, provides a simpler setup process and potentially faster load times due to its smaller file size. The choice between the two depends on specific project requirements and the level of customization needed.
:clapper: An extensible media player for the web.
Pros of Clappr
- More active development with frequent updates and contributions
- Extensive plugin system for easy customization and feature extension
- Better support for modern streaming protocols like HLS and DASH
Cons of Clappr
- Steeper learning curve for beginners compared to Flowplayer
- Less comprehensive documentation and fewer examples available
- Larger file size, which may impact page load times
Code Comparison
Clappr initialization:
var player = new Clappr.Player({
source: "http://your.video/here.mp4",
parentId: "#player"
});
Flowplayer initialization:
flowplayer("#player", {
clip: {
sources: [
{ type: "video/mp4", src: "http://your.video/here.mp4" }
]
}
});
Both players offer simple initialization, but Clappr's approach is more object-oriented and modular. Flowplayer's configuration is more compact and may be easier for beginners to understand at first glance. However, Clappr's structure allows for easier integration of plugins and advanced features as projects grow in complexity.
JW Player is the world's most popular embeddable media player.
Pros of JW Player
- More extensive feature set, including advanced analytics and advertising support
- Larger community and more frequent updates
- Better documentation and support resources
Cons of JW Player
- More complex setup and configuration process
- Higher cost for premium features and enterprise-level support
- Steeper learning curve for developers new to the platform
Code Comparison
JW Player setup:
jwplayer("myElement").setup({
file: "video.mp4",
width: "100%",
aspectratio: "16:9",
autostart: true
});
Flowplayer setup:
flowplayer("#player", {
clip: {
sources: [
{ type: "video/mp4", src: "video.mp4" }
]
}
});
Both players offer similar basic setup processes, but JW Player provides more configuration options out of the box. Flowplayer's setup is generally simpler and more straightforward for basic use cases.
JW Player offers more advanced features like VAST ad integration and extensive skinning options, while Flowplayer focuses on providing a lightweight, easy-to-use player with essential functionality.
Overall, JW Player is better suited for large-scale projects with complex requirements, while Flowplayer is ideal for simpler implementations and developers looking for a more streamlined solution.
HTML5 FLV Player
Pros of flv.js
- Specialized for FLV format, offering better support for this specific file type
- Lightweight and focused, potentially leading to better performance for FLV playback
- Open-source with active community contributions
Cons of flv.js
- Limited to FLV format, less versatile compared to Flowplayer's multi-format support
- May require additional plugins or components for features that come built-in with Flowplayer
- Less extensive documentation and ecosystem compared to Flowplayer
Code Comparison
flv.js:
if (flvjs.isSupported()) {
var videoElement = document.getElementById('videoElement');
var flvPlayer = flvjs.createPlayer({
type: 'flv',
url: 'http://example.com/flv/video.flv'
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
}
Flowplayer:
flowplayer("#player", {
clip: {
sources: [
{ type: "video/mp4", src: "video.mp4" },
{ type: "video/webm", src: "video.webm" }
]
}
});
The code snippets demonstrate the initialization process for each player. flv.js focuses on FLV playback, while Flowplayer shows its multi-format support. flv.js requires a check for browser support, whereas Flowplayer assumes compatibility or handles it internally.
JavaScript player library / DASH & HLS client / MSE-EME player
Pros of Shaka Player
- Supports adaptive streaming protocols like DASH and HLS
- Extensive documentation and active community support
- Built-in DRM support for various content protection systems
Cons of Shaka Player
- Steeper learning curve due to more complex features
- Larger file size compared to Flowplayer
- May be overkill for simple video playback needs
Code Comparison
Shaka Player initialization:
const video = document.getElementById('video');
const player = new shaka.Player(video);
player.load('https://example.com/video.mpd');
Flowplayer initialization:
flowplayer('#player', {
clip: {
sources: [
{ type: 'video/mp4', src: 'https://example.com/video.mp4' }
]
}
});
Both players offer easy initialization, but Shaka Player's code demonstrates its focus on adaptive streaming (DASH in this example), while Flowplayer's code shows a simpler approach for traditional video sources.
Shaka Player is more suitable for complex streaming scenarios and DRM-protected content, while Flowplayer offers a simpler solution for basic video playback needs. The choice between the two depends on the specific requirements of your project, such as the need for adaptive streaming, DRM support, and the level of customization desired.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Flowplayer
Note! This archived repository contains the old open-source player called Flowplayer 7. Merely for history purposes.
For more recent offerings consider visiting our website.
For the impatient
- Download Flowplayer
- Unzip
- Drop the folder under your server
Minimal setup
<!DOCTYPE html>
<head>
<!-- flowplayer depends on jQuery 1.7.1+ (for now) -->
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<!-- flowplayer.js -->
<script type="text/javascript" src="flowplayer.min.js"></script>
<!-- player styling -->
<link rel="stylesheet" type="text/css" href="flowplayer/minimalist.css">
</head>
<body>
<!-- player 1 -->
<div class="flowplayer">
<video src="my-video.mp4"></video>
</div>
<!-- player 2 -->
<div class="flowplayer">
<video>
<source type="video/webm" src="my-video2.webm">
<source type="video/mp4" src="my-video2.mp4">
</video>
</div>
</body>
API Samples
// listen to events on second player
flowplayer(1).bind("load", function (e, api, video) {
}).bind("pause", function (e, api) {
});
// work with jQuery
$(".flowplayer").bind("unload", function (e, api) {
});
Compiling Flash
- Download Open Source Flex SDK, v4.5.1
export mxmlc=<PATH_TO>/flex_sdk_4.5.1.21328_mpl/bin/mxmlc
cd ./flowplayer # this repository
make flash
Reporting bugs
Please read the contributing guidelines before reporting issues or submitting patches.
Running tests
Our automated test suite is sponsored by BrowserStack. Thanks you!
Running locally
Tests are run on BrowserStack
- Install dependencies:
bundle install
- Setup broserstack tunnel:
java -jar features/support/BrowserStackTunnel.jar -f <your tunnel api key> /path/to/flowplayer/repo
- Run cucumber features:
rake username=<browserstack username> key=<broserstack automate api key> base_url=http://<something>.browserstack.com
License
GPL v3 with an ADDITIONAL TERM per GPL Section 7
Copyright (c) 2012 Flowplayer Ltd
Top Related Projects
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Video.js - open source HTML5 video player
:clapper: An extensible media player for the web.
JW Player is the world's most popular embeddable media player.
HTML5 FLV Player
JavaScript player library / DASH & HLS client / MSE-EME player
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot