@revideo/create 0.5.10 → 0.5.11-alpha.1100

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.
Files changed (198) hide show
  1. package/package.json +9 -9
  2. package/examples/README.md +0 -43
  3. package/examples/avatar-with-background/package.json +0 -27
  4. package/examples/avatar-with-background/src/project.meta +0 -31
  5. package/examples/avatar-with-background/src/project.ts +0 -6
  6. package/examples/avatar-with-background/src/render.ts +0 -14
  7. package/examples/avatar-with-background/src/revideo.d.ts +0 -1
  8. package/examples/avatar-with-background/src/scenes/example.meta +0 -5
  9. package/examples/avatar-with-background/src/scenes/example.tsx +0 -28
  10. package/examples/avatar-with-background/tsconfig.json +0 -9
  11. package/examples/avatar-with-background/vite.config.ts +0 -8
  12. package/examples/default/package.json +0 -24
  13. package/examples/default/src/project.meta +0 -31
  14. package/examples/default/src/project.ts +0 -7
  15. package/examples/default/src/render.ts +0 -15
  16. package/examples/default/src/revideo.d.ts +0 -1
  17. package/examples/default/src/scenes/example.tsx +0 -38
  18. package/examples/default/tsconfig.json +0 -9
  19. package/examples/default/vite.config.ts +0 -8
  20. package/examples/github-stars-celebration/package-lock.json +0 -3833
  21. package/examples/github-stars-celebration/package.json +0 -24
  22. package/examples/github-stars-celebration/src/global.css +0 -1
  23. package/examples/github-stars-celebration/src/project.meta +0 -28
  24. package/examples/github-stars-celebration/src/project.ts +0 -8
  25. package/examples/github-stars-celebration/src/render.ts +0 -15
  26. package/examples/github-stars-celebration/src/revideo.d.ts +0 -1
  27. package/examples/github-stars-celebration/src/scenes/example.meta +0 -5
  28. package/examples/github-stars-celebration/src/scenes/example.tsx +0 -51
  29. package/examples/github-stars-celebration/tsconfig.json +0 -9
  30. package/examples/github-stars-celebration/vite.config.ts +0 -8
  31. package/examples/google-cloud-run-parallelized/README.md +0 -127
  32. package/examples/google-cloud-run-parallelized/render-orchestrator/Dockerfile +0 -56
  33. package/examples/google-cloud-run-parallelized/render-orchestrator/package.json +0 -22
  34. package/examples/google-cloud-run-parallelized/render-orchestrator/src/index.ts +0 -72
  35. package/examples/google-cloud-run-parallelized/render-orchestrator/src/revideo.d.ts +0 -1
  36. package/examples/google-cloud-run-parallelized/render-orchestrator/tsconfig.json +0 -10
  37. package/examples/google-cloud-run-parallelized/render-worker/.gcloudignore +0 -17
  38. package/examples/google-cloud-run-parallelized/render-worker/.puppeteerrc.cjs +0 -9
  39. package/examples/google-cloud-run-parallelized/render-worker/package.json +0 -30
  40. package/examples/google-cloud-run-parallelized/render-worker/src/index.ts +0 -45
  41. package/examples/google-cloud-run-parallelized/render-worker/src/project.meta +0 -31
  42. package/examples/google-cloud-run-parallelized/render-worker/src/project.ts +0 -6
  43. package/examples/google-cloud-run-parallelized/render-worker/src/render.ts +0 -14
  44. package/examples/google-cloud-run-parallelized/render-worker/src/revideo.d.ts +0 -1
  45. package/examples/google-cloud-run-parallelized/render-worker/src/scenes/example.tsx +0 -30
  46. package/examples/google-cloud-run-parallelized/render-worker/tsconfig.json +0 -13
  47. package/examples/google-cloud-run-parallelized/render-worker/vite.config.ts +0 -9
  48. package/examples/logo.svg +0 -6
  49. package/examples/logo_dark.svg +0 -6
  50. package/examples/marketing-templates/README.md +0 -10
  51. package/examples/marketing-templates/marketing-template/package.json +0 -24
  52. package/examples/marketing-templates/marketing-template/src/globals.css +0 -0
  53. package/examples/marketing-templates/marketing-template/src/project.meta +0 -28
  54. package/examples/marketing-templates/marketing-template/src/project.ts +0 -9
  55. package/examples/marketing-templates/marketing-template/src/render.ts +0 -15
  56. package/examples/marketing-templates/marketing-template/src/revideo.d.ts +0 -1
  57. package/examples/marketing-templates/marketing-template/src/scenes/example.meta +0 -5
  58. package/examples/marketing-templates/marketing-template/src/scenes/example.tsx +0 -67
  59. package/examples/marketing-templates/marketing-template/tsconfig.json +0 -9
  60. package/examples/marketing-templates/marketing-template/vite.config.ts +0 -9
  61. package/examples/marketing-templates/multiple-videos-in-one/package.json +0 -24
  62. package/examples/marketing-templates/multiple-videos-in-one/src/project.meta +0 -28
  63. package/examples/marketing-templates/multiple-videos-in-one/src/project.ts +0 -9
  64. package/examples/marketing-templates/multiple-videos-in-one/src/render.ts +0 -15
  65. package/examples/marketing-templates/multiple-videos-in-one/src/revideo.d.ts +0 -1
  66. package/examples/marketing-templates/multiple-videos-in-one/src/scenes/example.meta +0 -5
  67. package/examples/marketing-templates/multiple-videos-in-one/src/scenes/example.tsx +0 -122
  68. package/examples/marketing-templates/multiple-videos-in-one/tsconfig.json +0 -9
  69. package/examples/marketing-templates/multiple-videos-in-one/vite.config.ts +0 -9
  70. package/examples/minimal-drag-drop/README.md +0 -27
  71. package/examples/minimal-drag-drop/next/app/api/render/route.ts +0 -22
  72. package/examples/minimal-drag-drop/next/app/globals.css +0 -3
  73. package/examples/minimal-drag-drop/next/app/layout.tsx +0 -25
  74. package/examples/minimal-drag-drop/next/app/page.tsx +0 -277
  75. package/examples/minimal-drag-drop/next/next-env.d.ts +0 -5
  76. package/examples/minimal-drag-drop/next/next.config.mjs +0 -4
  77. package/examples/minimal-drag-drop/next/package-lock.json +0 -5577
  78. package/examples/minimal-drag-drop/next/package.json +0 -35
  79. package/examples/minimal-drag-drop/next/postcss.config.js +0 -6
  80. package/examples/minimal-drag-drop/next/public/favicon.ico +0 -0
  81. package/examples/minimal-drag-drop/next/public/next.svg +0 -1
  82. package/examples/minimal-drag-drop/next/public/vercel.svg +0 -1
  83. package/examples/minimal-drag-drop/next/tailwind.config.ts +0 -30
  84. package/examples/minimal-drag-drop/next/tsconfig.json +0 -26
  85. package/examples/minimal-drag-drop/next/utils/parse.ts +0 -35
  86. package/examples/minimal-drag-drop/revideo/package-lock.json +0 -3771
  87. package/examples/minimal-drag-drop/revideo/package.json +0 -24
  88. package/examples/minimal-drag-drop/revideo/src/global.css +0 -1
  89. package/examples/minimal-drag-drop/revideo/src/project.meta +0 -28
  90. package/examples/minimal-drag-drop/revideo/src/project.ts +0 -9
  91. package/examples/minimal-drag-drop/revideo/src/render.ts +0 -15
  92. package/examples/minimal-drag-drop/revideo/src/revideo.d.ts +0 -1
  93. package/examples/minimal-drag-drop/revideo/src/scenes/example.meta +0 -5
  94. package/examples/minimal-drag-drop/revideo/src/scenes/example.tsx +0 -44
  95. package/examples/minimal-drag-drop/revideo/tsconfig.json +0 -9
  96. package/examples/minimal-drag-drop/revideo/vite.config.ts +0 -6
  97. package/examples/parallelized-aws-lambda/.dockerignore +0 -3
  98. package/examples/parallelized-aws-lambda/Dockerfile +0 -21
  99. package/examples/parallelized-aws-lambda/Dockerfile.base +0 -64
  100. package/examples/parallelized-aws-lambda/README.md +0 -197
  101. package/examples/parallelized-aws-lambda/revideo-project/.puppeteerrc.cjs +0 -9
  102. package/examples/parallelized-aws-lambda/revideo-project/package-lock.json +0 -4133
  103. package/examples/parallelized-aws-lambda/revideo-project/package.json +0 -28
  104. package/examples/parallelized-aws-lambda/revideo-project/src/lambda.ts +0 -157
  105. package/examples/parallelized-aws-lambda/revideo-project/src/project.meta +0 -28
  106. package/examples/parallelized-aws-lambda/revideo-project/src/project.ts +0 -7
  107. package/examples/parallelized-aws-lambda/revideo-project/src/render.ts +0 -17
  108. package/examples/parallelized-aws-lambda/revideo-project/src/revideo.d.ts +0 -1
  109. package/examples/parallelized-aws-lambda/revideo-project/src/scenes/example.meta +0 -5
  110. package/examples/parallelized-aws-lambda/revideo-project/src/scenes/example.tsx +0 -30
  111. package/examples/parallelized-aws-lambda/revideo-project/tsconfig.json +0 -10
  112. package/examples/parallelized-aws-lambda/revideo-project/vite.config.ts +0 -9
  113. package/examples/reddit-post-video/README.md +0 -84
  114. package/examples/reddit-post-video/package-lock.json +0 -2941
  115. package/examples/reddit-post-video/package.json +0 -27
  116. package/examples/reddit-post-video/src/global.css +0 -1
  117. package/examples/reddit-post-video/src/metadata.json +0 -576
  118. package/examples/reddit-post-video/src/project.meta +0 -31
  119. package/examples/reddit-post-video/src/project.ts +0 -9
  120. package/examples/reddit-post-video/src/render.ts +0 -157
  121. package/examples/reddit-post-video/src/revideo.d.ts +0 -1
  122. package/examples/reddit-post-video/src/scenes/example.meta +0 -5
  123. package/examples/reddit-post-video/src/scenes/example.tsx +0 -74
  124. package/examples/reddit-post-video/tsconfig.json +0 -9
  125. package/examples/reddit-post-video/vite.config.ts +0 -6
  126. package/examples/rive-explanation-video/README.md +0 -9
  127. package/examples/rive-explanation-video/package.json +0 -25
  128. package/examples/rive-explanation-video/src/global.css +0 -1
  129. package/examples/rive-explanation-video/src/project.meta +0 -31
  130. package/examples/rive-explanation-video/src/project.ts +0 -8
  131. package/examples/rive-explanation-video/src/render.ts +0 -15
  132. package/examples/rive-explanation-video/src/revideo.d.ts +0 -1
  133. package/examples/rive-explanation-video/src/scenes/example.meta +0 -5
  134. package/examples/rive-explanation-video/src/scenes/example.tsx +0 -218
  135. package/examples/rive-explanation-video/tsconfig.json +0 -9
  136. package/examples/rive-explanation-video/vite.config.ts +0 -8
  137. package/examples/saas-template/.prettierrc +0 -9
  138. package/examples/saas-template/README.md +0 -28
  139. package/examples/saas-template/next/app/actions.tsx +0 -113
  140. package/examples/saas-template/next/app/api/render/route.ts +0 -22
  141. package/examples/saas-template/next/app/globals.css +0 -3
  142. package/examples/saas-template/next/app/layout.tsx +0 -25
  143. package/examples/saas-template/next/app/page.tsx +0 -187
  144. package/examples/saas-template/next/next.config.mjs +0 -4
  145. package/examples/saas-template/next/package.json +0 -34
  146. package/examples/saas-template/next/postcss.config.js +0 -6
  147. package/examples/saas-template/next/public/favicon.ico +0 -0
  148. package/examples/saas-template/next/public/next.svg +0 -1
  149. package/examples/saas-template/next/public/vercel.svg +0 -1
  150. package/examples/saas-template/next/tailwind.config.ts +0 -30
  151. package/examples/saas-template/next/tsconfig.json +0 -26
  152. package/examples/saas-template/next/utils/parse.ts +0 -35
  153. package/examples/saas-template/revideo/package.json +0 -24
  154. package/examples/saas-template/revideo/src/global.css +0 -1
  155. package/examples/saas-template/revideo/src/project.meta +0 -27
  156. package/examples/saas-template/revideo/src/project.ts +0 -9
  157. package/examples/saas-template/revideo/src/render.ts +0 -15
  158. package/examples/saas-template/revideo/src/revideo.d.ts +0 -1
  159. package/examples/saas-template/revideo/src/scenes/example.meta +0 -5
  160. package/examples/saas-template/revideo/src/scenes/example.tsx +0 -178
  161. package/examples/saas-template/revideo/tsconfig.json +0 -9
  162. package/examples/saas-template/revideo/vite.config.ts +0 -6
  163. package/examples/stitching-videos/README.md +0 -7
  164. package/examples/stitching-videos/package.json +0 -23
  165. package/examples/stitching-videos/src/project.meta +0 -28
  166. package/examples/stitching-videos/src/project.ts +0 -20
  167. package/examples/stitching-videos/src/render.ts +0 -27
  168. package/examples/stitching-videos/src/revideo.d.ts +0 -1
  169. package/examples/stitching-videos/src/scenes/example.tsx +0 -30
  170. package/examples/stitching-videos/tsconfig.json +0 -9
  171. package/examples/stitching-videos/vite.config.ts +0 -8
  172. package/examples/three-js-example/README.md +0 -8
  173. package/examples/three-js-example/package-lock.json +0 -2753
  174. package/examples/three-js-example/package.json +0 -25
  175. package/examples/three-js-example/src/components/Three.ts +0 -166
  176. package/examples/three-js-example/src/global.css +0 -1
  177. package/examples/three-js-example/src/project.meta +0 -31
  178. package/examples/three-js-example/src/project.ts +0 -8
  179. package/examples/three-js-example/src/render.ts +0 -15
  180. package/examples/three-js-example/src/revideo.d.ts +0 -1
  181. package/examples/three-js-example/src/scenes/basic3D.meta +0 -5
  182. package/examples/three-js-example/src/scenes/basic3D.tsx +0 -89
  183. package/examples/three-js-example/tsconfig.json +0 -9
  184. package/examples/three-js-example/vite.config.ts +0 -6
  185. package/examples/youtube-shorts/README.md +0 -65
  186. package/examples/youtube-shorts/package-lock.json +0 -3881
  187. package/examples/youtube-shorts/package.json +0 -30
  188. package/examples/youtube-shorts/src/get-assets.ts +0 -34
  189. package/examples/youtube-shorts/src/global.css +0 -3
  190. package/examples/youtube-shorts/src/metadata.json +0 -635
  191. package/examples/youtube-shorts/src/project.meta +0 -28
  192. package/examples/youtube-shorts/src/project.ts +0 -9
  193. package/examples/youtube-shorts/src/render.ts +0 -12
  194. package/examples/youtube-shorts/src/revideo.d.ts +0 -1
  195. package/examples/youtube-shorts/src/scenes/example.tsx +0 -224
  196. package/examples/youtube-shorts/src/utils.ts +0 -123
  197. package/examples/youtube-shorts/tsconfig.json +0 -9
  198. package/examples/youtube-shorts/vite.config.ts +0 -8
