|
import {Series} from 'remotion'; |
|
import React from 'react'; |
|
import {Video, staticFile, useVideoConfig} from 'remotion'; |
|
import videoSequences from './Assets/VideoSequences.json'; |
|
import {TransitionSeries} from '@remotion/transitions'; |
|
|
|
const VideoStream = React.memo(() => { |
|
const {fps} = useVideoConfig(); |
|
return ( |
|
<TransitionSeries |
|
style={{ |
|
position: 'absolute', |
|
zIndex: 1, |
|
}} |
|
> |
|
{videoSequences.map((entry, index) => { |
|
return ( |
|
<TransitionSeries.Sequence |
|
key={index} |
|
from={fps * entry.start} |
|
durationInFrames={fps * (entry.end - entry.start)} |
|
> |
|
<VideoX entry={entry} /> |
|
</TransitionSeries.Sequence> |
|
); |
|
})} |
|
</TransitionSeries> |
|
); |
|
}); |
|
|
|
const VideoX = React.memo(({entry}) => { |
|
const {fps} = useVideoConfig(); |
|
return ( |
|
<Video |
|
startFrom={(fps * entry.props.startFrom) / 30} |
|
endAt={(fps * entry.props.endAt) / 30} |
|
volume={(fps * entry.props.volume) / 30} |
|
src={staticFile(entry.name)} |
|
/> |
|
); |
|
}); |
|
|
|
export default VideoStream; |
|
|