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`);