{"id":40140,"date":"2026-06-25T07:00:00","date_gmt":"2026-06-25T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=40140"},"modified":"2026-06-23T10:58:22","modified_gmt":"2026-06-23T17:58:22","slug":"cloudinary-video-player-v4","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4","title":{"rendered":"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery"},"content":{"rendered":"\n<p>Fast-loading pages are no longer a nice-to-have. They shape conversion, engagement, SEO, Core Web Vitals, and the user\u2019s first impression. Adding video makes that challenge harder: A single high-resolution clip can be larger than the rest of the page combined, and a rich video player can add unnecessary JavaScript before the user has interacted with anything.<\/p>\n\n\n\n<p>The latest Cloudinary Video Player (Version 4) focuses directly on that first-load cost \u2014 reducing the initial player weight by 97%, compared to the previous version, to just 4KB. Combined with responsive breakpoints and the new lazy loading player bundle, the player helps pages start lighter, request smarter thumbnail and video renditions, and defer heavier work until the viewers need them.<\/p>\n\n\n\n<p>Two key principles are behind this new version:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Don&#8217;t load the full player before it&#8217;s needed.<\/li>\n\n\n\n<li>Don&#8217;t fetch a video or poster\/thumbnail rendition larger than the display can show.<\/li>\n<\/ul>\n\n\n\n<p>Together, these improvements make video-heavy pages feel faster without developers having to rebuild their integration from scratch.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Right-Sized Videos and Posters<\/h2>\n\n\n\n<p>A 500px wide player on a phone has no business downloading a 4K poster image or video. The new breakpoint option makes the player match what it requests to what it actually renders.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">cloudinary.player(<span class=\"hljs-string\">'player'<\/span>, {\n\n\u00a0\u00a0<span class=\"hljs-attr\">cloudName<\/span>: <span class=\"hljs-string\">'demo'<\/span>,\n\n\u00a0\u00a0<span class=\"hljs-attr\">publicId<\/span>: <span class=\"hljs-string\">'sea_turtle'<\/span>,\n\n\u00a0\u00a0<span class=\"hljs-attr\">breakpoints<\/span>: <span class=\"hljs-literal\">true<\/span>\n\n});<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When breakpoints is enabled, the player:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Measures its own container at construction (<code>clientWidth<\/code>).<\/li>\n\n\n\n<li>Multiplies by an effective DPR, capped at min (<code>maxDpr<\/code>, <code>devicePixelRatio<\/code>, <code>2<\/code>).<\/li>\n\n\n\n<li>Picks the smallest rendition from [640, 848, 1280, 1920, 2560, 3840] that covers that target.<\/li>\n<\/ul>\n\n\n\n<p>The same width is reused for the poster transformation, so a 500px wide phone no longer downloads a 4K still while deciding what video to play.<\/p>\n\n\n\n<p>The renditions aren\u2019t arbitrary. They cover the resolution tiers people actually deliver \u2014 640 (mobile baseline), 848 (\u223c16:9 mobile), 1280 (HD), 1920 (Full HD), 2560 (QHD), 3840 (4K) \u2014 and Cloudinary&#8217;s transformation pipeline handles the encoding on demand. From the player&#8217;s perspective, it&#8217;s a single setting. From the page&#8217;s perspective, it&#8217;s fewer wasted bytes.<\/p>\n\n\n\n<p>This matters for both video and poster performance. Posters are often the first visual frame users see, and they can be surprisingly expensive when served at source resolution. By sizing the poster from the same measured player width, the player improves the &#8220;video card&#8221; experience before playback even starts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Much Lighter First Load<\/h2>\n\n\n\n<p>Right-sized media solves only part of the problem. The page can still pay for a full Video.js-based player \u2014 Cloudinary plugins, analytics, HLS, ABR, UI components \u2014 even when the video sits below the fold and may never be played.<\/p>\n\n\n\n<p>In V4, the default UMD bundle (dist\/player.min.js) is roughly 4 KB. It provides everything the page needs: render a polished placeholder, display the poster, and decide when to load the additional player components.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">cloudinary.player(<span class=\"hljs-string\">'my-video'<\/span>, {\n\n\u00a0\u00a0<span class=\"hljs-attr\">cloudName<\/span>: <span class=\"hljs-string\">'demo'<\/span>,\n\n\u00a0\u00a0<span class=\"hljs-attr\">publicId<\/span>: <span class=\"hljs-string\">'sea_turtle'<\/span>,\n\n\u00a0\u00a0<span class=\"hljs-attr\">lazy<\/span>: <span class=\"hljs-literal\">true<\/span> \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-comment\">\/\/ load on click<\/span>\n\n\u00a0\u00a0<span class=\"hljs-comment\">\/\/ lazy: { loadOnScroll: true }\u00a0 \/\/ load on viewport intersection<\/span>\n\n});<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Before the full player loads, the lightweight shell provides:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A poster image (built from cloudName + publicId, or your explicit URL).<\/li>\n\n\n\n<li>A Video.js-styled big-play button rendered with plain DOM, no Video.js.<\/li>\n\n\n\n<li>An <code>IntersectionObserver<\/code> for <code>loadOnScroll<\/code>.<\/li>\n\n\n\n<li>A deferred proxy as the return value: any method calls you make against it (source(&#8230;), on(&#8230;), play()) are queued and replayed when the player loads.<\/li>\n<\/ul>\n\n\n\n<p>The full ~140 KB player is dynamically imported when the user clicks the placeholder, when the placeholder enters the viewport, or when application code explicitly invokes a method that needs the additional player components. Until that happens, the page loads 4 KB to display the video option, not 140 KB for a player that may not be needed.<\/p>\n\n\n\n<p>This is especially valuable for pages with multiple videos: galleries, product detail pages, landing pages with testimonials, learning portals, and long-form content. Instead of loading every player up front, the page can load the minimum shell and let user intent decide when the full player is worth fetching.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Designed to Preserve Existing Integrations<\/h2>\n\n\n\n<p>The goal is a faster default player experience without forcing teams to rewrite their player setup.<\/p>\n\n\n\n<p>For most usages, existing calls such as <code>cloudinary.videoPlayer(...)<\/code>, <code>cloudinary.player(...)<\/code>, and immediate method calls like <code>player.source(...)<\/code> continue to work. The deferred proxy buffers those calls and replays them on the real VideoPlayer once the full player has loaded.<\/p>\n\n\n\n<p>For code that depends on a truly synchronous VideoPlayer instance \u2014 immediate property reads, instanceof VideoPlayer, or synchronous ready timing \u2014 the full bundle is still available:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-keyword\">import<\/span> cloudinary <span class=\"hljs-keyword\">from<\/span> <span class=\"hljs-string\">'cloudinary-video-player\/full'<\/span>;\n\n<span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-string\">'cloudinary-video-player\/player.min.css'<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>On the CDN, teams can use <code>dist\/player-full.min.js<\/code>. Existing <code>dist\/cld-video-player.min.js<\/code> URLs also keep working as an alias of the full bundle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Putting It Together<\/h2>\n\n\n\n<p>The strongest setup combines all available layers: browser-level media deferral, the player&#8217;s lightweight shell, and Cloudinary&#8217;s responsive delivery.<\/p>\n\n\n\n<p>Recent platform work around <code>loading=\"lazy\"<\/code> for <code>&lt;video><\/code> reinforces how important this direction is. When available in the browser, it can defer media fetches at the HTML level. The player adds the next layers: Don&#8217;t load the full player yet, and when the video is needed, and don&#8217;t request a rendition larger than the slot.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">video<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"hero\"<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"cld-video-player cld-fluid\"<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">poster<\/span>=<span class=\"hljs-string\">\"&lt;https:\/\/res.cloudinary.com\/demo\/video\/upload\/so_0\/sea_turtle.jpg&gt;\"<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">loading<\/span>=<span class=\"hljs-string\">\"lazy\"<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">preload<\/span>=<span class=\"hljs-string\">\"none\"<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">controls<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">muted<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">playsinline<\/span>\n\n\u00a0\u00a0<span class=\"hljs-attr\">width<\/span>=<span class=\"hljs-string\">\"1280\"<\/span>&gt;<\/span>\n\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">video<\/span>&gt;<\/span>\n\ncloudinary.player('hero', {\n\n\u00a0\u00a0cloudName: 'demo',\n\n\u00a0\u00a0publicId: 'sea_turtle',\n\n\u00a0\u00a0lazy: { loadOnScroll: true },\n\n\u00a0\u00a0breakpoints: true\n\n});<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>With this setup, the page:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Parses ~4 KB of player JS (the lazy bundle).<\/li>\n\n\n\n<li>Lets the browser hold off on media fetches via <code>loading=\"lazy\"<\/code> and <code>preload=\"none\"<\/code>.<\/li>\n\n\n\n<li>When the <code>&lt;video><\/code> enters the viewport, the lazy bootstrap fires its <code>IntersectionObserver<\/code>, dynamically imports the player, and chooses a rendition sized to the player&#8217;s container at the user&#8217;s actual DPR.<\/li>\n\n\n\n<li>The poster is fetched at the same rendition width, not the full master.<\/li>\n\n\n\n<li>Bytes only travel for videos that are about to be seen, in a quality matching the screen they&#8217;re about to be seen on.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Where to Take It From Here<\/h2>\n\n\n\n<p>If you maintain pages with many videos below the fold, start with <code>lazy: { loadOnScroll: true }<\/code>. If you serve mobile and desktop from the same template, add breakpoints: true. If you&#8217;re authoring the markup, add <code>loading=\"lazy\"<\/code> and <code>preload=\"none\"<\/code> so the browser can do its share too.<\/p>\n\n\n\n<p>The result is a player that keeps the rich playback experience Cloudinary Video Player is known for, while making the path to first render much lighter.<\/p>\n\n\n\n<p>Bytes you don&#8217;t ship are bytes you don&#8217;t have to optimize. Get started with Cloudinary today by <a href=\"https:\/\/cloudinary.com\/users\/register_free\">signing up for a free account<\/a>.<\/p>\n\n\n<div class=\"wp-block-cloudinary-markdown \"><style>\n    .faqs {padding: 30px 60px; margin-top: 40px; background: var(--color-background-offset); border-radius: 20px;}\n    #frequently_asked_questions {margin-bottom: 20px;}\n    .question {margin-bottom: 20px;}\n<\/style>\n<div class=\"faqs\">\n<h2>Frequently Asked Questions<\/h2>\n<div class=\"question\">\n<p><b>What is Cloudinary Video Player V4?<\/b><\/p>\nCloudinary Video Player V4 is the latest version of Cloudinary&#8217;s video player designed to improve website performance through lazy loading, responsive video delivery, and a lightweight 4 KB initial JavaScript bundle. It helps developers reduce page weight while maintaining advanced playback features.\n<\/div>\n<div class=\"question\">\n<p><b>How does Cloudinary Video Player V4 improve page speed?<\/b><\/p>\nCloudinary Video Player V4 reduces initial JavaScript payloads by approximately 97% compared to previous versions. Instead of loading the full player immediately, it loads a lightweight bootstrap shell and dynamically imports the complete player only when needed.\n<\/div>\n<div class=\"question\">\n<p><b>What is lazy loading in Cloudinary Video Player?<\/b><\/p>\nLazy loading allows the player to defer loading the full video player until a user interacts with the video or the video enters the viewport. This reduces unnecessary network requests and improves page load performance.\n<\/div>\n<div class=\"question\">\n<p><b>Can Cloudinary Video Player V4 help improve Core Web Vitals?<\/b><\/p>\nYes. By reducing JavaScript execution, deferring player loading, and serving right-sized media assets, Cloudinary Video Player V4 can contribute to improvements in Core Web Vitals metrics such as Largest Contentful Paint (LCP), Interaction to Next Paint (INP), and overall page performance.\n<\/div>\n<div class=\"question\">\n<p><b>How does Cloudinary Video Player V4 compare to traditional video player implementations?<\/b><\/p>\nTraditional video players often load complete player libraries during page initialization, even when videos are never viewed. Cloudinary Video Player V4 uses a lightweight shell, dynamic imports, and responsive media delivery to reduce unnecessary downloads and improve performance.\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Fast-loading pages are no longer a nice-to-have. They shape conversion, engagement, SEO, Core Web Vitals, and the user\u2019s first impression. Adding video makes that challenge harder: A single high-resolution clip can be larger than the rest of the page combined, and a rich video player can add unnecessary JavaScript before the user has interacted with [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":40143,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[303,310],"class_list":["post-40140","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-video","tag-video-player"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Cloudinary Video Player V4 Reduces Initial Player Weight by 97%<\/title>\n<meta name=\"description\" content=\"Cloudinary Video Player V4 improves page speed with a 4 KB bootstrap bundle, responsive video breakpoints, and optimized delivery for faster video experiences.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery\" \/>\n<meta property=\"og:description\" content=\"Cloudinary Video Player V4 improves page speed with a 4 KB bootstrap bundle, responsive video breakpoints, and optimized delivery for faster video experiences.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-25T14:00:00+00:00\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery\",\"datePublished\":\"2026-06-25T14:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\"},\"wordCount\":971,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA\",\"keywords\":[\"Video\",\"Video Player\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\",\"url\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\",\"name\":\"Cloudinary Video Player V4 Reduces Initial Player Weight by 97%\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA\",\"datePublished\":\"2026-06-25T14:00:00+00:00\",\"description\":\"Cloudinary Video Player V4 improves page speed with a 4 KB bootstrap bundle, responsive video breakpoints, and optimized delivery for faster video experiences.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA\",\"width\":4000,\"height\":2200},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cloudinary Video Player V4 Reduces Initial Player Weight by 97%","description":"Cloudinary Video Player V4 improves page speed with a 4 KB bootstrap bundle, responsive video breakpoints, and optimized delivery for faster video experiences.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4","og_locale":"en_US","og_type":"article","og_title":"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery","og_description":"Cloudinary Video Player V4 improves page speed with a 4 KB bootstrap bundle, responsive video breakpoints, and optimized delivery for faster video experiences.","og_url":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4","og_site_name":"Cloudinary Blog","article_published_time":"2026-06-25T14:00:00+00:00","author":"melindapham","twitter_card":"summary_large_image","twitter_image":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery","datePublished":"2026-06-25T14:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4"},"wordCount":971,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA","keywords":["Video","Video Player"],"inLanguage":"en-US","copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4","url":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4","name":"Cloudinary Video Player V4 Reduces Initial Player Weight by 97%","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA","datePublished":"2026-06-25T14:00:00+00:00","description":"Cloudinary Video Player V4 improves page speed with a 4 KB bootstrap bundle, responsive video breakpoints, and optimized delivery for faster video experiences.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA","width":4000,"height":2200},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"parsely":{"version":"1.1.0","canonical_url":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4","smart_links":{"inbound":0,"outbound":0},"traffic_boost_suggestions_count":0,"meta":{"@context":"https:\/\/schema.org","@type":"NewsArticle","headline":"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery","url":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA&w=150&h=150&crop=1","image":{"@type":"ImageObject","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA"},"articleSection":"Uncategorized","author":[{"@type":"Person","name":"melindapham"}],"creator":["melindapham"],"publisher":{"@type":"Organization","name":"Cloudinary Blog","logo":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA"},"keywords":["video","video player"],"dateCreated":"2026-06-25T14:00:00Z","datePublished":"2026-06-25T14:00:00Z","dateModified":"2026-06-25T14:00:00Z"},"rendered":"<meta name=\"parsely-title\" content=\"Cloudinary Video Player V4: Faster Pages and Smarter Video Delivery\" \/>\n<meta name=\"parsely-link\" content=\"https:\/\/cloudinary.com\/blog\/cloudinary-video-player-v4\" \/>\n<meta name=\"parsely-type\" content=\"post\" \/>\n<meta name=\"parsely-image-url\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA&w=150&amp;h=150&amp;crop=1\" \/>\n<meta name=\"parsely-pub-date\" content=\"2026-06-25T14:00:00Z\" \/>\n<meta name=\"parsely-section\" content=\"Uncategorized\" \/>\n<meta name=\"parsely-tags\" content=\"video,video player\" \/>\n<meta name=\"parsely-author\" content=\"melindapham\" \/>","tracker_url":"https:\/\/cdn.parsely.com\/keys\/cloudinary.com\/p.js"},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1781121970\/Blog_Blog__Cloudinary_Video_Player_V4\/Blog_Blog__Cloudinary_Video_Player_V4.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/40140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=40140"}],"version-history":[{"count":3,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/40140\/revisions"}],"predecessor-version":[{"id":40144,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/40140\/revisions\/40144"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/40143"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=40140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=40140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=40140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}