@@ -1,157 +0,0 @@
1
- import { createClient } from "@deepgram/sdk";
2
- import { renderVideo } from "@revideo/renderer";
3
- import axios from "axios";
4
- import * as fs from "fs";
5
- import yargs from "yargs";
6
- import { hideBin } from "yargs/helpers";
7
-
8
- export interface Word {
9
- punctuated_word: string;
10
- start: number;
11
- end: number;
12
- }
13
-
14
- export interface MetaData {
15
- audioFile: string;
16
- text: Word[];
17
- textColor: string;
18
- }
19
-
20
- export const deepgramClient = createClient(
21
- process.env.DEEPGRAM_API_KEY,
22
- );
23
-
24
- async function getPostText(postUrl: string) {
25
- const response = await axios.get(postUrl + ".json");
26
- const responseData = response.data;
27
-
28
- return (
29
- responseData[0].data.children[0].data.title +
30
- ".\n" +
31
- responseData[0].data.children[0].data.selftext
32
- );
33
- }
34
-
35
- async function voiceNameToId(voiceName: string): Promise<string | null> {
36
- const url = "https://api.elevenlabs.io/v1/voices";
37
- const headers = {
38
- "Content-Type": "application/json",
39
- "xi-api-key": process.env.ELEVEN_API_KEY,
40
- };
41
-
42
- try {
43
- const response = await axios.get(url, { headers });
44
- const voices = response.data.voices;
45
- const voice = voices.find((v: any) => v.name === voiceName);
46
- return voice ? voice.voice_id : null;
47
- } catch (error) {
48
- console.error("Error fetching voices:", error);
49
- throw error;
50
- }
51
- }
52
-
53
- async function textToSpeech(post: string, voiceId: string, modelId: string) {
54
- const url = `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`;
55
- const headers = {
56
- "Content-Type": "application/json",
57
- "xi-api-key": process.env.ELEVEN_API_KEY,
58
- };
59
- const data = {
60
- model_id: modelId,
61
- text: post,
62
- };
63
-
64
- try {
65
- const response = await axios.post(url, data, {
66
- headers,
67
- responseType: "arraybuffer",
68
- });
69
- return response.data;
70
- } catch (error) {
71
- console.error("Error making text-to-speech request:", error);
72
- throw error;
73
- }
74
- }
75
-
76
- export async function speechToText(filePath: string) {
77
- const { result } = await deepgramClient.listen.prerecorded.transcribeFile(
78
- fs.readFileSync(filePath),
79
- {
80
- model: "nova-2",
81
- smart_format: true,
82
- },
83
- );
84
-
85
- return result;
86
- }
87
-
88
- async function main() {
89
- const argv = await yargs(hideBin(process.argv)).options({
90
- voice: {
91
- alias: "v",
92
- describe: "The name of the eleven labs voice to use",
93
- type: "string",
94
- default: "Sarah",
95
- },
96
- post: {
97
- alias: "p",
98
- describe: "The Reddit post URL",
99
- type: "string",
100
- default:
101
- "https://www.reddit.com/r/TrueOffMyChest/comments/1bllfgk/i_hate_having_old_parents/",
102
- },
103
- textcolor: {
104
- alias: "c",
105
- describe: "color of the text",
106
- type: "string",
107
- default: "red",
108
- },
109
- onlyMetadata: {
110
- alias: "m",
111
- describe: "only save metadata and do not render the video",
112
- type: "boolean",
113
- default: false,
114
- },
115
- }).argv;
116
-
117
- const url = argv.post;
118
- const voiceName = argv.voice;
119
- const textColor = argv.textcolor;
120
-
121
- const post = await getPostText(url);
122
- const voiceId = await voiceNameToId(voiceName);
123
- const ttsRes = await textToSpeech(post, voiceId, "eleven_multilingual_v2");
124
-
125
- await fs.writeFileSync("./output/audio.wav", ttsRes);
126
-
127
- const transcriptionResponse = await speechToText("./output/audio.wav");
128
- const words =
129
- transcriptionResponse.results.channels[0].alternatives[0].words.map(
130
- (word: any) => ({
131
- punctuated_word: word.punctuated_word,
132
- start: word.start,
133
- end: word.end,
134
- }),
135
- );
136
-
137
- const metaData: MetaData = {
138
- audioFile: "./output/audio.wav",
139
- text: words,
140
- textColor: textColor,
141
- };
142
-
143
- fs.writeFileSync("./metadata.json", JSON.stringify(metaData, null, 2));
144
- console.log("saved metadata to ./metadata.json");
145
-
146
- if (!argv.onlyMetadata) {
147
- const file = renderVideo({
148
- projectFile: "./vite.config.ts",
149
- variables: { data: metaData },
150
- settings: { logProgress: true }
151
- });
152
-
153
- console.log(`rendered video to ${file}`)
154
- }
155
- }
156
-
157
- main();
@@ -1 +0,0 @@
1
- /// <reference types="@revideo/core/project" />
@@ -1,5 +0,0 @@
1
- {
2
- "version": 0,
3
- "timeEvents": [],
4
- "seed": 3377806303
5
- }
@@ -1,74 +0,0 @@
1
- import { Audio, Txt, Video, View2D, makeScene2D } from "@revideo/2d";
2
- import { createRef, useScene, waitFor } from "@revideo/core";
3
- import { MetaData, Word } from "../render";
4
-
5
- export default makeScene2D(function* (view) {
6
- const videoRef = createRef<Video>();
7
- const data: MetaData = useScene().variables.get("data", {
8
- audioFile: "hi",
9
- text: [],
10
- textColor: "red",
11
- })();
12
-
13
- yield view.add(
14
- <>
15
- <Video
16
- ref={videoRef}
17
- volume={0}
18
- src={"https://revideo-example-assets.s3.amazonaws.com/minecraft.mp4"}
19
- play={true}
20
- size={"100%"}
21
- />
22
- <Audio src={data.audioFile} play={true} />
23
- </>,
24
- );
25
-
26
- let waitBefore = data.text[0].start;
27
-
28
- for (let i = 0; i < data.text.length; i++) {
29
- const currentClip = data.text[i];
30
- const nextClipStart =
31
- i < data.text.length - 1 ? data.text[i + 1].start : null;
32
- const isLastClip = i === data.text.length - 1;
33
- const waitAfter = isLastClip ? 1 : 0;
34
- yield* displayTextClip(
35
- currentClip,
36
- waitBefore,
37
- waitAfter,
38
- view,
39
- data.textColor,
40
- );
41
- waitBefore = nextClipStart !== null ? nextClipStart - currentClip.end : 0;
42
- }
43
- });
44
-
45
- function* displayTextClip(
46
- textClip: Word,
47
- waitBefore: number,
48
- waitAfter: number,
49
- view: View2D,
50
- textColor: string,
51
- ) {
52
- const textRef = createRef<Txt>();
53
- yield* waitFor(waitBefore);
54
- view.add(
55
- <Txt
56
- fontSize={100}
57
- fontWeight={800}
58
- ref={textRef}
59
- fontFamily={"Raleway"}
60
- textWrap={true}
61
- textAlign={"center"}
62
- fill={textColor}
63
- width={"70%"}
64
- lineWidth={2}
65
- shadowOffset={10}
66
- shadowBlur={30}
67
- shadowColor={"black"}
68
- >
69
- {textClip.punctuated_word}
70
- </Txt>,
71
- );
72
- yield* waitFor(textClip.end - textClip.start + waitAfter);
73
- textRef().remove();
74
- }
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "@revideo/2d/tsconfig.project.json",
3
- "include": ["src"],
4
- "compilerOptions": {
5
- "noEmit": false,
6
- "outDir": "dist",
7
- "module": "CommonJS"
8
- }
9
- }
@@ -1,6 +0,0 @@
1
- import { defineConfig } from "vite";
2
- import motionCanvas from "@revideo/vite-plugin";
3
-
4
- export default defineConfig({
5
- plugins: [motionCanvas()],
6
- });
@@ -1,9 +0,0 @@
1
- # Rive Explanation Video
2
-
3
- This is the code for a small video showing how you can use Rive animations in Revideo using the `<Rive />` component.
4
-
5
-
6
- https://github.com/user-attachments/assets/0302a3c2-65e4-4392-8b6c-90c4a505d23d
7
-
8
-
9
-
@@ -1,25 +0,0 @@
1
- {
2
- "name": "rive-explanation-docs",
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
- "@lezer/javascript": "^1.4.17",
13
- "@revideo/2d": "0.5.10",
14
- "@revideo/core": "0.5.10",
15
- "@revideo/ffmpeg": "0.5.10",
16
- "@revideo/renderer": "0.5.10",
17
- "@revideo/vite-plugin": "0.5.10"
18
- },
19
- "devDependencies": {
20
- "@revideo/cli": "0.5.10",
21
- "@revideo/ui": "0.5.10",
22
- "typescript": "5.5.4",
23
- "vite": "^4.5"
24
- }
25
- }
@@ -1 +0,0 @@
1
- @import url('https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap');
@@ -1,31 +0,0 @@
1
- {
2
- "version": 0,
3
- "shared": {
4
- "background": "rgb(255,255,255)",
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
- "fastStart": true,
27
- "includeAudio": true
28
- }
29
- }
30
- }
31
- }
@@ -1,8 +0,0 @@
1
- import {makeProject} from '@revideo/core';
2
- import example from './scenes/example?scene';
3
-
4
- import './global.css'
5
-
6
- export default makeProject({
7
- scenes: [example],
8
- });
@@ -1,15 +0,0 @@
1
- import {renderVideo} from '@revideo/renderer';
2
-
3
- async function render() {
4
- console.log('Rendering video...');
5
-
6
- // This is the main function that renders the video
7
- const file = await renderVideo({
8
- projectFile: './src/project.ts',
9
- settings: {logProgress: true},
10
- });
11
-
12
- console.log(`Rendered video to ${file}`);
13
- }
14
-
15
- render();
@@ -1 +0,0 @@
1
- /// <reference types="@revideo/core/project" />
@@ -1,5 +0,0 @@
1
- {
2
- "version": 0,
3
- "timeEvents": [],
4
- "seed": 4079423384
5
- }
@@ -1,218 +0,0 @@
1
- import { waitFor, createRef, all, Reference, chain } from '@revideo/core';
2
- import {
3
- Img,
4
- makeScene2D,
5
- Rive,
6
- Txt,
7
- Layout,
8
- LezerHighlighter, Code, word, lines, Rect,
9
- View2D
10
- } from '@revideo/2d';
11
- import {parser} from '@lezer/javascript';
12
- import {tags} from '@lezer/highlight';
13
- import {HighlightStyle} from '@codemirror/language';
14
-
15
- const MyStyle = HighlightStyle.define([
16
- {
17
- tag: tags.comment,
18
- color: '#8E908C',
19
- },
20
- {
21
- tag: [tags.variableName, tags.self, tags.propertyName, tags.attributeName, tags.regexp],
22
- color: '#C82829',
23
- },
24
- {
25
- tag: [tags.number, tags.bool, tags.null],
26
- color: '#F5871F',
27
- },
28
- {
29
- tag: [tags.className, tags.typeName, tags.definition(tags.typeName)],
30
- color: '#C99E00',
31
- },
32
- {
33
- tag: [tags.string, tags.special(tags.brace)],
34
- color: '#718C00',
35
- },
36
- {
37
- tag: tags.operator,
38
- color: '#3E999F',
39
- },
40
- {
41
- tag: [tags.definition(tags.propertyName), tags.function(tags.variableName)],
42
- color: '#4271AE',
43
- },
44
- {
45
- tag: tags.keyword,
46
- color: '#8959A8',
47
- },
48
- {
49
- tag: tags.derefOperator,
50
- color: '#4D4D4C',
51
- },
52
- {
53
- tag: tags.bracket,
54
- color: "grey"
55
- },
56
- {
57
- tag: tags.separator,
58
- color: "grey"
59
- },
60
- {
61
- tag: tags.punctuation,
62
- color: "grey"
63
- },
64
- {
65
- tag: tags.typeOperator,
66
- color: "grey"
67
- }
68
- ]);
69
-
70
- Code.defaultHighlighter = new LezerHighlighter(
71
- parser.configure({
72
- dialect: 'jsx ts',
73
- }),
74
- MyStyle
75
- );
76
-
77
-
78
- export default makeScene2D(function* (view) {
79
-
80
- const textRef = createRef<Txt>();
81
- view.add(
82
- <Txt fontFamily={"Lexend"} fontSize={100} fontWeight={600} ref={textRef}/>
83
- );
84
-
85
- yield* all(textRef().text("Rive Animations in Revideo", 1.25))
86
- yield* all(
87
- textRef().scale(0.75, 0.75),
88
- textRef().position.y(-400, 0.75)
89
- )
90
- yield* waitFor(0.25);
91
-
92
- const codeRef= createRef<Code>();
93
- const videoBoxRef = createRef<Layout>();
94
- view.add(<Layout opacity={0} position={[550, 100]} size={[600, 600]} ref={videoBoxRef} />);
95
- view.add(
96
- <Code
97
- ref={codeRef}
98
- textAlign={"left"}
99
- fontSize={35}
100
- x={-400}
101
- y={100}
102
- opacity={0}
103
- fontFamily={'JetBrains Mono, monospace'}
104
- code={
105
- `export default makeScene2D(function* (view){
106
- yield view.add(
107
- <Img
108
- src={"/sf.png"}
109
- size={["100%", "100%"]}
110
- />
111
- );
112
-
113
- });
114
- `
115
- }/>);
116
-
117
- videoBoxRef().add(
118
- <Img
119
- src={"https://revideo-example-assets.s3.amazonaws.com/sf.png"}
120
- size={[videoBoxRef().width(), videoBoxRef().height()]}
121
- />
122
- );
123
-
124
- yield* all(
125
- codeRef().opacity(1, 0.75),
126
- videoBoxRef().opacity(1, 0.75)
127
- );
128
- yield* waitFor(0.5);
129
-
130
- const riveRef = createRef<Rive>();
131
- videoBoxRef().add(
132
- <Rive
133
- src={"https://revideo-example-assets.s3.amazonaws.com/emoji.riv"}
134
- animationId={1}
135
- size={[600, 600]}
136
- opacity={0}
137
- ref={riveRef}
138
- />
139
- );
140
- yield* all(codeRef().code.insert([8, 0],
141
- `\n yield view.add(
142
- <Rive
143
- src={"/emoji.riv"}
144
- animationId={1}
145
- size={[600, 600]}
146
- />
147
- );\n`, 1),
148
- riveRef().opacity(1, 1)
149
- );
150
-
151
- yield* waitFor(1);
152
-
153
- yield* codeRef().selection(lines(11, 13), 1),
154
- yield replaceRive(videoBoxRef, riveRef)
155
- yield* all(
156
- codeRef().code.replace(word(11, 17, 5), "dog", 2),
157
- codeRef().code.replace(word(13, 17, 3), "900", 2),
158
- );
159
-
160
- yield* codeRef().selection(lines(0, 17), 1);
161
-
162
- yield* waitFor(1);
163
- yield* all(
164
- codeRef().opacity(0, 1),
165
- videoBoxRef().opacity(0, 1),
166
- textRef().opacity(0, 1)
167
- );
168
-
169
- yield* waitFor(0.5);
170
- yield* logoAnimation(view);
171
- });
172
-
173
- function* replaceRive(box: Reference<Layout>, rive: Reference<Rive>){
174
- yield* rive().opacity(0, 1);
175
- rive().remove();
176
-
177
- const riveRef = createRef<Rive>();
178
- box().add(
179
- <Rive
180
- src={"https://revideo-example-assets.s3.amazonaws.com/dog.riv"}
181
- size={[1000, 600]}
182
- opacity={0}
183
- animationId={1}
184
- ref={riveRef}
185
- />
186
- );
187
-
188
- yield* riveRef().opacity(1, 1);
189
- yield* waitFor(5);
190
- }
191
-
192
- function* logoAnimation(view: View2D){
193
- const block1 = createRef<Rect>()
194
- const block2 = createRef<Rect>()
195
- const block3 = createRef<Rect>()
196
- const blocks = createRef<Layout>();
197
- const logoText = createRef<Txt>();
198
- view.add(
199
- <>
200
- <Layout ref={blocks} x={-600}>
201
- <Rect fill={"#151515"} height={60} y={-80} x={-620} width={180} radius={9.3} ref={block1} />
202
- <Rect fill={"#151515"} height={60} width={180} x={-540} radius={9.3} ref={block2} />
203
- <Rect fill={"#151515"} height={60} width={180} x={-460} y={80} radius={9.3} ref={block3} />
204
- <Txt ref={logoText} fontFamily={"Lexend"} x={53+757.5} y={20} fontSize={300} letterSpacing={-4} fontWeight={700} text={""}/>
205
- </Layout>
206
- </>
207
- );
208
-
209
- yield* all(
210
- block1().position.x(-80, 0.5),
211
- chain(waitFor(0.1), block2().position.x(0, 0.4)),
212
- chain(waitFor(0.2), block3().position.x(80, 0.3)),
213
- )
214
-
215
- yield* logoText().text("revideo", 1);
216
-
217
- yield* waitFor(1);
218
- }
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "@revideo/2d/tsconfig.project.json",
3
- "include": ["src"],
4
- "compilerOptions": {
5
- "noEmit": false,
6
- "outDir": "dist",
7
- "module": "CommonJS"
8
- }
9
- }
@@ -1,8 +0,0 @@
1
- import {defineConfig} from 'vite';
2
- import motionCanvas from '@revideo/vite-plugin';
3
-
4
- export default defineConfig({
5
- plugins: [
6
- motionCanvas(),
7
- ],
8
- });
@@ -1,9 +0,0 @@
1
- {
2
- "useTabs": true,
3
- "semi": true,
4
- "singleQuote": true,
5
- "quoteProps": "as-needed",
6
- "trailingComma": "all",
7
- "bracketSpacing": false,
8
- "printWidth": 100
9
- }
@@ -1,28 +0,0 @@
1
- # Revideo Next.js Template
2
-
3
- This is the [Revideo](https://github.com/redotvideo/revideo) NextJS starter
4
- project bootstrapped with `npm init @revideo@latest`.
5
-
6
- ## Getting Started
7
-
8
- First, install the dependencies both in the next/ and the revideo/ directories:
9
-
10
- ```bash
11
- (cd next && npm install) &&
12
- (cd revideo && npm install)
13
- ```
14
-
15
- Then, serve the Revideo project using the CLI:
16
-
17
- ```bash
18
- (cd revideo && npx revideo serve)
19
- ```
20
-
21
- Now you can start your NextJS app using the following command:
22
-
23
- ```bash
24
- (cd next && npm run dev)
25
- ```
26
-
27
- Open [http://localhost:3000](http://localhost:3000) with your browser to see the
28
- result. Happy developing!