├── .editorconfig
├── .github
├── FUNDING.yml
└── ISSUE_TEMPLATE
│ ├── ---feature-request.md
│ ├── --bug-report.md
│ └── -questions---help.md
├── .gitignore
├── CHANGELOG.md
├── README.md
├── demo
├── images
│ └── screenshot.png
└── index.html
├── jsdoc.json
├── lerna.json
├── netlify.toml
├── package.json
├── packages
├── recorder-react-demo
│ ├── .gitignore
│ ├── README.md
│ ├── package.json
│ ├── public
│ │ ├── clapperboard.png
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ ├── logo192.png
│ │ ├── logo512.png
│ │ ├── manifest.json
│ │ └── robots.txt
│ ├── src
│ │ ├── App.css
│ │ ├── App.test.tsx
│ │ ├── App.tsx
│ │ ├── Card
│ │ │ └── Card.tsx
│ │ ├── Clapper1
│ │ │ └── Clapper1.tsx
│ │ ├── Clapper2
│ │ │ └── Clapper2.tsx
│ │ ├── Gallery.tsx
│ │ ├── GalleryItem
│ │ │ ├── GalleryItem.tsx
│ │ │ └── Progress.tsx
│ │ ├── HTMLRecorder.ts
│ │ ├── MotionEffect
│ │ │ └── MotionEffect.tsx
│ │ ├── RenderModal.tsx
│ │ ├── SmokeTransition
│ │ │ └── SmokeTransition.tsx
│ │ ├── SquareTransition
│ │ │ └── SquareTransition.tsx
│ │ ├── global.d.ts
│ │ ├── index.css
│ │ ├── index.tsx
│ │ ├── logo.svg
│ │ ├── react-app-env.d.ts
│ │ ├── reportWebVitals.ts
│ │ ├── setupProxy.js
│ │ └── setupTests.ts
│ ├── test.html
│ └── tsconfig.json
├── recorder
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── rollup.config.js
│ ├── src
│ │ ├── Recorder.ts
│ │ ├── index.cjs.ts
│ │ ├── index.ts
│ │ ├── index.umd.ts
│ │ ├── types.ts
│ │ └── utils.ts
│ ├── test.js
│ ├── test2.js
│ ├── tsconfig.declaration.json
│ └── tsconfig.json
└── render
│ ├── .editorconfig
│ ├── .gitignore
│ ├── .npmignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── examples
│ ├── background.mp3
│ └── index.html
│ ├── index.js
│ ├── jest.config.js
│ ├── package.json
│ ├── rollup.config.js
│ ├── src
│ ├── BinaryRecorder.ts
│ ├── Logger.ts
│ ├── RenderRecorder.ts
│ ├── child.ts
│ ├── index.ts
│ ├── render.ts
│ ├── types.ts
│ └── utils.ts
│ ├── test
│ ├── test.html
│ ├── test.js
│ └── test2.html
│ ├── tsconfig.declaration.json
│ ├── tsconfig.json
│ └── tsconfig.test.json
├── static
└── scripts
│ └── custom.js
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 | root = true
3 |
4 | [{*.js,*.ts}]
5 | charset = utf-8
6 | end_of_line = lf
7 | indent_style = space
8 | indent_size = 4
9 | insert_final_newline = true
10 | max_line_length = 80
11 | trim_trailing_whitespace = true
12 |
13 | [{package.json,.travis.yml}]
14 | indent_style = space
15 | indent_size = 4
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: daybrush # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/---feature-request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "\U0001F680 Feature request"
3 | about: Suggest an idea for this project
4 |
5 | ---
6 |
7 | **Is your feature request related to a problem? Please describe.**
8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9 |
10 | **Describe the solution you'd like**
11 | A clear and concise description of what you want to happen.
12 |
13 | **Describe alternatives you've considered**
14 | A clear and concise description of any alternative solutions or features you've considered.
15 |
16 | **Additional context**
17 | Add any other context or screenshots about the feature request here.
18 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/--bug-report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "\U0001F41BBug report"
3 | about: Create a report to help us improve
4 |
5 | ---
6 | ## Environments
7 | * OS name:
8 | * Scene.js Component Version:
9 | * Component Name (Render, Recorder):
10 | * Component version:
11 | * Testable Address(optional):
12 |
13 | ## Description
14 |
15 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-questions---help.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "❓Questions & Help"
3 | about: I have questions or need help with Scene.js Render or Recorder
4 |
5 | ---
6 |
7 |
8 | ## Environments
9 | * OS name:
10 | * Scene.js Component Version:
11 | * Component Name (Render, Recorder):
12 | * Component version:
13 | * Testable Address(optional):
14 |
15 | ## Description
16 |
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | *.DS_Store
3 | .DS_Store
4 | doc/
5 | dist/
6 | packages/*/dist
7 | demo/dist/
8 | release/
9 | npm-debug.log*
10 | coverage/
11 | jsdoc/
12 | doc/
13 | outjs/
14 | declaration/
15 | build/
16 | .vscode/
17 | rollup-plugin-visualizer/
18 | statistics/
19 | .scene_cache
20 | .scene_ch
21 | *.mp4
22 | *.webm
23 | ffmpeg
24 | scene.js
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to this project will be documented in this file.
4 | See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5 |
6 | ## [0.16.0](https://github.com/daybrush/scenejs-render/compare/0.15.0...0.16.0) (2023-06-19)
7 | ### :sparkles: Packages
8 | * `@scenejs/recorder` 0.15.0
9 | * `@scenejs/render` 0.16.0
10 |
11 |
12 | ### :rocket: New Features
13 |
14 | * `@scenejs/render`
15 | * add logger, noLog, created options #30 ([fd7f5cb](https://github.com/daybrush/scenejs-render/commit/fd7f5cb5948d025193676f44a62b72dca7ab41bd))
16 |
17 |
18 | ### :bug: Bug Fix
19 |
20 | * `@scenejs/render`
21 | * fix default value #27 ([96b42f7](https://github.com/daybrush/scenejs-render/commit/96b42f70d9bc72195491080c4c5ae3e8000e1a7d))
22 | * Other
23 | * fix build script ([d6559d1](https://github.com/daybrush/scenejs-render/commit/d6559d1dc18934244ac5d467903e46b67376ba14))
24 | * fix netlify config ([9054170](https://github.com/daybrush/scenejs-render/commit/9054170375c8dfa4c93c77a6784747463f723b50))
25 |
26 |
27 | ### :memo: Documentation
28 |
29 | * `@scenejs/render`
30 | * fix README ([287bdda](https://github.com/daybrush/scenejs-render/commit/287bddabc010854c9ad5f3d8fbe294a70f11b2e3))
31 | * fix README ([be8c291](https://github.com/daybrush/scenejs-render/commit/be8c291f5d0de37d3975afad79ea85679cc0c17d))
32 | * fix README for node 18 #29 ([ee14b58](https://github.com/daybrush/scenejs-render/commit/ee14b581d940fe98e921f41eb9d41cd55d746c21))
33 | * fix types ([ebc4f62](https://github.com/daybrush/scenejs-render/commit/ebc4f627253916779ed33357f2aa763473bea469))
34 |
35 |
36 | ### :mega: Other
37 |
38 | * `@scenejs/render`
39 | * bump render version ([d5bf670](https://github.com/daybrush/scenejs-render/commit/d5bf6702d4508a80f2c67a3d87bad8fdc7a874ae))
40 | * update version ([d1e5d49](https://github.com/daybrush/scenejs-render/commit/d1e5d49e204757f8a35e1c092c92962dc59402ff))
41 |
42 |
43 |
44 | ## 0.15.0 (2023-01-19)
45 | ### :sparkles: Packages
46 | * `@scenejs/recorder` 0.15.0
47 | * `@scenejs/render` 0.15.0
48 |
49 |
50 | ### :rocket: New Features
51 |
52 | * All
53 | * add recorder ([d84e97a](https://github.com/daybrush/scenejs-render/commit/d84e97a737a08f1f0b39a6cc49b68ad6bfc9b7e6))
54 | * add recorder demo ([4e64808](https://github.com/daybrush/scenejs-render/commit/4e648080b4dd6d13232ad1fe1b388073289b510a))
55 | * add setAnimator options ([048102b](https://github.com/daybrush/scenejs-render/commit/048102b1d2f220367d4262e7aaeffe42141858a1))
56 | * setFetchFile ([4a394d8](https://github.com/daybrush/scenejs-render/commit/4a394d86fcdda6bf1d76492a2b40db900c8fd374))
57 | * `@scenejs/render`
58 | * add ffmpegPath option ([fe3f91b](https://github.com/daybrush/scenejs-render/commit/fe3f91bc11fa99d386f8f27cf2bf15d2f09e34a1))
59 | * add render-core ([94bf5ec](https://github.com/daybrush/scenejs-render/commit/94bf5ec60011d384653129560bf8d4315825b4be))
60 | * use recorder ([b6a9f6d](https://github.com/daybrush/scenejs-render/commit/b6a9f6d919d14563fdebfcbe844dea507c064b7d))
61 | * `@scenejs/recorder`
62 | * add recorder events ([a01b5b6](https://github.com/daybrush/scenejs-render/commit/a01b5b6ce0b72c5bfdbb5eee5e6b4448b46474c8))
63 | * add state ([3fbe8e6](https://github.com/daybrush/scenejs-render/commit/3fbe8e6ac868d22b7e60fc6f78531aa6fc464020))
64 | * Other
65 | * add cache option ([445e2d2](https://github.com/daybrush/scenejs-render/commit/445e2d26e32438f885e3054937d8bd46050595c0))
66 | * add cacheFolder arg #19 ([2491c54](https://github.com/daybrush/scenejs-render/commit/2491c54ab3eb24e317e3104e90ea5923add14727))
67 | * add codec option ([215c559](https://github.com/daybrush/scenejs-render/commit/215c559ee96632e41619aac12db26fb08538b146))
68 | * add ffmpegPath ([c689b10](https://github.com/daybrush/scenejs-render/commit/c689b108dab5a737bba26e4e9455483eb744af73))
69 | * add imageType, alpha ([3ce5d94](https://github.com/daybrush/scenejs-render/commit/3ce5d94b8dcbf4f097cbf54491f38d1e33a53180))
70 | * add input url address ([23b3b8d](https://github.com/daybrush/scenejs-render/commit/23b3b8d7c1d2ac7d1205cebbbebf0e7fc133ad7e))
71 | * add multiprocess option ([7994e00](https://github.com/daybrush/scenejs-render/commit/7994e009a5245c821f73689d695b37a9dceb6e68))
72 | * add referer option ([4426374](https://github.com/daybrush/scenejs-render/commit/442637486dedd44e47ff6d18ec286d5ee4b34776))
73 | * add Renderer module ([e0c9c8c](https://github.com/daybrush/scenejs-render/commit/e0c9c8cff5f3d7317303640656950829e2d974fe))
74 | * add Renederer class ([d6af158](https://github.com/daybrush/scenejs-render/commit/d6af1589637742186bafab057c5e70d207288b67))
75 | * add scale option ([a0974b4](https://github.com/daybrush/scenejs-render/commit/a0974b41e64bb67432fc222488290c3d5ed2454d))
76 | * add useragent ([fccb175](https://github.com/daybrush/scenejs-render/commit/fccb175d8461f7cbf8e3c7c646cfcdddfe58c963))
77 | * fix duration and add iteration option ([3b6fb95](https://github.com/daybrush/scenejs-render/commit/3b6fb95719469ecaf6a9da3c40f625ce9003958e))
78 | * sendMessage for process ([a798cdc](https://github.com/daybrush/scenejs-render/commit/a798cdc490e4b98185d9db74589cab490bae416e))
79 | * support mediascene for mp3 ([fb353fc](https://github.com/daybrush/scenejs-render/commit/fb353fc4ccfe50f8d15eb708d57db0d4918910ea))
80 | * support webm code and add bitrate option ([ec7b638](https://github.com/daybrush/scenejs-render/commit/ec7b6382640b1ed6d61ef478fb01d2c8495257a2))
81 | * update modules ([865bf13](https://github.com/daybrush/scenejs-render/commit/865bf139562702394b69b209358a55291c1e82ed))
82 |
83 |
84 | ### :bug: Bug Fix
85 |
86 | * `@scenejs/recorder`
87 | * fix amix volume #24 ([944b55f](https://github.com/daybrush/scenejs-render/commit/944b55fe32da9ac3149347aa5d7e043e6c19386e))
88 | * fix Recorder accessor ([b9a735a](https://github.com/daybrush/scenejs-render/commit/b9a735a338efe9002f6f68fae04a3db97f03a3bf))
89 | * Other
90 | * add FFMPEG_PATH env ([6e019a4](https://github.com/daybrush/scenejs-render/commit/6e019a418951786c8b639b52bce0664b38ec9133))
91 | * add types ([4108055](https://github.com/daybrush/scenejs-render/commit/41080552c0335996f31b2e7c6186a1ab21021e65))
92 | * change multiprocess to multi ([5c98211](https://github.com/daybrush/scenejs-render/commit/5c9821183ba05698e477b031833318931ab4f938))
93 | * convert TypeScript ([7a836e8](https://github.com/daybrush/scenejs-render/commit/7a836e8abfeac3a1826d98ff55fc532f82c122e3))
94 | * fix audio channel count ([e06d86d](https://github.com/daybrush/scenejs-render/commit/e06d86d9413dbd6a179e590e518226f3135737e0))
95 | * fix build config ([35350c7](https://github.com/daybrush/scenejs-render/commit/35350c7bc5d5c38299e5b0c87e42f70856f67c8e))
96 | * fix default resolution ([67b1a7f](https://github.com/daybrush/scenejs-render/commit/67b1a7f923b01d1898f9a1f503d4b3936c78e701))
97 | * fix exit code and split module ([a050075](https://github.com/daybrush/scenejs-render/commit/a05007549013c2f887693ed13f66083edeac2f0b))
98 | * fix frame number for startTime #15 ([af04ac4](https://github.com/daybrush/scenejs-render/commit/af04ac482c275bc4e5e9e6fe3e006adc9d6d57b6))
99 | * fix lerna options ([4b3b8fd](https://github.com/daybrush/scenejs-render/commit/4b3b8fd89203f30fc63bfe524cbed971b18d8063))
100 | * fix media info ([8fdbb3c](https://github.com/daybrush/scenejs-render/commit/8fdbb3ca9edb4f9b30753029db760f5e69b37b82))
101 | * Fix media url ([0d651e9](https://github.com/daybrush/scenejs-render/commit/0d651e9c47286b9510d0bacc55868693211b6c48))
102 | * fix no sandbox issue #9 ([534c596](https://github.com/daybrush/scenejs-render/commit/534c596ecd262174b98cc583b817df4cab03519c))
103 | * fix openPage bug ([97b6a22](https://github.com/daybrush/scenejs-render/commit/97b6a22188c39984cbabc49f97ae0922f3808edc))
104 | * fix package and add examples ([eab6403](https://github.com/daybrush/scenejs-render/commit/eab64035935da53be1329bf1a9810f4143014d8a))
105 | * fix README ([b27886e](https://github.com/daybrush/scenejs-render/commit/b27886e753bffaa463df1692cfce7fa2afec2a1f))
106 | * fix README ([dbc4c8e](https://github.com/daybrush/scenejs-render/commit/dbc4c8e5cbe1fa2c732cf6fe742aa6e3d9cd10fc))
107 | * fix README ([08f4e66](https://github.com/daybrush/scenejs-render/commit/08f4e664918556740487a43eed8e326018740115))
108 | * fix README ([e6f1ec8](https://github.com/daybrush/scenejs-render/commit/e6f1ec814abfc400383933e2031fa421d55a93d4))
109 | * fix README ([db7ee75](https://github.com/daybrush/scenejs-render/commit/db7ee757824be1f0f5542e6c855da68696434f9e))
110 | * fix recordMedia for updated @scenejs/media ([1a64901](https://github.com/daybrush/scenejs-render/commit/1a64901fcebffc85d15ad84d5a22bf07d0ea03a4))
111 | * fix scale ([c5e551f](https://github.com/daybrush/scenejs-render/commit/c5e551fb6fd63a2cba427976f153ba6be1e44e97))
112 | * fix seeking timing issue #14 ([bd315dc](https://github.com/daybrush/scenejs-render/commit/bd315dcd17621396ca8ec6112b244e002ea8aaf0))
113 | * fix setTime loop ([bc2c46f](https://github.com/daybrush/scenejs-render/commit/bc2c46ff4ee6a3f22c0ee78c72d9db17d78e596a))
114 | * fix type ([33e546c](https://github.com/daybrush/scenejs-render/commit/33e546c3da0abde0294105b9a7be45633f1a3c1c))
115 | * fix types ([d288e38](https://github.com/daybrush/scenejs-render/commit/d288e38fa410c7ce84dba329cf55f76454a28599))
116 | * split modules & functions ([11c0de9](https://github.com/daybrush/scenejs-render/commit/11c0de9e66f6f315729dc8dec5086b6fc7602f00))
117 | * update packages ([e3dd183](https://github.com/daybrush/scenejs-render/commit/e3dd183435c5d5a9ac6d2b326a860671a78a7ccb))
118 |
119 |
120 | ### :memo: Documentation
121 |
122 | * All
123 | * fix README ([25e0795](https://github.com/daybrush/scenejs-render/commit/25e0795c00f1d87bdf6c6625e2f1856052b6f9b6))
124 | * fix README ([9dbae78](https://github.com/daybrush/scenejs-render/commit/9dbae78daaecc0ae08948f56ca44efd83fd911c7))
125 | * fix README ([9d368bf](https://github.com/daybrush/scenejs-render/commit/9d368bff00c679181d5a902c3daeb818a257911d))
126 | * `@scenejs/recorder`
127 | * add docs ([5d27ee9](https://github.com/daybrush/scenejs-render/commit/5d27ee9604af7c84ad824e1a10f9219ac7222989))
128 | * `@scenejs/render`
129 | * fix README ([3352c1c](https://github.com/daybrush/scenejs-render/commit/3352c1cd679d296fdaa2e3878ae99ef51a295f58))
130 | * move paths ([aa10170](https://github.com/daybrush/scenejs-render/commit/aa10170927c415edfa2f0f519a2f71c2449355fc))
131 |
132 |
133 | ### :mega: Other
134 |
135 | * All
136 | * publish packages ([551ae6d](https://github.com/daybrush/scenejs-render/commit/551ae6d9b65c77dcd85307fc8c8eab9ae0129703))
137 | * publish packages ([6278907](https://github.com/daybrush/scenejs-render/commit/6278907961dea2fbce948d83e437c2abcd313f79))
138 | * publish packages ([2eb076e](https://github.com/daybrush/scenejs-render/commit/2eb076ec637830a8a6b226d4999d7fd2b6c41146))
139 | * Other
140 | * remove ffmpeg ([889363a](https://github.com/daybrush/scenejs-render/commit/889363ae3de7419b2f6dd6213a1c1680db777561))
141 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

3 | Scene.js Render
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | 🎬 Make a movie of CSS animation through Scene.js
12 |
13 | Official Site / API / Scene.js / Main Project
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | ## 🎬 How to use
22 | #### Node
23 | It reads a file from Node through a command and records (capture and video process) to create a video (or audio) file.
24 |
25 |
26 | See [**`@scenejs/render` page**](https://github.com/daybrush/scenejs-render/tree/master/packages/render)
27 |
28 | ```bash
29 | $ npm install @scenejs/render
30 | ```
31 |
32 | ```bash
33 | $ npx @scenejs/render -i index.html
34 | ```
35 | #### Programmatically
36 | ```js
37 | const render = require("@scenejs/render");
38 | const options = {
39 | input: "",
40 | name: "scene",
41 | mediaScene: "mediaScene",
42 | output: "