From 7beb6bf355332f52ab839e3ae2aeac6db47729fb Mon Sep 17 00:00:00 2001 From: Lara Date: Fri, 6 Nov 2026 07:47:58 +0000 Subject: [PATCH] =?UTF-8?q?render.mjs:=20volle=20Qualit=C3=A4t=20ohne=20ei?= =?UTF-8?q?ngebrannte=20Untertitel=20(Entscheidung=20=E2=80=9Efinal=20ohne?= =?UTF-8?q?=20Untertitel=E2=80=9C),=20Mitmach-=E2=80=9E=3F=E2=80=9C=20blei?= =?UTF-8?q?bt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bisher landeten die Untertitel auch in den fertigen Folgen. Nur noch im Entwurf, mit --untertitel erzwingbar. Der Fingerabdruck enthält die Einstellung, vorhandene volle Szenen werden dadurch neu gerendert. Co-Authored-By: Claude Opus 5.5 --- remotion/src/baukasten/untertitel.tsx | 13 ++++++++++--- remotion/werkzeuge/render.mjs | 7 +++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/remotion/src/baukasten/untertitel.tsx b/remotion/src/baukasten/untertitel.tsx index 9347d98..dae681c 100644 --- a/remotion/src/baukasten/untertitel.tsx +++ b/remotion/src/baukasten/untertitel.tsx @@ -34,12 +34,19 @@ export const Stimmen: React.FC<{zeilen: Geplant[]}> = ({zeilen}) => ( ); // Untertitel (für die Vorschau ohne Ton) und Stimmen. Untertitel lassen sich -// beim Rendern abschalten: --props='{"untertitel": false}' +// beim Rendern abschalten: --props='{"untertitel": false}' (render.mjs macht das in voller Qualität); +// das „?“ der Mitmach-Pausen bleibt auch dann – es ist ein Bildzeichen für die Kinder, kein Text. export const Untertitel: React.FC<{zeilen: Geplant[]}> = ({zeilen}) => { const frame = useCurrentFrame(); - if (getInputProps().untertitel === false) return ; - const z = zeilen.find((l) => l.text && frame >= l.start && frame < l.ende + 6); const frage = zeilen.find((l) => (l.pause ?? 0) >= 2.5 && frame >= l.ende && frame < l.frei); + if (getInputProps().untertitel === false) + return ( + <> + + {frage && } + + ); + const z = zeilen.find((l) => l.text && frame >= l.start && frame < l.ende + 6); return ( <> diff --git a/remotion/werkzeuge/render.mjs b/remotion/werkzeuge/render.mjs index 791c357..6e2ca38 100644 --- a/remotion/werkzeuge/render.mjs +++ b/remotion/werkzeuge/render.mjs @@ -90,14 +90,17 @@ const qualitaet = entwurf ? 'entwurf' : 'voll'; const aus = path.join('out', kuerzel, sprache, qualitaet); fs.mkdirSync(aus, {recursive: true}); const propsDatei = path.join(aus, 'props.json'); -fs.writeFileSync(propsDatei, JSON.stringify({entwurf, sprache})); +// Untertitel nur im Entwurf: in der fertigen Folge sprechen die Aufnahmen, Untertitel kommen je Sprache +// in YouTube Studio (Entscheidung „final ohne Untertitel“). Mit --untertitel trotzdem einbrennen. +const untertitel = entwurf || args.includes('--untertitel'); +fs.writeFileSync(propsDatei, JSON.stringify({entwurf, sprache, untertitel})); const gl = process.platform === 'linux' ? 'swangle' : 'angle'; const teile = []; const start = Date.now(); for (const [i, s] of liste.entries()) { const h = createHash('sha256'); - h.update(basis + qualitaet + s.dauer); + h.update(basis + qualitaet + s.dauer + (untertitel ? '' : ' ohne Untertitel')); hashDatei(h, path.join(ordner, s.datei)); const fp = h.digest('hex'); const datei = path.join(aus, `${s.id}.mp4`);