No description
.forgejo/workflows | ||
Dockerfile | ||
inotify.sh | ||
LICENSE | ||
README.md |
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
docker build -t meetling-uploader --build-arg VERSION=1.0.0 .
2. Run the container
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:
- Verifies the file exists.
- Calculates file size.
- Splits the file into chunks based on
CHUNK_SIZE
. - 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 chunksfile
: 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
(forstat
anddd
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
🌐 https://meetling.de
Note: Ensure your backend server supports chunked uploads and correctly assembles the file.