Uploadcare allows optimized video streaming with adaptive bitrate streaming, dynamically adjusting video quality based on the viewer’s device capabilities and internet connection speed.
HLS is used as the video delivery protocol, which ensures that end-users always receive the best possible video quality regardless of the type of device used and without unnecessary data consumption.
Upload a video file to the server and instantly receive a link to stream the adaptive video. After processing, the video can be cached like all other files. The file size is determined by the general project settings.
Learn how to enable Adaptive bitrate streaming step by step
in the new Optimize videos guide.
Adaptive bitrate streaming is not supported for files stored in AWS S3 buckets.
Adaptive bitrate streaming is enabled by default for new projects.
For existing projects, you can enable it in the Delivery section.
The feature will be applied to all video files uploaded to this project.
Use uc-video - our solution, powered by Video.js.
Pre-install before starting to work with video:
Connect components from your script file:
Add component in your application markup:
Uploadcare parameters:
cdnCname — Your delivery subdomain. Find it in Delivery.uuid — Unique file identifier assigned when uploading a video.showLogo — Set to "false" to hide the Uploadcare logo.Account type:
*.ucarecd.net) and must include cdnCname.ucarecdn.com domain, where cdnCname is optional (auto-detected).Video.js / HTML attributes:
controls — Display player controlsplaysinline — Prevent fullscreen auto-open on iOSFor a complete list of parameters, see the uc-video package documentation.
Learn more about delivery domains in CDN and Proxy domains.
Use Video.js (an open-source HTML5 player library) or any JS video player that supports HLS.
Pre-install before starting to work with video:
Then start displaying the video file:
:subdomain is your project’s subdomain — find it in Delivery.
If you want to choose the video playback speed, you need to add playbackRates:
An array of numbers strictly greater than 0, where 1 means regular speed (100%), 0.5 means half-speed (50%), 2 means double-speed (200%), etc. For more information about the vjs-playback-rate video playback rate control, see the Video.js Options Reference.
If you use uc-video solution, the quality selector is already built-in.
If you use a different player, it is also possible to implement a quality selector.
First, install:
After that import videojs-hls-quality-selector:
Or you can add it differently:
Restrict access to video links via signed URLs.
Note that this function works when using a custom CNAME.
Check the Analytics tab in the Dashboard for details on CDN traffic and operations performed.