Video hosting and streaming for the apps you build
Send a file to one API. We11cloud encodes it, stores it and serves it from the CDN edge closest to each viewer, and the player SDK handles playback in your app.
Private beta. Free while we build it with you.
- Uploading
- Encoding
- Stored
- Streaming
- Nearest edge
- Singapore
- Time to first frame
- 0.42 s
- Rebuffering
- 0.0%
- Watching now
- 1,204
One player SDK for every screen your viewers use
- Web
- React
- Next.js
- iOS
- Android
- React Native
- Flutter
- Vue
Built on open formats
- HLS
- MPEG-DASH
- CMAF
- LL-HLS
- H.264
- HEVC
- AV1
- WebVTT
- Widevine
- FairPlay
From upload to playback in five steps
Each step runs on its own and reports its status, so you can always see where a video is.
24 / 24
1. Upload
Resumable, chunked uploads from the browser, a phone or your server. If the connection drops, the upload continues from where it stopped.
2. Encode
Video encoding builds an adaptive ladder from 240p to 4K in H.264, HEVC and AV1, tuned to the complexity of each scene.
3. Store
The original and every rendition sit in replicated object storage. Older videos move to a cheaper tier automatically.
4. Deliver
HLS and DASH segments are cached across several CDNs, so viewers in Hanoi and in Berlin both get a fast start.
5. Play
The player SDK picks the right quality for each viewer's network and sends playback data to your dashboard.
Storage
Video storage that keeps each file and its versions together
Each video is stored with its renditions, thumbnails, captions and access rules, and you manage all of it through the same API.
Uploads that survive bad networks
Chunked and resumable, sent straight from the client with a short-lived upload URL.
Automatic storage tiers
Videos nobody has watched for 90 days move to cold storage and still play as usual.
Control who can watch
Signed URLs, domain allowlists and expiring tokens keep private libraries private.
Choose your data region
Pick where your originals are stored to meet data residency rules.
Media library
1284 files
1.84 / 5 TB used
48:12Hot tierkeynote-2026.mp4
6.4 GB
04:31Hot tiercourse-intro.mov
820 MB
02:05Hot tierproduct-tour.mp4
410 MB
11:40Cold tierdrone-coast.mov
3.1 GB
06:18Hot tieraurora-timelapse.mp4
1.9 GB
09:02Cold tierdunes-b-roll.mov
2.6 GB
Example data for illustration, not live measurements.
Streaming
Video streaming that starts fast and stays sharp
Viewers leave when the spinner appears. We serve the first segment from nearby, and the player adjusts quality before anyone notices.
Adaptive bitrate
The player switches between 240p and 4K as the network changes, without pausing playback.
Multi-CDN edge
Each viewer's traffic goes through whichever CDN is performing best for them at that moment.
Low-latency live
LL-HLS for events, classes and auctions, where a few seconds of delay make a difference.
Protected content
Widevine, FairPlay and PlayReady DRM, plus token authentication on every request.
Bitrate ladder
- 240p0.4 Mbps
- 480p1.2 Mbps
- 720p3 Mbps
- 1080p6 Mbps
- 1440p10 Mbps
- 4K16 Mbps
Example data for illustration, not live measurements.
Analytics
See how playback went for your viewers
Track startup time, rebuffering, quality changes and drop-off for each video and region, so you catch problems before users report them.
| 00:00 | 0.52 s |
|---|---|
| 02:00 | 0.48 s |
| 04:00 | 0.45 s |
| 06:00 | 0.44 s |
| 08:00 | 0.47 s |
| 10:00 | 0.55 s |
| 12:00 | 0.62 s |
| 14:00 | 0.58 s |
| 16:00 | 0.49 s |
| 18:00 | 0.43 s |
| 20:00 | 0.41 s |
| 22:00 | 0.4 s |
| 24:00 | 0.42 s |
Example data for illustration, not live measurements.
Player SDK
A working video player in about ten lines of code
Install the package and pass a playback ID. You get adaptive streaming, captions and analytics in a player your designers can restyle.
npm install @we11cloud/playerimport { createPlayer } from '@we11cloud/player'
const player = createPlayer('#video', {
playbackId: 'pl_8Hq2xK',
autoplay: 'muted',
captions: ['en', 'vi'],
})
player.on('qualitychange', ({ height }) => {
console.log(`Now playing ${height}p`)
})import { We11Player } from '@we11cloud/player/react'
export function Lesson({ id }: { id: string }) {
return (
<We11Player
playbackId={id}
accentColor="#5b8cff"
onEnded={() => markComplete(id)}
/>
)
}import We11Player
struct LessonView: View {
let playbackId: String
var body: some View {
We11PlayerView(playbackId: playbackId)
.captions([.english, .vietnamese])
.aspectRatio(16 / 9, contentMode: .fit)
}
}import com.we11cloud.player.We11Player
@Composable
fun LessonScreen(playbackId: String) {
We11Player(
playbackId = playbackId,
captions = listOf("en", "vi"),
modifier = Modifier.aspectRatio(16f / 9f),
)
}Built for apps where video is the product

Online learning
Course libraries, private lessons and live classes with progress tracking.

Media and OTT
Video catalogues with DRM, subtitles in many languages and playback on web and mobile.

Commerce
Product videos and live shopping that load as quickly as your product photos.

Social and creator apps
Short clips uploaded from phones and ready to watch a few seconds later.
Pay for what you store and stream
No seat fees and no minimums during the beta.
Frequently asked questions
When can we start using We11cloud?
Which platforms does the player SDK support?
Can we move our existing library?
Where is our data stored?
Do you lock us in?
Build your video product on We11cloud
Tell us what you are building. We will set up your beta workspace and help you ship your first stream.
