MCPcopy Create free account
hub / github.com/heygen-com/hyperframes / getEncoderPreset

Function getEncoderPreset

packages/engine/src/services/chunkEncoder.ts:99–131  ·  view source on GitHub ↗
(
  quality: "draft" | "standard" | "high",
  format: "mp4" | "webm" | "mov" = "mp4",
  hdr?: { transfer: HdrTransfer },
)

Source from the content-addressed store, hash-verified

97 * MOV uses ProRes 4444 with alpha for editor-compatible transparency.
98 */
99export function getEncoderPreset(
100 quality: "draft" | "standard" | "high",
101 format: "mp4" | "webm" | "mov" = "mp4",
102 hdr?: { transfer: HdrTransfer },
103): EncoderPreset {
104 const base = ENCODER_PRESETS[quality];
105 if (format === "webm") {
106 return {
107 preset: base.preset === "ultrafast" ? "realtime" : "good",
108 quality: base.quality,
109 codec: "vp9",
110 pixelFormat: "yuva420p",
111 };
112 }
113 if (format === "mov") {
114 return {
115 preset: "4444",
116 quality: base.quality,
117 codec: "prores",
118 pixelFormat: "yuva444p10le",
119 };
120 }
121 if (hdr) {
122 return {
123 preset: base.preset === "ultrafast" ? "fast" : base.preset,
124 quality: base.quality,
125 codec: "h265",
126 pixelFormat: "yuv420p10le",
127 hdr,
128 };
129 }
130 return { ...base, pixelFormat: "yuv420p" };
131}
132
133// Re-export GPU utilities so existing consumers that import from chunkEncoder still work.
134export { detectGpuEncoder, type GpuEncoder } from "../utils/gpuEncoder.js";

Callers 4

executeRenderJobFunction · 0.90
renderChunkFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected