From 3272b19177b243847ef52525d893ca56abf70957 Mon Sep 17 00:00:00 2001 From: Trevor Mears Date: Mon, 19 Jan 2026 15:13:39 -0800 Subject: [PATCH] fix: updated hardware scale filters to explicitly output 8-bit format (nv12), removed conflicting -pix_fmt flag --- server/services/transcodeSession.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/services/transcodeSession.js b/server/services/transcodeSession.js index 7cc6a01..4d6c2f7 100644 --- a/server/services/transcodeSession.js +++ b/server/services/transcodeSession.js @@ -400,12 +400,13 @@ class TranscodeSession extends EventEmitter { if (upscaleMethod === 'hardware' || !useUpscale) { switch (encoder) { case 'nvenc': - // NVIDIA CUDA scaling with Lanczos for upscaling - return `scale_cuda=-2:${height}:interp_algo=lanczos`; + // NVIDIA CUDA scaling with Lanczos + // Force nv12 (8-bit) output to handle 10-bit inputs (fixes "10 bit encode not supported") + return `scale_cuda=-2:${height}:interp_algo=lanczos:format=nv12`; case 'vaapi': return `scale_vaapi=w=-2:h=${height}:format=nv12`; case 'qsv': - return `scale_qsv=w=-2:h=${height}`; + return `scale_qsv=w=-2:h=${height}:format=nv12`; case 'amf': // AMF uses CPU decode, so use software scale return useUpscale ? `scale=-2:${height}:flags=lanczos` : `scale=-2:${height}`; @@ -433,8 +434,7 @@ class TranscodeSession extends EventEmitter { '-preset', 'p4', // Balanced preset (p1=fastest, p7=best) '-rc', 'constqp', // Constant QP mode '-qp', String(qp), - '-bf', '3', // B-frames for better compression - '-pix_fmt', 'yuv420p' // Force 8-bit output for compatibility + '-bf', '3' // B-frames for better compression ); }