QubitSync/VidWeave
Efficient Zig-based backend for video processing, handling transcoding, quality chunking, and optimization for seamless streaming applications
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
POST /api/process
{
"file_path": "path/to/video.mp4",
"qualities": [240, 480, 720]
}
{
"status": "success",
"video_id": "12345",
"message": "Video processed successfully."
}
GET /api/videos/:video_id
{
"video_id": "12345",
"original_path": "path/to/video.mp4",
"qualities": [240, 480, 720],
"chunks": [
"path/to/video_240p.mp4",
"path/to/video_480p.mp4",
"path/to/video_720p.mp4"
]
}
GET /api/videos
[
{
"video_id": "12345",
"original_path": "path/to/video.mp4"
},
{
"video_id": "67890",
"original_path": "path/to/another_video.mp4"
}
]
├── 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
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.