import React, {useMemo} from 'react'; import {useVideoConfig, AbsoluteFill, TransitionSeries} from 'remotion'; import * as Fonts from '@remotion/google-fonts'; import transcriptData from './Assets/TextSequences.json'; import Constants from './Assets/Constants.json'; import {TransitionSeries} from '@remotion/transitions'; const defaultText = { fontFamily: 'Luckiest Guy', fontSize: 120, textAlign: 'center', textShadow: '-10px -10px 0 #000, 0 -10px 0 #000, 10px -10px 0 #000, 10px 0 0 #000, 10px 10px 0 #000, 0 10px 0 #000, -10px 10px 0 #000, -10px 0 0 #000', position: 'fixed', fontWeight: 'bolder', color: 'yellow', bottom: '30vh', height: 'fit-content', width: '100%', }; const subtitle = Constants?.text ? { ...defaultText, ...Constants.text, } : defaultText; Fonts.getAvailableFonts() .filter((font) => { return font.fontFamily === subtitle.fontFamily; })[0] .load() .then((font) => font.loadFont()); const TextStream = React.memo(() => { const {fps} = useVideoConfig(); const memoizedTranscriptData = useMemo(() => { return transcriptData; }, []); return ( {memoizedTranscriptData.map((entry, index) => { const delta = entry.end - entry.start < 1 / 30 ? 0.2 : 0; return ( {entry.text} ); })} ); }); const Letter = React.memo(({children, style}) => { return
{children}
; }); export default TextStream;