From 1ffe0a10bd2c98d2c65e9add199bdb88232b9e32 Mon Sep 17 00:00:00 2001 From: Emmanuel Durand Date: Thu, 22 Feb 2024 13:59:58 -0500 Subject: [PATCH] Job compiler: simplify output video name on rendering list of frames When a more complex list of frames is to be rendered (like `1, 4, 5, 10, 15`), simplify the video filename to `{first}-{last}`. Before: `somename-1, 4, 5, 10, 15.mp4` Now: `somename-1-15.mp4` --- CHANGELOG.md | 1 + .../scripts-for-unittest/simple_blender_render.js | 11 ++++++++++- .../job_compilers/scripts/simple_blender_render.js | 11 ++++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 677f6454..ec09ee8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ bugs in actually-released versions. ## 3.5 - in development - Add MQTT support. Flamenco Manager can now send internal events to an MQTT broker. +- Simplify the preview video filename when a complex set of frames rendered ([#104285](https://projects.blender.org/studio/flamenco/issues/104285)). Instead of `video-1, 4, 10.mp4` it is now simply `video-1-10.mp4`. ## 3.4 - released 2024-01-12 diff --git a/internal/manager/job_compilers/scripts-for-unittest/simple_blender_render.js b/internal/manager/job_compilers/scripts-for-unittest/simple_blender_render.js index 8db37ce7..cbe73256 100644 --- a/internal/manager/job_compilers/scripts-for-unittest/simple_blender_render.js +++ b/internal/manager/job_compilers/scripts-for-unittest/simple_blender_render.js @@ -148,8 +148,17 @@ function authorCreateVideoTask(settings, renderDir) { return; } + var frames = `${settings.frames}`; + if (frames.search(',') != -1) { + // Get the first and last frame from the list + const chunks = frameChunker(settings.frames, 1); + const firstFrame = chunks[0]; + const lastFrame = chunks.slice(-1)[0]; + frames = `${firstFrame}-${lastFrame}`; + } + const stem = path.stem(settings.blendfile).replace('.flamenco', ''); - const outfile = path.join(renderDir, `${stem}-${settings.frames}.mp4`); + const outfile = path.join(renderDir, `${stem}-${frames}.mp4`); const outfileExt = guessOutputFileExtension(settings); const task = author.Task('preview-video', 'ffmpeg'); diff --git a/internal/manager/job_compilers/scripts/simple_blender_render.js b/internal/manager/job_compilers/scripts/simple_blender_render.js index d69d4c9d..d4a18672 100644 --- a/internal/manager/job_compilers/scripts/simple_blender_render.js +++ b/internal/manager/job_compilers/scripts/simple_blender_render.js @@ -129,8 +129,17 @@ function authorCreateVideoTask(settings, renderDir) { return; } + var frames = `${settings.frames}`; + if (frames.search(',') != -1) { + // Get the first and last frame from the list + const chunks = frameChunker(settings.frames, 1); + const firstFrame = chunks[0]; + const lastFrame = chunks.slice(-1)[0]; + frames = `${firstFrame}-${lastFrame}`; + } + const stem = path.stem(settings.blendfile).replace('.flamenco', ''); - const outfile = path.join(renderDir, `${stem}-${settings.frames}.mp4`); + const outfile = path.join(renderDir, `${stem}-${frames}.mp4`); const outfileExt = needsPreviews ? ".jpg" : settings.image_file_extension; const task = author.Task('preview-video', 'ffmpeg');