QubitSync/VidWeave
Efficient Zig-based backend for video processing, handling transcoding, quality chunking, and optimization for seamless streaming applications
master47a9c0d42ff5c083a9b04b04a5a1aeb0a777e153a679ac6f297e5b98612734c78eb3bbdca9d994b1VidWeave 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/uploadPOSTname, description, quality, thumbname, video./api/video/{vid}GETname, description, quality, etc.)./api/video/{vid}DELETE/api/video/{vid}PUT/api/playerGETThe 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.