@revideo/create 0.5.11-alpha.1102 → 0.5.11-alpha.1104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/examples/README.md +43 -0
- package/examples/avatar-with-background/package.json +27 -0
- package/examples/avatar-with-background/src/project.meta +31 -0
- package/examples/avatar-with-background/src/project.ts +6 -0
- package/examples/avatar-with-background/src/render.ts +14 -0
- package/examples/avatar-with-background/src/revideo.d.ts +1 -0
- package/examples/avatar-with-background/src/scenes/example.meta +5 -0
- package/examples/avatar-with-background/src/scenes/example.tsx +28 -0
- package/examples/avatar-with-background/tsconfig.json +9 -0
- package/examples/avatar-with-background/vite.config.ts +8 -0
- package/examples/default/README.md +19 -0
- package/examples/default/package.json +20 -0
- package/examples/default/src/project.tsx +56 -0
- package/examples/default/src/render.ts +15 -0
- package/examples/default/tsconfig.json +10 -0
- package/examples/github-stars-celebration/package-lock.json +3833 -0
- package/examples/github-stars-celebration/package.json +24 -0
- package/examples/github-stars-celebration/src/global.css +1 -0
- package/examples/github-stars-celebration/src/project.meta +28 -0
- package/examples/github-stars-celebration/src/project.ts +8 -0
- package/examples/github-stars-celebration/src/render.ts +15 -0
- package/examples/github-stars-celebration/src/revideo.d.ts +1 -0
- package/examples/github-stars-celebration/src/scenes/example.meta +5 -0
- package/examples/github-stars-celebration/src/scenes/example.tsx +51 -0
- package/examples/github-stars-celebration/tsconfig.json +9 -0
- package/examples/github-stars-celebration/vite.config.ts +8 -0
- package/examples/google-cloud-run-parallelized/README.md +127 -0
- package/examples/google-cloud-run-parallelized/render-orchestrator/Dockerfile +56 -0
- package/examples/google-cloud-run-parallelized/render-orchestrator/package.json +22 -0
- package/examples/google-cloud-run-parallelized/render-orchestrator/src/index.ts +72 -0
- package/examples/google-cloud-run-parallelized/render-orchestrator/src/revideo.d.ts +1 -0
- package/examples/google-cloud-run-parallelized/render-orchestrator/tsconfig.json +10 -0
- package/examples/google-cloud-run-parallelized/render-worker/.gcloudignore +17 -0
- package/examples/google-cloud-run-parallelized/render-worker/.puppeteerrc.cjs +9 -0
- package/examples/google-cloud-run-parallelized/render-worker/package.json +30 -0
- package/examples/google-cloud-run-parallelized/render-worker/src/index.ts +45 -0
- package/examples/google-cloud-run-parallelized/render-worker/src/project.meta +31 -0
- package/examples/google-cloud-run-parallelized/render-worker/src/project.ts +6 -0
- package/examples/google-cloud-run-parallelized/render-worker/src/render.ts +14 -0
- package/examples/google-cloud-run-parallelized/render-worker/src/revideo.d.ts +1 -0
- package/examples/google-cloud-run-parallelized/render-worker/src/scenes/example.tsx +30 -0
- package/examples/google-cloud-run-parallelized/render-worker/tsconfig.json +13 -0
- package/examples/google-cloud-run-parallelized/render-worker/vite.config.ts +9 -0
- package/examples/logo.svg +6 -0
- package/examples/logo_dark.svg +6 -0
- package/examples/marketing-templates/README.md +10 -0
- package/examples/marketing-templates/marketing-template/package.json +24 -0
- package/examples/marketing-templates/marketing-template/src/globals.css +0 -0
- package/examples/marketing-templates/marketing-template/src/project.meta +28 -0
- package/examples/marketing-templates/marketing-template/src/project.ts +9 -0
- package/examples/marketing-templates/marketing-template/src/render.ts +15 -0
- package/examples/marketing-templates/marketing-template/src/revideo.d.ts +1 -0
- package/examples/marketing-templates/marketing-template/src/scenes/example.meta +5 -0
- package/examples/marketing-templates/marketing-template/src/scenes/example.tsx +67 -0
- package/examples/marketing-templates/marketing-template/tsconfig.json +9 -0
- package/examples/marketing-templates/marketing-template/vite.config.ts +9 -0
- package/examples/marketing-templates/multiple-videos-in-one/package.json +24 -0
- package/examples/marketing-templates/multiple-videos-in-one/src/project.meta +28 -0
- package/examples/marketing-templates/multiple-videos-in-one/src/project.ts +9 -0
- package/examples/marketing-templates/multiple-videos-in-one/src/render.ts +15 -0
- package/examples/marketing-templates/multiple-videos-in-one/src/revideo.d.ts +1 -0
- package/examples/marketing-templates/multiple-videos-in-one/src/scenes/example.meta +5 -0
- package/examples/marketing-templates/multiple-videos-in-one/src/scenes/example.tsx +122 -0
- package/examples/marketing-templates/multiple-videos-in-one/tsconfig.json +9 -0
- package/examples/marketing-templates/multiple-videos-in-one/vite.config.ts +9 -0
- package/examples/minimal-drag-drop/README.md +29 -0
- package/examples/minimal-drag-drop/next/app/api/render/route.ts +22 -0
- package/examples/minimal-drag-drop/next/app/globals.css +3 -0
- package/examples/minimal-drag-drop/next/app/layout.tsx +25 -0
- package/examples/minimal-drag-drop/next/app/page.tsx +277 -0
- package/examples/minimal-drag-drop/next/next-env.d.ts +5 -0
- package/examples/minimal-drag-drop/next/next.config.mjs +4 -0
- package/examples/minimal-drag-drop/next/package-lock.json +5577 -0
- package/examples/minimal-drag-drop/next/package.json +35 -0
- package/examples/minimal-drag-drop/next/postcss.config.js +6 -0
- package/examples/minimal-drag-drop/next/public/favicon.ico +0 -0
- package/examples/minimal-drag-drop/next/public/next.svg +1 -0
- package/examples/minimal-drag-drop/next/public/vercel.svg +1 -0
- package/examples/minimal-drag-drop/next/tailwind.config.ts +30 -0
- package/examples/minimal-drag-drop/next/tsconfig.json +26 -0
- package/examples/minimal-drag-drop/next/utils/parse.ts +35 -0
- package/examples/minimal-drag-drop/revideo/package-lock.json +3771 -0
- package/examples/minimal-drag-drop/revideo/package.json +24 -0
- package/examples/minimal-drag-drop/revideo/src/global.css +1 -0
- package/examples/minimal-drag-drop/revideo/src/project.meta +28 -0
- package/examples/minimal-drag-drop/revideo/src/project.ts +9 -0
- package/examples/minimal-drag-drop/revideo/src/render.ts +15 -0
- package/examples/minimal-drag-drop/revideo/src/revideo.d.ts +1 -0
- package/examples/minimal-drag-drop/revideo/src/scenes/example.meta +5 -0
- package/examples/minimal-drag-drop/revideo/src/scenes/example.tsx +44 -0
- package/examples/minimal-drag-drop/revideo/tsconfig.json +9 -0
- package/examples/minimal-drag-drop/revideo/vite.config.ts +6 -0
- package/examples/parallelized-aws-lambda/.dockerignore +3 -0
- package/examples/parallelized-aws-lambda/Dockerfile +21 -0
- package/examples/parallelized-aws-lambda/Dockerfile.base +64 -0
- package/examples/parallelized-aws-lambda/README.md +197 -0
- package/examples/parallelized-aws-lambda/revideo-project/.puppeteerrc.cjs +9 -0
- package/examples/parallelized-aws-lambda/revideo-project/package-lock.json +4133 -0
- package/examples/parallelized-aws-lambda/revideo-project/package.json +28 -0
- package/examples/parallelized-aws-lambda/revideo-project/src/lambda.ts +157 -0
- package/examples/parallelized-aws-lambda/revideo-project/src/project.meta +28 -0
- package/examples/parallelized-aws-lambda/revideo-project/src/project.ts +7 -0
- package/examples/parallelized-aws-lambda/revideo-project/src/render.ts +17 -0
- package/examples/parallelized-aws-lambda/revideo-project/src/revideo.d.ts +1 -0
- package/examples/parallelized-aws-lambda/revideo-project/src/scenes/example.meta +5 -0
- package/examples/parallelized-aws-lambda/revideo-project/src/scenes/example.tsx +30 -0
- package/examples/parallelized-aws-lambda/revideo-project/tsconfig.json +10 -0
- package/examples/parallelized-aws-lambda/revideo-project/vite.config.ts +9 -0
- package/examples/reddit-post-video/README.md +84 -0
- package/examples/reddit-post-video/package-lock.json +2941 -0
- package/examples/reddit-post-video/package.json +27 -0
- package/examples/reddit-post-video/src/global.css +1 -0
- package/examples/reddit-post-video/src/metadata.json +576 -0
- package/examples/reddit-post-video/src/project.meta +31 -0
- package/examples/reddit-post-video/src/project.ts +9 -0
- package/examples/reddit-post-video/src/render.ts +157 -0
- package/examples/reddit-post-video/src/revideo.d.ts +1 -0
- package/examples/reddit-post-video/src/scenes/example.meta +5 -0
- package/examples/reddit-post-video/src/scenes/example.tsx +74 -0
- package/examples/reddit-post-video/tsconfig.json +9 -0
- package/examples/reddit-post-video/vite.config.ts +6 -0
- package/examples/rive-explanation-video/README.md +9 -0
- package/examples/rive-explanation-video/package.json +25 -0
- package/examples/rive-explanation-video/src/global.css +1 -0
- package/examples/rive-explanation-video/src/project.meta +31 -0
- package/examples/rive-explanation-video/src/project.ts +8 -0
- package/examples/rive-explanation-video/src/render.ts +15 -0
- package/examples/rive-explanation-video/src/revideo.d.ts +1 -0
- package/examples/rive-explanation-video/src/scenes/example.meta +5 -0
- package/examples/rive-explanation-video/src/scenes/example.tsx +218 -0
- package/examples/rive-explanation-video/tsconfig.json +9 -0
- package/examples/rive-explanation-video/vite.config.ts +8 -0
- package/examples/saas-template/.prettierrc +9 -0
- package/examples/saas-template/README.md +26 -0
- package/examples/saas-template/app/actions.tsx +114 -0
- package/examples/saas-template/app/api/render/route.ts +23 -0
- package/examples/saas-template/app/globals.css +3 -0
- package/examples/saas-template/app/layout.tsx +25 -0
- package/examples/saas-template/app/page.tsx +204 -0
- package/examples/saas-template/next.config.mjs +4 -0
- package/examples/saas-template/package.json +40 -0
- package/examples/saas-template/postcss.config.js +6 -0
- package/examples/saas-template/revideo/global.css +1 -0
- package/examples/saas-template/revideo/project.ts +9 -0
- package/examples/saas-template/revideo/scene.tsx +179 -0
- package/examples/saas-template/tailwind.config.ts +30 -0
- package/examples/saas-template/tsconfig.json +27 -0
- package/examples/saas-template/utils/parse.ts +35 -0
- package/examples/stitching-videos/README.md +7 -0
- package/examples/stitching-videos/package.json +23 -0
- package/examples/stitching-videos/src/project.meta +28 -0
- package/examples/stitching-videos/src/project.ts +20 -0
- package/examples/stitching-videos/src/render.ts +27 -0
- package/examples/stitching-videos/src/revideo.d.ts +1 -0
- package/examples/stitching-videos/src/scenes/example.tsx +30 -0
- package/examples/stitching-videos/tsconfig.json +9 -0
- package/examples/stitching-videos/vite.config.ts +8 -0
- package/examples/three-js-example/README.md +8 -0
- package/examples/three-js-example/package-lock.json +2753 -0
- package/examples/three-js-example/package.json +25 -0
- package/examples/three-js-example/src/components/Three.ts +166 -0
- package/examples/three-js-example/src/global.css +1 -0
- package/examples/three-js-example/src/project.meta +31 -0
- package/examples/three-js-example/src/project.ts +8 -0
- package/examples/three-js-example/src/render.ts +15 -0
- package/examples/three-js-example/src/revideo.d.ts +1 -0
- package/examples/three-js-example/src/scenes/basic3D.meta +5 -0
- package/examples/three-js-example/src/scenes/basic3D.tsx +89 -0
- package/examples/three-js-example/tsconfig.json +9 -0
- package/examples/three-js-example/vite.config.ts +6 -0
- package/examples/youtube-shorts/README.md +65 -0
- package/examples/youtube-shorts/package-lock.json +3881 -0
- package/examples/youtube-shorts/package.json +30 -0
- package/examples/youtube-shorts/src/get-assets.ts +34 -0
- package/examples/youtube-shorts/src/global.css +3 -0
- package/examples/youtube-shorts/src/metadata.json +635 -0
- package/examples/youtube-shorts/src/project.meta +28 -0
- package/examples/youtube-shorts/src/project.ts +9 -0
- package/examples/youtube-shorts/src/render.ts +12 -0
- package/examples/youtube-shorts/src/revideo.d.ts +1 -0
- package/examples/youtube-shorts/src/scenes/example.tsx +224 -0
- package/examples/youtube-shorts/src/utils.ts +123 -0
- package/examples/youtube-shorts/tsconfig.json +9 -0
- package/examples/youtube-shorts/vite.config.ts +8 -0
- package/package.json +9 -9
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export async function parseStream(
|
|
2
|
+
reader: ReadableStreamDefaultReader<Uint8Array>,
|
|
3
|
+
updateProgress: (progress: number) => void,
|
|
4
|
+
) {
|
|
5
|
+
while (true) {
|
|
6
|
+
const {done, value} = await reader.read();
|
|
7
|
+
|
|
8
|
+
const decoded = new TextDecoder('utf-8').decode(value);
|
|
9
|
+
const split = decoded.split('\n');
|
|
10
|
+
|
|
11
|
+
if (done) {
|
|
12
|
+
break;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const event = split[0].slice(6).trim();
|
|
16
|
+
const data = split[1].slice(6).trim();
|
|
17
|
+
|
|
18
|
+
if (event === 'progress') {
|
|
19
|
+
const parsed = JSON.parse(data);
|
|
20
|
+
updateProgress(parsed.progress);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (event === 'completed') {
|
|
24
|
+
const parsed = JSON.parse(data);
|
|
25
|
+
return parsed.downloadLink as string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (event === 'error') {
|
|
29
|
+
console.error(data);
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return '';
|
|
35
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Stitching Together Videos
|
|
2
|
+
|
|
3
|
+
This is a very simple example demonstrating how you can stitch together multiple videos into one. It also includes a transition animation between the videos.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
https://github.com/redotvideo/revideo-examples/assets/122226645/6ec23514-e699-4a17-a9a5-02e7e14b207e
|
|
7
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "stitching-videos",
|
|
3
|
+
"private": true,
|
|
4
|
+
"version": "0.0.0",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"start": "vite",
|
|
7
|
+
"serve": "vite",
|
|
8
|
+
"build": "tsc && vite build",
|
|
9
|
+
"render": "tsc && node dist/render.js"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@revideo/core": "0.5.10",
|
|
13
|
+
"@revideo/2d": "0.5.10",
|
|
14
|
+
"@revideo/renderer": "0.5.10",
|
|
15
|
+
"@revideo/vite-plugin": "0.5.10",
|
|
16
|
+
"@revideo/ffmpeg": "0.5.10"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@revideo/ui": "0.5.10",
|
|
20
|
+
"typescript": "5.5.4",
|
|
21
|
+
"vite": "^4.5"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 0,
|
|
3
|
+
"shared": {
|
|
4
|
+
"background": "rgb(0,0,0)",
|
|
5
|
+
"range": [
|
|
6
|
+
0,
|
|
7
|
+
null
|
|
8
|
+
],
|
|
9
|
+
"size": {
|
|
10
|
+
"x": 1920,
|
|
11
|
+
"y": 1080
|
|
12
|
+
},
|
|
13
|
+
"audioOffset": 0
|
|
14
|
+
},
|
|
15
|
+
"preview": {
|
|
16
|
+
"fps": 30,
|
|
17
|
+
"resolutionScale": 1
|
|
18
|
+
},
|
|
19
|
+
"rendering": {
|
|
20
|
+
"fps": 30,
|
|
21
|
+
"resolutionScale": 1,
|
|
22
|
+
"colorSpace": "srgb",
|
|
23
|
+
"exporter": {
|
|
24
|
+
"name": "@revideo/core/wasm",
|
|
25
|
+
"options": {}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {makeProject} from '@revideo/core';
|
|
2
|
+
import example from './scenes/example?scene';
|
|
3
|
+
|
|
4
|
+
export default makeProject({
|
|
5
|
+
scenes: [example],
|
|
6
|
+
variables: {
|
|
7
|
+
videos: [
|
|
8
|
+
{
|
|
9
|
+
src: "https://revideo-example-assets.s3.amazonaws.com/beach-3.mp4",
|
|
10
|
+
start: 1,
|
|
11
|
+
duration: 6
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
src: "https://revideo-example-assets.s3.amazonaws.com/beach-2.mp4",
|
|
15
|
+
start: 2,
|
|
16
|
+
duration: 10
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {renderVideo} from '@revideo/renderer';
|
|
2
|
+
|
|
3
|
+
async function render() {
|
|
4
|
+
console.log('Rendering video...');
|
|
5
|
+
// This is the main function that renders the video
|
|
6
|
+
const file = await renderVideo({
|
|
7
|
+
projectFile: './src/project.ts',
|
|
8
|
+
variables: {
|
|
9
|
+
videos: [
|
|
10
|
+
{
|
|
11
|
+
src: "https://revideo-example-assets.s3.amazonaws.com/beach-3.mp4",
|
|
12
|
+
start: 1,
|
|
13
|
+
duration: 6
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
src: "https://revideo-example-assets.s3.amazonaws.com/beach-2.mp4",
|
|
17
|
+
start: 2,
|
|
18
|
+
duration: 10
|
|
19
|
+
}
|
|
20
|
+
]},
|
|
21
|
+
settings: {logProgress: true}
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
console.log(`Rendered video to ${file}`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
render();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="@revideo/core/project" />
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { makeScene2D, Video } from '@revideo/2d';
|
|
2
|
+
import {createRef, waitFor, useScene} from '@revideo/core';
|
|
3
|
+
|
|
4
|
+
interface VideoObject {
|
|
5
|
+
src: string;
|
|
6
|
+
start: number;
|
|
7
|
+
duration: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default makeScene2D(function* (view) {
|
|
11
|
+
const videos: VideoObject[] = useScene().variables.get('videos', [])();
|
|
12
|
+
|
|
13
|
+
for(const vid of videos){
|
|
14
|
+
const videoRef = createRef<Video>();
|
|
15
|
+
yield view.add(<Video src={vid.src} time={vid.start} play={true} opacity={0} ref={videoRef} />)
|
|
16
|
+
|
|
17
|
+
if(view.width() / view.height() > videoRef().width() / videoRef().height()){
|
|
18
|
+
videoRef().width("100%");
|
|
19
|
+
} else {
|
|
20
|
+
videoRef().height("100%");
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// this is a fade-out / fade-in transition - the fade-out and in take 0.3 seconds each; just set the opacity of the video tag to 1 and only use yield* waitFor(vid.duration);
|
|
24
|
+
yield* videoRef().opacity(1,0.3);
|
|
25
|
+
yield* waitFor(vid.duration-0.6);
|
|
26
|
+
yield* videoRef().opacity(0,0.3);
|
|
27
|
+
videoRef().pause();
|
|
28
|
+
videoRef().remove();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# 3D Animations with Three JS
|
|
2
|
+
|
|
3
|
+
This example project demonstrates how you can build render 3d animations with [three.js](https://threejs.org/) Revideo.
|
|
4
|
+
|
|
5
|
+
The animation itself in this project is not very complex - its main purpose is to demonstrate how you can use three.js together with Revideo and make use of concepts such as [tweening](https://docs.re.video/tweening/) in 3D.
|
|
6
|
+
|
|
7
|
+
https://github.com/user-attachments/assets/41af8137-e16a-43b3-a3e1-01b9cc9b700b
|
|
8
|
+
|