Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cdaein/vite-plugin-ssam-ffmpeg
Export mp4 videos from Ssam
https://github.com/cdaein/vite-plugin-ssam-ffmpeg
Last synced: about 1 month ago
JSON representation
Export mp4 videos from Ssam
- Host: GitHub
- URL: https://github.com/cdaein/vite-plugin-ssam-ffmpeg
- Owner: cdaein
- License: mit
- Created: 2023-02-18T22:35:57.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-15T05:57:49.000Z (9 months ago)
- Last Synced: 2024-05-01T18:01:25.034Z (7 months ago)
- Language: TypeScript
- Homepage:
- Size: 396 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vite-plugin-ssam-ffmpeg
This plugin is created for [Ssam](https://github.com/cdaein/ssam) to export mp4 videos by using `ffmpeg` on the server side.
## Install
```sh
npm i -D vite-plugin-ssam-ffmpeg
```> If you create a Ssam sketch using `npm create ssam@latest`, this plugin is already set up for you.
## How It Works
When the plugin is loaded, it will first check `ffmpeg` is available on the machine. When mp4 recording is initiated from Ssam (client side), the `ssam:ffmpeg` message is sent to the plugin. The ffmpeg process is spawned and `image2pipe` streaming is setup. The plugin then waits for `ssam:ffmpeg-newframe` message, which will be written to the output video. It then sends `ssam:ffmpeg-reqframe` to the client and this will go on until there's no more frame to be recorded. The client finally sends `ssam:ffmpeg-done` message to the plugin which will finalize the encoding process.
To not overwhelm the encoding process, `newframe` and `reqframe` cycle is used. Otherwise, the speed of the client sending new frames will clog up the stream.
## License
MIT