1import{u as T,r as o,j as e}from"./index-Cnl2vSqt.js";import{S as H}from"./SEOHelmet-DnB_Ebc_.js";import{A as R}from"./AISchemaInjector-C5i6iF3p.js";import{R as k}from"./RelatedTools-9QTHXa3S.js";import{T as P}from"./ToolSchema-V5Swuj-T.js";const p={h264:{name:"H.264 / AVC",qualities:{"streaming-low":{name:"Streaming (low / mobile)",base1080p24:4,target:"YouTube/Vimeo low"},"streaming-std":{name:"Streaming (standard)",base1080p24:8,target:"YouTube recommended"},"streaming-hq":{name:"Streaming (high quality)",base1080p24:16,target:"Premium streaming"},broadcast:{name:"Broadcast",base1080p24:25,target:"EBU/SMPTE broadcast"},archival:{name:"Archival / contribution",base1080p24:50,target:"Mezzanine-level"}}},h265:{name:"H.265 / HEVC",qualities:{"streaming-low":{name:"Streaming (low)",base1080p24:2,target:"Mobile / efficient"},"streaming-std":{name:"Streaming (standard)",base1080p24:5,target:"Apple TV / Netflix"},"streaming-hq":{name:"Streaming (high quality HDR)",base1080p24:12,target:"HDR streaming"},broadcast:{name:"Broadcast UHD",base1080p24:20,target:"UHD broadcast"},archival:{name:"Archival",base1080p24:35,target:"High-quality master"}}},av1:{name:"AV1",qualities:{"streaming-low":{name:"Streaming (low)",base1080p24:1.5,target:"YouTube AV1 low"},"streaming-std":{name:"Streaming (standard)",base1080p24:4,target:"YouTube AV1 standard"},"streaming-hq":{name:"Streaming (high quality)",base1080p24:8,target:"Premium AV1"}}},prores:{name:"Apple ProRes",qualities:{proxy:{name:"422 Proxy",base1080p24:45,target:"Editing proxy"},lt:{name:"422 LT",base1080p24:102,target:"Broadcast lite"},standard:{name:"422",base1080p24:147,target:"Standard broadcast"},hq:{name:"422 HQ",base1080p24:220,target:"Premium broadcast"},master:{name:"4444",base1080p24:330,target:"VFX/master + alpha"}}}},E=[{id:"youtube-1080p",name:"YouTube 1080p",codec:"h264",quality:"streaming-std",res:"1080p",fps:30,note:"Recommended 8 Mbit/s"},{id:"youtube-4k",name:"YouTube 4K",codec:"h264",quality:"streaming-std",res:"4k-uhd",fps:30,note:"Recommended 35â45 Mbit/s"},{id:"youtube-4k-hdr",name:"YouTube 4K HDR",codec:"h265",quality:"streaming-hq",res:"4k-uhd",fps:30,note:"HEVC HDR 44â56 Mbit/s"},{id:"vimeo-1080p",name:"Vimeo 1080p",codec:"h264",quality:"streaming-hq",res:"1080p",fps:30,note:"High quality 16 Mbit/s"},{id:"instagram-feed",name:"Instagram Feed",codec:"h264",quality:"streaming-low",res:"1080p",fps:30,note:"~3.5 Mbit/s"}
1,{id:"tiktok",name:"TikTok",codec:"h264",quality:"streaming-std",res:"1080p",fps:30,note:"~5 Mbit/s"},{id:"netflix-deliv",name:"Netflix delivery",codec:"prores",quality:"hq",res:"4k-uhd",fps:24,note:"ProRes 422 HQ master"},{id:"broadcast-uhd",name:"UHD Broadcast (EBU)",codec:"h265",quality:"broadcast",res:"4k-uhd",fps:50,note:"HEVC ~50 Mbit/s"}],w=[{id:"720p",name:"HD 720p",width:1280,height:720},{id:"1080p",name:"Full HD 1080p",width:1920,height:1080},{id:"2k",name:"2K DCI",width:2048,height:1080},{id:"4k-uhd",name:"4K UHD",width:3840,height:2160},{id:"4k-dci",name:"4K DCI",width:4096,height:2160},{id:"6k",name:"6K",width:6144,height:3240},{id:"8k-uhd",name:"8K UHD",width:7680,height:4320}],M=[23.976,24,25,29.97,30,48,50,59.94,60,120],B=()=>{const{currentLanguage:d}=T(),a=d==="fr",[m,y]=o.useState("h264"),[c,u]=o.useState("streaming-std"),[b,f]=o.useState("1080p"),[g,j]=o.useState(30),l=p[m],v=l.qualities[c]||Object.values(l.qualities)[0],h=w.find(t=>t.id===b),r=o.useMemo(()=>{if(!l||!v||!h)return null;const t=1920*1080,s=24,S=h.width*h.height,n=v.base1080p24*(S/t)*(g/s);return{mbps:n,mbpsLow:n*.7,mbpsHigh:n*1.4,gbPerHour:n*3600/8/1024}},[m,c,b,g]),i=(t,s=1)=>t.toLocaleString(a?"fr-FR":"en-US",{maximumFractionDigits:s}),q=t=>{y(t.codec),u(t.quality),f(t.res),j(t.fps)},N=a?"Calculateur de bitrate vidéo â recommandations par codec et plateforme":"Video bitrate calculator â codec and platform recommendations",x=a?"Trouvez le bitrate optimal en Mbit/s pour H.264, H.265, AV1, ProRes selon votre résolution, framerate et destination (YouTube, Vimeo, Netflix, broadcast).":"Find the optimal bitrate in Mbit/s for H.264, H.265, AV1, ProRes by resolution, framerate and destination (YouTube, Vimeo, Netflix, broadcast).";return e.jsxs(e.Fragment,{children:[e.jsx(H,{title:N,description:x,canonicalPath:a?"/fr/outils/calculateur-bitrate":"/en/tools/bitrate-calculator",language:d}),e.jsx(R,{type:"tool",data:{name:N,description:x,path:window.location.pathname,language:d}}),e.jsx(P,{name:a?"Calculateur de bitrate vidéo":"Video bitrate calculator",description:x,url:a?"https://postproduction.studio/fr/outils/calculateur-bitrate":"https://postproduction.studio/en/tools/bitrate-calculator"}),e.jsxs("div",{className:"max-w-5xl mx-auto px-4 py-12",children:[e.jsxs("header",{className:"mb-10 text-center",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:a?"Calculateur de bitrate":"Bitrate calculator"}),e.jsx("p",{className:"text-lg text-gray-600 max-w-3xl mx-auto",children:a?"Bitrate recommandé selon votre codec, qualité cible, résolution et framerate. Basé sur les guidelines YouTube, Netflix, EBU et SMPTE.":"Recommended bitrate by codec, quality target, resolution and framerate. Based on YouTube, Netflix, EBU and SMPTE guidelines."})]}),e.jsxs("div",{className:"mb-8 bg-gray-50 rounded-lg p-5 border border-gray-200",children:[e.jsx("div",{className:"text-sm font-semibold text-gray-700 mb-3",children:a?"PRÃRÃGLAGES PLATEFORME":"PLATFORM PRESETS"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:E.map(t=>e.jsx("button",{onClick:()=>q(t),className:"text-xs bg-white hover:bg-blue-50 hover:text-blue-700 hover:border-blue-300 text-gray-700 border border-gray-300 px-3 py-1.5 rounded-md transition-colors",children:t.name},t.id))})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"bg-white rounded-xl border border-gray-200 p-6 shadow-sm",children:[e.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:a?"Paramètres":"Parameters"}),e.jsxs("label",{className:"block mb-4",children:[e.jsx("span",{className:"text-sm font-semibold text-gray-700",children:"Codec"}),e.jsx("select",{value:m,onChange:t=>{y(t.target.value);const s=Object.keys(p[t.target.value].qualities)[0];u(s)},className:"mt-1 block w-full rounded-md border-gray-300 border px-3 py-2 bg-white text-gray-900",children:Object.entries(p).map(([t,s])=>e.jsx("option",{value:t,children:s.name},t))})]}),e.jsxs("label",{className:"block mb-4",children:[e.jsx("span",{className:"text-sm font-semibold text-gray-700",children:a?"Qualité / cible":"Quality / target"}),e.jsx("select",{value:c,onChange:t=>u(t.target.value),className:"mt-1 block w-full rounded-md border-gray-300 border px-3 py-2 bg-white text-gray-900",children:Object.entries(l.qualities).map(([t,s])=>e.jsxs("option",{value:t,children:[s.name," â ",s.target]},t))})]}),e.jsxs("label",{className:"block mb-4",children:[e.jsx("span",{className:"text-sm font-semibold text-gray-700",children:a?"Résolution":"Resolution"}),e.jsx("select",{value:b,onChange:t=>f(t.target.value),className:"mt-1 block w-full rounded-md border-gray-300 border px-3 py-2 bg-white text-gray-900",children:w.map(t=>e.jsxs("option",{value:t.id,children:[t.name," (",t.width,"Ã",t.height,")"]},t.id))})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"text-sm font-semibold text-gray-700",children:a?"Framerate":"Frame rate"}),e.jsx("select",{value:g,onChange:t=>j(Number(t.target.value)),className:"mt-1 block w-full rounded-md border-gray-300 border px-3 py-2 bg-white text-gray-900",children:M.map(t=>e.jsxs("option",{value:t,children:[t," fps"]},t))})]})]}),e.jsxs("div",{className:"bg-gradient-to-br from-emerald-50 to-blue-50 rounded-xl border border-emerald-100 p-6",children:[e.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-4",children:a?"Bitrate recommandé":"Recommended bitrate"}),r&&e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm text-gray-600",children:a?"Valeur cible":"Target value"}),e.jsxs("div",{className:"text-3xl sm:text-4xl md:text-5xl font-bold text-emerald-700 break-words",children:[i(r.mbps,1)," ",e.jsx("span",{className:"text-2xl",children:"Mbit/s"})]}),e.jsxs("div",{className:"text-sm text-gray-500 mt-1",children:[i(r.mbps/8,1)," MB/s â ",i(r.gbPerHour,1)," GB/",a?"h":"hr"]})]}),e.jsxs("div",{className:"pt-4 border-t border-emerald-200",children:[e.jsx("div",{className:"text-sm text-gray-600",children:a?"Fourchette acceptable":"Acceptable range"}),e.jsxs("div",{className:"text-xl font-bold text-gray-800",children:[i(r.mbpsLow,1)," â ",i(r.mbpsHigh,1)," Mbit/s"]}),e.jsx("div",{className:"text-xs text-gray-500 mt-1",children:a?"Selon le contenu (mouvement, complexité visuelle)":"Depending on content (motion, visual complexity)"})]})]})]})]}),e.jsx(k,{currentTool:"bitrate-calculator"})]})]})};export{B as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.