- Notifications
You must be signed in to change notification settings - Fork0
VookIt is short video sharing software. IN THE DEVELOPMENT STAGES.
License
NotificationsYou must be signed in to change notification settings
mntone/VookIt
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
✨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 withfastify)
- 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 withRedis)
- 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 theLICENSE.txt file for details.