Update README.md
This commit is contained in:
parent
fd622dcb34
commit
3bd868f391
1 changed files with 88 additions and 1 deletions
89
README.md
89
README.md
|
@ -1,2 +1,89 @@
|
|||
# Livekit-Uploader
|
||||
# Meetling Livekit Recording Uploader
|
||||
|
||||
This containerized utility monitors a directory for new `.mp4` files, splits them into chunks, and uploads each chunk to a specified endpoint. It is intended for use with the Meetling Livekit recording system.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Features
|
||||
|
||||
- 📁 Watches the `/out` directory for new `.mp4` files
|
||||
- ✂️ Splits files into configurable chunk sizes
|
||||
- 📤 Uploads chunks via HTTP with bearer token authorization
|
||||
- 🐳 Lightweight Alpine-based Docker image
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Environment Variables
|
||||
|
||||
| Variable | Default | Description |
|
||||
|---------------|-------------------------------------------|--------------------------------------------|
|
||||
| `CHUNK_SIZE` | `1048576` (1 MiB) | Size of each chunk in bytes |
|
||||
| `UPLOAD_URL` | `http://localhost:8000/recording/upload` | Upload endpoint URL |
|
||||
| `AUTH_TOKEN` | `verySecretToken` | Bearer token for authentication |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Usage
|
||||
|
||||
### 1. Build the Docker image
|
||||
|
||||
```sh
|
||||
docker build -t meetling-uploader --build-arg VERSION=1.0.0 .
|
||||
```
|
||||
|
||||
### 2. Run the container
|
||||
|
||||
```sh
|
||||
docker run -v /your/output/directory:/out meetling-uploader
|
||||
```
|
||||
|
||||
> Replace `/your/output/directory` with the directory containing your `.mp4` recordings.
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Upload Process
|
||||
|
||||
Once a `.mp4` file is completely written to `/out`, the script:
|
||||
|
||||
1. Verifies the file exists.
|
||||
2. Calculates file size.
|
||||
3. Splits the file into chunks based on `CHUNK_SIZE`.
|
||||
4. Uploads each chunk using `curl`.
|
||||
|
||||
Each upload includes the following multipart form fields:
|
||||
|
||||
- `recording_id`: Filename without `.mp4`
|
||||
- `chunk_index`: Index of the chunk (starting from 0)
|
||||
- `total_chunks`: Total number of chunks
|
||||
- `file`: The actual chunk
|
||||
|
||||
---
|
||||
|
||||
## 🐳 Dockerfile Overview
|
||||
|
||||
The image uses `alpine:3.20` and installs:
|
||||
|
||||
- `inotify-tools` (for file system event watching)
|
||||
- `curl` (for HTTP requests)
|
||||
- `coreutils` (for `stat` and `dd` utilities)
|
||||
|
||||
The script is located at `/inotify.sh` and is executed when the container starts.
|
||||
It runs as the non-privileged user `nobody` for security.
|
||||
|
||||
---
|
||||
|
||||
## 📝 License
|
||||
|
||||
MIT License
|
||||
|
||||
---
|
||||
|
||||
## 👨💻 Maintainers
|
||||
|
||||
**H2 invent GmbH**
|
||||
📧 [support@h2-invent.com](mailto:support@h2-invent.com)
|
||||
🌐 [https://meetling.de](https://meetling.de)
|
||||
|
||||
---
|
||||
|
||||
> **Note:** Ensure your backend server supports chunked uploads and correctly assembles the file.
|
Loading…
Add table
Reference in a new issue