QubitSync/VidWeave
Efficient Zig-based backend for video processing, handling transcoding, quality chunking, and optimization for seamless streaming applications
master
47a9c0d42ff5c083a9b04b04a5a1aeb0a777e153
a679ac6f297e5b98612734c78eb3bbdca9d994b1
VidWeave is a lightweight, Zig-powered backend designed for efficient video processing. It handles tasks like transcoding, chunking videos into multiple quality levels, and saving metadata to an SQLite database. VidWeave also provides a REST API for seamless integration with other services.
Clone this repository:
git clone https://github.com/yourusername/VidWeave.git
cd VidWeave
Install dependencies (ensure FFmpeg and SQLite are installed on your system).
Build the project:
zig build
Run the application:
zig build run
The provided API and database schema define a clear workflow for uploading, managing, and streaming videos. Below is a summary and clarification for ease of understanding:
/api/upload
POST
name
, description
, quality
, thumbname
, video
./api/video/{vid}
GET
name
, description
, quality
, etc.)./api/video/{vid}
DELETE
/api/video/{vid}
PUT
/api/player
GET
The Video
table structure supports the following:
uid
) and videos (vid
).name
, description
, quality
).{ "720p:1": "/path/to/part1", ... }
.├── src/
│ ├── main.zig # Main application file
│ ├── api.zig # API endpoint handlers
│ ├── video_processor.zig # Video processing logic
│ ├── db.zig # SQLite database integration
├── build.zig # Build script
├── README.md # Project documentation
320p:1
, 720p:1
).playerConfig
match the expected client performance.Contributions are welcome! Please open an issue or submit a pull request with your improvements.
This project is licensed under the MIT License. See LICENSE
for details.