✨100%趣味で書かれたソフトウェアです。
I really wanted to write a sentence in Japanese. It means “This software is written entirely as a hobby.” It’s sales copy of light-weighted novel, BAKEMONOGATARI.
VookIt! = Video + Bookmark it!
VookIt is short video sharing software. In the Development Stages!!
日本語で「ヴキット!」って発音してほしいけど、字面にするとダサい、草。
- Create MPEG-DASH & HLS files automatically
- Ultrawide (21.6:9) & 120 fps video support
- Chunk uploading with JavaScript
- HEVC (default off) & AV1 video support
- Manage streams (I'm sorry. Currently, stream name isn't applied automatically.)
- User authentication
- Tag
- Tune encode settings by game title tag.
- Bypass audio data (ABR 256 kbps AAC-LC only)
- Detect device features (120 fps, HDR and supported codec)
- Markdown Description
- Limited Share (account-based & time-based limit)
- List view for top page
- Reaction (like misskey.io)
- Text-based (use emoji and short word)
- like "lol", "No Way!", "For Real?", "What?", "(笑)", "笑", "草", "w", "W", "www", "草www", "草に草生やすなwww", "マジで?" and "🤔"
- DO NOT TRANSLATION. But, show meaning.
- Text-based (use emoji and short word)
- Portrait video support
- HDR video support
- 10-bit encoding system
- SDR color grading
- Change database
- Live streaming
- Install nodejs, ffmpeg and SQLite.
- Build static assets.
% npm run webpack:build
- Generate SSL certificate (if use ssl) and session key.
% npm run openssl:init
% npm run session:init
- Set docker volume up.
% docker volume create vhosting_node_modules
- Start docker and hawks (backend). Currently, use local node.js and ffmpeg for the backend.
% docker-compose up -d
% npm run hawks:start
- (Tentatively) Create your user. Currently program use screenname "dev" (hard coding on source).
% npm run user:new dev [password]
- (Manual) Rename directory after encoding. For example, rename "./.media/[usid]/st_avc1_ntvp" to "./.media/[usid]/avc1". In the future, program use as-is stream name like "st_avc1_720p" or "st_avc1_ntvp".
- Controllers: parse requests, invoke usecases and return objects (nest with fastify)
- Views: build views (React SSR + Bulma)
- Usecase: execute jobs
- Database: read/write data (Prisma with sqlite)
+-------------+
| Browser |
+-------------+
↓ 1 ↑ 6
+-------------+
| Controllers |
+-------------+
↓ 2 ↑ 5
+-------------+
| Usecase |
+-------------+
↓ 3 ↑ 4
+-------------+
| Database |
+-------------+
- Service Workers: dispatch tasks (BullMQ with Redis)
- Dispatchers: create jobs (internal)
- Encoders: encode video and audio (ffmpeg with x264, x265, libvpx, SVT-AV1 and so on…)
+-----------------+
| Service Worker |
+-----------------+
↓ 1 ↑ 4
+-----------------+
| Dispatcher |
+-----------------+
↓ 2 ↑ 3
+-----------------+
| Encoder |
+-----------------+
- mntone - Initial work.
VookIt! is licensed under the GPLv3 license - see the LICENSE.txt file for details.