WordPress will store a video file and hand it to a browser. That is all it does with video. It does not convert your upload into the quality levels a player needs, it does not deliver it from anywhere but your own server, it does not tell you whether anyone watched, and it does not stop a visitor copying the file URL from the page source.
So putting video on a WordPress site means adding four things WordPress has no opinion about: renditions at several bitrates, delivery from a CDN, a player, and control over who watches plus a record of what happened. The four vendors below each supply some of that and none supplies the WordPress side, because they are video hosts first. You pick the host, pick an embed method, and wire the two yourself. That stitching is where the cost sits.
FastPix is the exception. It is a WordPress plugin that does all four jobs inside WordPress, so there is nothing to stitch. What follows is what each vendor gives a WordPress site, checked against their own documentation.
TL;DR
Four video hosts and one native WordPress plugin, scored on what each gives the WordPress side rather than on encoding, which is not where they differ.
The four hosts leave you to wire the WordPress half yourself, and the plugin directory shows how little of it they built: Cloudflare's official plugin was last updated in 2020, Vimeo closed its own, and Wistia's is one line registering an oEmbed provider. FastPix does hosting, delivery, playback, access control and measurement from inside WordPress, and is the only one that moves an existing Media Library without rewriting a post.
What we compared, and why
- Runs inside WordPress. Whether the library, the embed and the settings live in wp-admin or a browser tab elsewhere. It decides who on your team can touch video.
- Plugin maintained. An abandoned plugin is a security decision you make for your visitors, and WordPress.org prints the last update date.
- Moves your Media Library. Whether the vendor ships a tool for video you already have, or you script it yourself.
- Post changes when migrating. Moving a library means every embed saved in your posts has to point somewhere new. A tool can swap the player in as the page renders, leaving the saved markup alone. Without one you edit each post by hand, and those edits cannot be rolled back once revisions age out.
- If you stop paying. Your posts stay, because a post is a database row. The video is what goes, and what fills the gap runs from a poster and link to blank space.
- Playback quality data. Views and stream health are different datasets. Only one says why a viewer left.
- Author uploads, no keys. Whoever publishes video rarely holds the API credentials.
- Access control. A paid lesson and a marketing clip need opposite treatment, so how finely it can be set matters.
- Pricing shape. Per-gigabyte and per-minute billing invert with video length, so the cheaper vendor depends on what you publish.
Every vendor fact below was checked on 25 September 2026 against vendor documentation and the WordPress.org plugin directory. Versions and prices move, so check the current page.
Quick comparison
| FastPix | Bunny Stream | Cloudflare Stream | Wistia | Vimeo | |
|---|---|---|---|---|---|
| Runs inside WordPress | Yes, five screens | Embed only | Embed only | Embed only | Embed only |
| Plugin maintained | Yes, current | Yes, current | No, since 2020 | No, since 2021 | No, closed |
| Moves your Media Library | Yes, revertible | No | No | No | No |
| Post changes when migrating | None, rendered live | N/A, manual | N/A, manual | N/A, manual | N/A, manual |
| If you stop paying | Poster and a link | Not published | Blank, deleted at 30 days | Blank, access lost | Their error state |
| Playback quality data | Yes, with engagement | Views only | Minutes only | Engagement only | Engagement only |
| Author uploads, no keys | Yes, by role | Not published | No | Not published | Not published |
| Access control | Per render, plus DRM | Tokens, plus DRM | Tokens, geo rules | Password, tier-gated | Domain lock |
| Renditions and CDN | Yes | Yes | Yes | Yes | Yes |
| Pricing shape | Per minute | Per GB stored and sent | Per minute stored and sent | Flat plus per seat | Per seat |
Only the bottom two rows are about video. The rest is WordPress, which is where the field separates.
IMAGE SLOT wordpress-plugin-freshness Type: Real screenshot composite, wide landscape (about 16:9) Shows: Three WordPress.org plugin pages side by side, cropped to the metadata sidebar: Cloudflare Stream (5 years, WP 5.6.21), Wistia (4 years, WP 5.1.26), Bunny (last month, WP 6.7). Annotate the staleness banner on the first two. Why here: The central claim, as checkable public evidence. Status: Needs capture, and re-capture before publish.1. FastPix
FastPix does the four jobs from inside WordPress, which is why it holds the rows where the others are blank. It reads your Media Library, maps permissions to WordPress roles, and renders embeds at view time so nothing is written into a post.
The migration tool is the clearest case. It scans your Media Library for video attachments, reports what it found before anything moves, and never edits post content. Existing embeds play from FastPix at render time, and until cleanup any item reverts to its local file. No other vendor here ships that.
The second is data. The others report engagement: views, watch time, sometimes a heatmap. None publishes rebuffering, startup time or error rate. FastPix Video Data records playback quality alongside engagement for the same session, which tells a dull second minute from a stalled one.
The third is roles. An author or editor uploads and manages video without reaching the API credentials, because each capability maps to a WordPress role.
| What it does | Hosts, encodes, delivers, plays, protects and measures video, in wp-admin |
| How it embeds | A block and a shortcode, rendered at view time, never saved into a post |
| Axis | FastPix |
|---|---|
| Runs inside WordPress | Five admin screens, local video registry |
| Adaptive bitrate | Yes, tier chosen per batch |
| Analytics | QoE and engagement, same session |
| Access control | Anyone, Private (RS256 per render), or DRM |
| Migration in | Scan, migrate, verify, revert until cleanup |
| If you leave | No post edited, embeds fall back to poster |
| Pricing shape | Per minute, free plan 10 videos |
Worth knowing before you pick it. The quality tier locks when a file transfers and DRM depends on it, so a batch moved at the wrong tier has to be re-uploaded. Live streaming is feature-flagged off until you enable it. The plugin needs WordPress 6.8 and PHP 8.3.
2. Bunny Stream
Bunny Stream is priced as delivery infrastructure, metered by the gigabyte, and its WordPress plugin is the only one of the four still updated. What that plugin does is embed a video and stop.
| Axis | Bunny Stream |
|---|---|
| Adaptive bitrate | Yes, encoding included free |
| Analytics | Views, watch time, heatmap |
| Access control | Two token layers plus DRM |
| WordPress plugin | Stream block and [bunnycdn_stream_video] shortcode |
| Migration in | No first-party Media Library tool |
| Pricing shape | $0.01/GB stored plus $0.005/GB delivered |
Limitations
- It embeds videos but has no Media Library integration. Its offloader bulk-moves media to Bunny Storage, object storage rather than Bunny Stream
- The offloader requires Bunny DNS, a larger commitment than a video decision implies
- Nothing is published about what happens to your video if you cancel
The CDN-first shape of the product is worked through in Bunny Stream is a CDN with video on it.
3. Cloudflare Stream
Cloudflare Stream is built for engineers working through an API, and its WordPress side has not been touched since 2020. That is on the plugin listing, not an inference.
| Axis | Cloudflare Stream |
|---|---|
| Adaptive bitrate | Yes, encoding always free |
| Analytics | Minutes viewed, 90-day retention |
| Access control | Signed tokens, geo and IP rules |
| WordPress plugin | v1.0.5, last updated 2020 |
| Migration in | API only, you edit posts yourself |
| Pricing shape | $5/1,000 min stored, $1 delivered |
Limitations
- The official plugin sits at v1.0.5, tested up to WordPress 5.6.21, rated 2.8 out of 5, around 200 installs. WordPress.org shows its staleness banner
- One editor block, no classic editor, and it cannot see videos uploaded outside it
- The signed-URL feature it advertises was never implemented, so access control is API-side
- Video is deleted 30 days after a subscription lapses, the harshest exit term here
- Preload and buffering bill as delivery, so the meter runs on video nobody finished
Per-minute billing inverts Bunny's economics: cheaper for long videos watched rarely, dearer for short ones watched often.
4. Wistia
Wistia is aimed at marketing teams and its feature list follows: heatmaps, A/B testing, lead capture. Its WordPress plugin is a single line of code, last touched four years ago.
| Axis | Wistia |
|---|---|
| Adaptive bitrate | Yes, HLS, gated by width |
| Analytics | Heatmaps and A/B, Business tier up |
| Access control | Password on all tiers, more at Enterprise |
| WordPress plugin | oEmbed provider registration only |
| Migration in | No WordPress tool |
| Pricing shape | $79/mo annual Business, plus $25 per seat |
Limitations
- The plugin is a single `wp_oembed_add_provider()` call, v0.10, last updated four years ago, tested to WordPress 5.1.26
- Wistia's help centre calls the plugin actively maintained while saying it "has not been tested with every new version of WordPress", and recommends against oEmbed
- De-branding the player needs the Business tier, which is the first tier most buyers want
- On cancellation you lose access to your media, and Wistia does not guarantee the files stay
The best Wistia alternatives in 2026 covers the platform-level comparison.
5. Vimeo and YouTube
These two are where most WordPress sites start. A YouTube embed costs nothing, and the price is paid elsewhere: your audience finishes on YouTube's site beside YouTube's recommendations, and its terms disclaim any warranty that content you submit stays accessible.
Vimeo sells seats to teams publishing to the web at large. It closed its official WordPress plugin, so the WordPress route is a bare oEmbed.
| Axis | Vimeo |
|---|---|
| Runs inside WordPress | No, oEmbed only |
| Playback quality data | Engagement graphs, no stream health |
| Access control | Domain lock on all tiers, DRM at Enterprise |
| If you stop paying | Videos restricted newest first |
| Pricing shape | Per seat, per month |
Limitations
- The official plugin is closed, so no block, no shortcode, no Media Library awareness
- Lapse a plan and Vimeo restricts videos newest first, at which point, in its own words, "their clip pages and embeds will stop working"
- Private videos still count toward the storage cap, and domain-level privacy can flip to allowing playback nowhere
What each of the four leaves you holding
The pattern is the same across all four, and it is not about video quality. Each is built for a developer embedding a player, then stops at the edge of WordPress, leaving you four jobs.
You wire the embed yourself, with a block from a five-year-old plugin, a shortcode, or a raw oEmbed. You move the library yourself, by API script or by hand. You reconcile two dashboards, neither saying whether the stream played cleanly. And you carry the exit risk, which in three of the four breaks the video on published posts without telling you.
FastPix removes the stitching rather than improving one piece of it. The WordPress plugin holds the library, the embed, the access rules and the playback data in one place, deactivating it edits no post, and the migration tool brings a library across, every item revertible until cleanup.
Move your Media Library across and see what it costs you
The decision most sites get wrong is not which host. It is assuming the library they already have can come along. None of the four has a first-party answer, and the destructive way cannot be undone.
So start with the scan rather than the signup. The FastPix migration tool lists every video attachment and what it would do with each before anything transfers, and every item reverts until cleanup. The free plan covers 10 videos, no card, enough to move one batch and see what comes back.
Frequently Asked Questions (FAQs)
What is the best video hosting for WordPress?
FastPix, because it is the one that does the whole job from inside WordPress: hosting, delivery, playback, access control and measurement, plus the only first-party tool that moves an existing Media Library without rewriting a post. The four video hosts here are built for developers embedding a player, and each stops at the edge of WordPress, leaving you to wire the embed and move the library yourself.
Can I move an existing WordPress Media Library to a video host?
Not with a first-party tool from Bunny, Cloudflare or Wistia. Checked on 25 September 2026, none of the three ships one. Bunny's offloader module moves media to Bunny Storage rather than Bunny Stream. Cloudflare offers an API and you edit posts yourself. Wistia can import from a remote URL but has nothing on the WordPress side. See moving a WordPress Media Library off your server for the verification steps that matter before you delete a local copy.
What happens to my WordPress posts if I stop paying a video host?
It varies more than any other axis. Cloudflare Stream deletes video 30 days after a subscription lapses. Vimeo restricts videos newest first and states that clip pages and embeds stop working. Wistia says you lose access to your media and does not guarantee indefinite storage. Bunny publishes nothing about retention on cancellation. Only FastPix leaves the post itself intact, falling back to a saved poster and link.
Does Cloudflare Stream have a WordPress plugin?
Yes, and it has not been updated in five years. The official plugin sits at version 1.0.5, tested up to WordPress 5.6.21, with a 2.8 out of 5 rating and around 200 active installations. It provides one editor block, does not work in the classic editor, and cannot see videos uploaded outside it. The signed-URL feature its readme advertises was never implemented.
Does WordPress limit how large a video you can upload?
WordPress core sets no video ceiling of its own. The effective limit is the smaller of the PHP upload_max_filesize and post_max_size directives, which is why raising only one changes nothing. The Media screen prints the result and attributes it to your hosting provider. See why WordPress will not let you upload your video.
Do video hosts report playback quality on WordPress?
Mostly no. Of the options here, none of the five non-FastPix routes publishes rebuffering, startup time or playback error rate. They report views, watch time and in some cases a heatmap. That matters when a retention curve drops, because engagement data alone cannot tell you whether viewers left because the content was dull or because the stream stalled. See video QoE metrics explained.






