Files
runtipi-appstore/apps/mediamtx/docker-compose.json
Gui-Gos 10299e5475
Some checks failed
Test / test (push) Has been cancelled
feat: Add MediaMTX streaming server app
Add MediaMTX 1.15.6 - Modern, ready-to-use media streaming server

Features:
- Multi-protocol support: RTSP, RTMP, HLS, WebRTC, SRT
- Zero configuration required to start
- Automatic protocol conversion
- Built-in recording capabilities (fMP4 format)
- REST API for programmatic control
- Prometheus metrics endpoint
- Low resource consumption (Go-based)

Configuration:
- Main web UI port: 8889 (WebRTC)
- RTSP: 8554, RTMP: 1935, HLS: 8888
- API: 9997, Metrics: 9998
- Optional authentication for API
- Optional stream recording
- Resource limits: 2 CPU / 2GB RAM (limits), 1 CPU / 512MB RAM (reservations)

Volumes:
- recordings: Persistent storage for recorded streams
- config: Configuration files

Use cases:
- IP camera surveillance (RTSP/ONVIF)
- Live streaming events
- Broadcasting (OBS Studio, FFmpeg)
- WebRTC video conferencing
- IoT and drone video transmission

Documentation:
- Complete French documentation in description.md
- Usage examples for OBS, FFmpeg, VLC
- API reference and examples
- Troubleshooting guide

Note: logo.jpg needs to be added manually (see LOGO_README.txt)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 13:53:06 +01:00

143 lines
3.1 KiB
JSON

{
"schemaVersion": 2,
"services": [
{
"name": "mediamtx",
"image": "bluenviron/mediamtx:1.15.6",
"hostname": "mediamtx",
"isMain": true,
"internalPort": "8889",
"environment": [
{
"key": "MTX_PROTOCOLS",
"value": "tcp"
},
{
"key": "MTX_LOGLEVEL",
"value": "info"
},
{
"key": "MTX_LOGDESTINATIONS",
"value": "stdout"
},
{
"key": "MTX_RTSPADDRESS",
"value": ":8554"
},
{
"key": "MTX_RTMPADDRESS",
"value": ":1935"
},
{
"key": "MTX_HLSADDRESS",
"value": ":8888"
},
{
"key": "MTX_WEBRTCADDRESS",
"value": ":8889"
},
{
"key": "MTX_SRTADDRESS",
"value": ":8890"
},
{
"key": "MTX_APIADDRESS",
"value": ":9997"
},
{
"key": "MTX_METRICSADDRESS",
"value": ":9998"
},
{
"key": "MTX_AUTHINTERNALUSERS",
"value": "${MTX_API_USERNAME:+${MTX_API_USERNAME}:${MTX_API_PASSWORD}}"
},
{
"key": "MTX_PATHDEFAULTS_RECORD",
"value": "${MTX_RECORD_ENABLED:-false}"
},
{
"key": "MTX_PATHDEFAULTS_RECORDPATH",
"value": "./recordings/%path/%Y-%m-%d_%H-%M-%S-%f"
},
{
"key": "MTX_PATHDEFAULTS_RECORDFORMAT",
"value": "fmp4"
}
],
"addPorts": [
{
"containerPort": 8554,
"hostPort": 8554,
"tcp": true
},
{
"containerPort": 8554,
"hostPort": 8554,
"udp": true
},
{
"containerPort": 1935,
"hostPort": 1935,
"tcp": true
},
{
"containerPort": 8888,
"hostPort": 8888,
"tcp": true
},
{
"containerPort": 8890,
"hostPort": 8890,
"udp": true
},
{
"containerPort": 8189,
"hostPort": 8189,
"udp": true
},
{
"containerPort": 9997,
"hostPort": 9997,
"tcp": true
},
{
"containerPort": 9998,
"hostPort": 9998,
"tcp": true
}
],
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/recordings",
"containerPath": "/mediamtx/recordings"
},
{
"hostPath": "${APP_DATA_DIR}/data/config",
"containerPath": "/mediamtx/config"
}
],
"deploy": {
"resources": {
"limits": {
"cpus": "2.0",
"memory": "2G"
},
"reservations": {
"cpus": "1.0",
"memory": "512M",
"devices": []
}
}
},
"healthCheck": {
"test": "wget --no-verbose --tries=1 --spider http://localhost:9997/v3/config/get || exit 1",
"interval": "30s",
"timeout": "10s",
"retries": 3,
"startPeriod": "10s"
}
}
]
}