{"id":1256,"date":"2026-01-01T16:23:38","date_gmt":"2026-01-01T16:23:38","guid":{"rendered":"https:\/\/dcpready.com\/en\/?page_id=1256"},"modified":"2026-02-04T09:44:41","modified_gmt":"2026-02-04T09:44:41","slug":"dcp-size-calculator","status":"publish","type":"page","link":"https:\/\/dcpready.com\/en\/dcp-size-calculator\/","title":{"rendered":"DCP Size Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1256\" class=\"elementor elementor-1256\" data-elementor-settings=\"{&quot;element_pack_global_tooltip_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;element_pack_global_tooltip_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;element_pack_global_tooltip_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true}}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dbe1924 e-flex e-con-boxed e-con e-parent\" data-id=\"dbe1924\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7e93c38 elementor-widget elementor-widget-heading\" data-id=\"7e93c38\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">DCP SIZE CALCULATOR<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-02d0a03 elementor-widget elementor-widget-text-editor\" data-id=\"02d0a03\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"38\" data-end=\"350\">A DCP is not \u201cjust a big video file.\u201d Its size is mainly driven by <strong data-start=\"105\" data-end=\"134\">JPEG 2000 image sequences<\/strong> (one frame per image), wrapped into MXF, plus uncompressed cinema audio. That means two DCPs with the same duration can end up with very different file sizes depending on the technical choices made during mastering.<\/p><p data-start=\"352\" data-end=\"672\">This calculator gives you a practical estimate of <strong data-start=\"402\" data-end=\"432\">how large your DCP will be<\/strong> based on the parameters that matter most: <strong data-start=\"475\" data-end=\"565\">runtime, frame rate, container\/aspect (Flat vs Scope \/ 2K vs 4K), and target data rate<\/strong> (bitrate). It\u2019s useful for planning uploads, delivery drives, and download times for cinemas or festivals.<\/p><h3 data-start=\"674\" data-end=\"704\">What most affects DCP size<\/h3><ul data-start=\"705\" data-end=\"1161\"><li data-start=\"705\" data-end=\"768\"><p data-start=\"707\" data-end=\"768\"><strong data-start=\"707\" data-end=\"720\">Duration:<\/strong> more minutes = more frames and more audio data.<\/p><\/li><li data-start=\"769\" data-end=\"865\"><p data-start=\"771\" data-end=\"865\"><strong data-start=\"771\" data-end=\"792\">Frame rate (fps):<\/strong> higher fps means more frames per second, which typically increases size.<\/p><\/li><li data-start=\"866\" data-end=\"966\"><p data-start=\"868\" data-end=\"966\"><strong data-start=\"868\" data-end=\"895\">Resolution \/ container:<\/strong> 4K generally increases size compared to 2K at similar quality targets.<\/p><\/li><li data-start=\"967\" data-end=\"1050\"><p data-start=\"969\" data-end=\"1050\"><strong data-start=\"969\" data-end=\"999\">Bitrate \/ encoding target:<\/strong> the single biggest lever for JPEG 2000 video size.<\/p><\/li><li data-start=\"1051\" data-end=\"1161\"><p data-start=\"1053\" data-end=\"1161\"><strong data-start=\"1053\" data-end=\"1070\">Audio format:<\/strong> 5.1\/7.1 and multiple language tracks add noticeable weight, especially over long runtimes.<\/p><\/li><\/ul><h3 data-start=\"1163\" data-end=\"1185\">Use the calculator<\/h3><p data-start=\"1186\" data-end=\"1441\">Enter your project details to get an estimated total size. Treat the result as a <strong data-start=\"1267\" data-end=\"1286\">planning number<\/strong> (not an exact final value), since real-world size can vary with encoding settings, content complexity, and how many audio or subtitle assets are included.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8346e06 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"8346e06\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"dcp-size-calculator\" style=\"max-width:840px;margin:0 auto;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.35\">\r\n  <style>\r\n    #dcp-size-calculator .card{border:1px solid #e6e6e6;border-radius:14px;padding:16px;margin:10px 0;box-shadow:0 1px 2px rgba(0,0,0,.04)}\r\n    #dcp-size-calculator h2{font-size:22px;margin:0 0 6px}\r\n    #dcp-size-calculator .grid{display:grid;gap:12px}\r\n    @media(min-width:720px){#dcp-size-calculator .grid{grid-template-columns:repeat(3,1fr)}}\r\n    #dcp-size-calculator label{font-size:13px;color:#333;margin-bottom:4px;display:block}\r\n    #dcp-size-calculator input,#dcp-size-calculator select{width:100%;padding:10px;border:1px solid #d0d0d0;border-radius:10px;font-size:14px}\r\n    #dcp-size-calculator .row{display:flex;gap:12px;align-items:center}\r\n    #dcp-size-calculator .row > div{flex:1}\r\n    #dcp-size-calculator .muted{color:#666;font-size:12px}\r\n    #dcp-size-calculator .result{display:flex;gap:12px;flex-wrap:wrap}\r\n    #dcp-size-calculator .pill{flex:1;min-width:180px;background:#f7f7f9;border:1px solid #ececec;border-radius:12px;padding:14px}\r\n    #dcp-size-calculator .pill h3{margin:0 0 6px;font-size:16px}\r\n    #dcp-size-calculator table{width:100%;border-collapse:collapse;font-size:13px}\r\n    #dcp-size-calculator th,#dcp-size-calculator td{padding:8px;border-bottom:1px solid #eee;text-align:left}\r\n    #dcp-size-calculator .fine{font-variant-numeric:tabular-nums}\r\n    #dcp-size-calculator .inline{display:flex;align-items:center;gap:8px}\r\n    #dcp-size-calculator .switch{display:inline-flex;align-items:center;gap:6px;font-size:13px}\r\n    #dcp-size-calculator .note{font-size:12px;color:#444;margin-top:6px}\r\n    #dcp-size-calculator .btn{display:inline-block;margin-top:8px;padding:8px 12px;border-radius:10px;border:1px solid #ddd;background:#fff;cursor:pointer}\r\n    #dcp-size-calculator .btn:hover{background:#fafafa}\r\n  <\/style>\r\n\r\n  <h2>DCP Size Calculator<\/h2>\r\n  <div class=\"muted\">Estimate based on JPEG2000 image bitrate and PCM audio 24-bit 48 kHz. You can adjust values manually.<\/div>\r\n\r\n  <div class=\"card\">\r\n    <div class=\"grid\">\r\n      <div>\r\n        <label>Duration (minutes)<\/label>\r\n        <input type=\"number\" id=\"durMin\" min=\"0\" step=\"1\" value=\"10\">\r\n      <\/div>\r\n      <div>\r\n        <label>Resolution<\/label>\r\n        <select id=\"res\">\r\n          <option value=\"2KF\">2K Flat 1998\u00d71080<\/option>\r\n          <option value=\"2KS\">2K Scope 2048\u00d7858<\/option>\r\n          <option value=\"4KF\">4K Flat 3996\u00d72160<\/option>\r\n          <option value=\"4KS\">4K Scope 4096\u00d71716<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <div>\r\n        <label>Frame rate<\/label>\r\n        <select id=\"fps\">\r\n          <option>24<\/option>\r\n          <option>25<\/option>\r\n          <option>30<\/option>\r\n          <option>48<\/option>\r\n          <option>50<\/option>\r\n          <option>60<\/option>\r\n        <\/select>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"grid\" style=\"margin-top:12px\">\r\n      <div>\r\n        <label>Image bitrate (Mbps)<\/label>\r\n        <input type=\"number\" id=\"vMbps\" min=\"10\" step=\"10\">\r\n        <div class=\"muted\">Auto-fills from resolution and fps. You can edit it.<\/div>\r\n      <\/div>\r\n      <div>\r\n        <label>PCM channels<\/label>\r\n        <select id=\"ch\">\r\n          <option value=\"2\">2.0<\/option>\r\n          <option value=\"6\" selected>5.1<\/option>\r\n          <option value=\"8\">7.1<\/option>\r\n          <option value=\"10\">9.1<\/option>\r\n          <option value=\"12\">11.1<\/option>\r\n          <option value=\"16\">16 ch<\/option>\r\n          <option value=\"custom\">Custom<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <div id=\"chCustomWrap\" style=\"display:none\">\r\n        <label>Custom PCM channels<\/label>\r\n        <input type=\"number\" id=\"chCustom\" min=\"1\" step=\"1\" value=\"6\">\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"row\" style=\"margin-top:8px\">\r\n      <div class=\"inline\">\r\n        <label>Sample rate<\/label>\r\n        <select id=\"sr\">\r\n          <option value=\"48000\" selected>48 kHz<\/option>\r\n          <option value=\"96000\">96 kHz<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <div class=\"switch\">\r\n        <input type=\"checkbox\" id=\"atmos\">\r\n        <label for=\"atmos\">Dolby Atmos approx. +2 Mbps<\/label>\r\n      <\/div>\r\n      <div class=\"switch\">\r\n        <input type=\"checkbox\" id=\"overhead\" checked>\r\n        <label for=\"overhead\">Add 5% packaging overhead<\/label>\r\n      <\/div>\r\n      <div class=\"switch\">\r\n        <input type=\"checkbox\" id=\"safety\" checked>\r\n        <label for=\"safety\">Add 10% safety margin<\/label>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <button class=\"btn\" id=\"resetBitrate\">Reset suggested bitrate<\/button>\r\n  <\/div>\r\n\r\n  <div class=\"card\">\r\n    <div class=\"result\">\r\n      <div class=\"pill\">\r\n        <h3>Total estimate<\/h3>\r\n        <div class=\"fine\"><strong id=\"totalGiB\">0.00<\/strong> GiB<\/div>\r\n        <div class=\"muted fine\" id=\"totalGB\">(0.00 decimal GB)<\/div>\r\n      <\/div>\r\n      <div class=\"pill\">\r\n        <h3>Breakdown<\/h3>\r\n        <table>\r\n          <tbody>\r\n            <tr><td>Image<\/td><td class=\"fine\" id=\"vSize\">0.00 GiB<\/td><\/tr>\r\n            <tr><td>PCM audio<\/td><td class=\"fine\" id=\"aSize\">0.00 GiB<\/td><\/tr>\r\n            <tr><td>Atmos approx.<\/td><td class=\"fine\" id=\"atmosSize\">0.00 GiB<\/td><\/tr>\r\n            <tr><td>Overhead + margin<\/td><td class=\"fine\" id=\"ohSize\">0.00 GiB<\/td><\/tr>\r\n          <\/tbody>\r\n        <\/table>\r\n        <div class=\"note\">Subtitles and metadata are negligible compared to image and audio.<\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"muted\">Quick notes: 2K at 24\u201330 fps is typically 150 to 250 Mbps. 4K at 24\u201330 fps is typically 300 to 500 Mbps. Typical DCI limit: 2K up to 250 Mbps, 4K up to 500 Mbps.<\/div>\r\n\r\n  <script>\r\n    (function(){\r\n      const durMin = document.getElementById('durMin');\r\n      const res = document.getElementById('res');\r\n      const fps = document.getElementById('fps');\r\n      const vMbps = document.getElementById('vMbps');\r\n      const ch = document.getElementById('ch');\r\n      const chCustomWrap = document.getElementById('chCustomWrap');\r\n      const chCustom = document.getElementById('chCustom');\r\n      const sr = document.getElementById('sr');\r\n      const atmos = document.getElementById('atmos');\r\n      const overhead = document.getElementById('overhead');\r\n      const safety = document.getElementById('safety');\r\n      const resetBitrate = document.getElementById('resetBitrate');\r\n\r\n      const totalGiB = document.getElementById('totalGiB');\r\n      const totalGB = document.getElementById('totalGB');\r\n      const vSize = document.getElementById('vSize');\r\n      const aSize = document.getElementById('aSize');\r\n      const atmosSize = document.getElementById('atmosSize');\r\n      const ohSize = document.getElementById('ohSize');\r\n\r\n      function suggestBitrate(){\r\n        const f = parseInt(fps.value,10);\r\n        const is4K = res.value.startsWith('4');\r\n        let sug;\r\n        if(!is4K){\r\n          \/\/ 2K\r\n          sug = (f <= 30) ? 180 : 250; \/\/ typical 150-250\r\n        }else{\r\n          \/\/ 4K\r\n          sug = (f <= 30) ? 400 : 500; \/\/ typical 300-500\r\n        }\r\n        vMbps.value = sug;\r\n      }\r\n\r\n      function channels(){\r\n        if(ch.value === 'custom') return Math.max(1, parseInt(chCustom.value||'6',10));\r\n        return parseInt(ch.value,10);\r\n      }\r\n\r\n      function mbpsAudio(){\r\n        \/\/ PCM 24-bit: 24 bits * sampleRate * channels\r\n        const sRate = parseInt(sr.value,10);\r\n        const chs = channels();\r\n        \/\/ bits per sec -> Mbps\r\n        const aMbps = (24 * sRate * chs) \/ 1e6;\r\n        return aMbps;\r\n      }\r\n\r\n      function seconds(){\r\n        const m = Math.max(0, parseFloat(durMin.value||'0'));\r\n        return m * 60;\r\n      }\r\n\r\n      function sizeGiBFromMbps(mbps, secs){\r\n        \/\/ Mbps -> bits\/sec. Convert to bytes, then GiB (1024^3)\r\n        const bytes = (mbps * 1e6 \/ 8) * secs;\r\n        return bytes \/ Math.pow(1024,3);\r\n      }\r\n\r\n      function fmt(x){ return (Math.round(x*100)\/100).toFixed(2); }\r\n\r\n      function recalc(){\r\n        const secs = seconds();\r\n        const vRate = Math.max(10, parseFloat(vMbps.value||'0'));\r\n        const aRate = mbpsAudio();\r\n        const atmosRate = atmos.checked ? 2.0 : 0.0; \/\/ common approximation\r\n\r\n        const vGiB = sizeGiBFromMbps(vRate, secs);\r\n        const aGiB = sizeGiBFromMbps(aRate, secs);\r\n        const atmGiB = sizeGiBFromMbps(atmosRate, secs);\r\n\r\n        let subtotal = vGiB + aGiB + atmGiB;\r\n\r\n        let oh = 0;\r\n        if(overhead.checked) oh += subtotal * 0.05; \/\/ packaging, reels, XML, filesystem\r\n        if(safety.checked)  oh += subtotal * 0.10;   \/\/ safety margin\r\n\r\n        const total = subtotal + oh;\r\n\r\n        vSize.textContent = fmt(vGiB) + ' GiB';\r\n        aSize.textContent = fmt(aGiB) + ' GiB';\r\n        atmosSize.textContent = fmt(atmGiB) + ' GiB';\r\n        ohSize.textContent = fmt(oh) + ' GiB';\r\n\r\n        totalGiB.textContent = fmt(total);\r\n        \/\/ decimal GB\r\n        const totalGBdec = total * Math.pow(1024,3) \/ 1e9;\r\n        totalGB.textContent = '(' + fmt(totalGBdec) + ' decimal GB)';\r\n      }\r\n\r\n      \/\/ UI wiring\r\n      [durMin,res,fps,vMbps,ch,chCustom,sr,atmos,overhead,safety].forEach(el=>{\r\n        el.addEventListener('input', recalc);\r\n        el.addEventListener('change', recalc);\r\n      });\r\n\r\n      ch.addEventListener('change', ()=>{\r\n        chCustomWrap.style.display = (ch.value==='custom') ? 'block' : 'none';\r\n        recalc();\r\n      });\r\n\r\n      function onPresetChange(){\r\n        suggestBitrate();\r\n        recalc();\r\n      }\r\n      res.addEventListener('change', onPresetChange);\r\n      fps.addEventListener('change', onPresetChange);\r\n      resetBitrate.addEventListener('click', (e)=>{\r\n        e.preventDefault();\r\n        suggestBitrate();\r\n        recalc();\r\n      });\r\n\r\n      \/\/ init\r\n      suggestBitrate();\r\n      recalc();\r\n    })();\r\n  <\/script>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1603fcd e-flex e-con-boxed e-con e-parent\" data-id=\"1603fcd\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7dd3a5d elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"7dd3a5d\" data-element_type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/dcpready.com\/wp-content\/uploads\/2025\/08\/dcp.webp);\" role=\"img\" aria-label=\"DCPReady digital cinema lab checking a DCP on a projector server\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h2 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tNeed help with a DCP (Digital Cinema Package)?\t\t\t\t\t<\/h2>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__description elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tOne of our specialists can help you and recommend safe settings that balance quality, compatibility, and delivery size.\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item \">\n\t\t\t\t\t<a class=\"elementor-cta__button elementor-button elementor-size-\">\n\t\t\t\t\t\tTalk to a DCP specialist\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>DCP SIZE CALCULATOR A DCP is not \u201cjust a big video file.\u201d Its size is mainly driven by JPEG 2000 image sequences (one frame per image), wrapped into MXF, plus uncompressed cinema audio. That means two DCPs with the same duration can end up with very different file sizes depending on the technical choices made [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1256","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/pages\/1256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/comments?post=1256"}],"version-history":[{"count":13,"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/pages\/1256\/revisions"}],"predecessor-version":[{"id":2414,"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/pages\/1256\/revisions\/2414"}],"wp:attachment":[{"href":"https:\/\/dcpready.com\/en\/wp-json\/wp\/v2\/media?parent=1256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}