From 71d8944a01375d35c0b1e0bc34cf0e1a8b2725b8 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 28 May 2026 15:37:35 -0400 Subject: [PATCH] =?UTF-8?q?fix(worker):=20conform=20=E2=80=94=20use=20afor?= =?UTF-8?q?mat=20for=20channel=20layout=20(ffmpeg=208=20dropped=20aresampl?= =?UTF-8?q?e=20ocl)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ffmpeg 8.x removed the `ocl` shortcut option from aresample (it was a deprecated alias for out_chlayout). The per-segment trim+normalise call errored immediately: [fc#-1] Error applying option 'ocl' to filter 'aresample': Option not found Split the chain: aresample handles the sample rate, aformat asserts + auto-converts to stereo + fltp. aresample=48000,aformat=channel_layouts=stereo:sample_fmts=fltp Co-Authored-By: Claude Opus 4.7 --- services/worker/src/workers/conform.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/worker/src/workers/conform.js b/services/worker/src/workers/conform.js index da2dfc9..2c4e8c4 100644 --- a/services/worker/src/workers/conform.js +++ b/services/worker/src/workers/conform.js @@ -238,7 +238,10 @@ export const conformWorker = async (job) => { `scale=1920:1080:force_original_aspect_ratio=decrease,` + `pad=1920:1080:(ow-iw)/2:(oh-ih)/2,` + `setsar=1,format=yuv420p`, - '-af', 'aresample=48000:ocl=stereo', + // ffmpeg 8.x dropped the `ocl=` shortcut on aresample. Use aformat + // for the channel layout assertion + auto-conversion; aresample + // just sets the rate. + '-af', 'aresample=48000,aformat=channel_layouts=stereo:sample_fmts=fltp', '-c:v', 'libx264', '-preset', 'ultrafast', '-crf', '18', '-pix_fmt', 'yuv420p', '-c:a', 'aac', '-b:a', '320k', '-ar', '48000',