Licensing¶
Flex Video uses a license system to enable advanced codecs and increase stream limits.
License Tiers¶
| Feature | Free | Licensed |
|---|---|---|
| H.264 encoding | Yes | Yes |
| H.265/HEVC encoding | No | Yes |
| AV1 encoding | No | Yes |
| Concurrent streams | 1 | Per license |
| Screenshots | Yes | Yes |
| Announcements | Yes | Yes |
Checking License Status¶
Web Interface¶
License status is displayed in Settings > License.
REST API¶
Response:
{
"licensed": true,
"serial_number": "FLX-2026-ABC123",
"expiration_date": "2027-12-31T23:59:59Z",
"max_video_streams": 4,
"codecs": {
"h264": true,
"h265": true,
"av1": true
}
}
Activating a License¶
Web Interface¶
- Go to Settings > License
- Click Upload License
- Paste your license key
- Click Activate
REST API¶
curl -X POST http://localhost:3539/flex/license \
-H "Content-Type: text/plain" \
-d 'eyJ2ZXJzaW9uIjoxLCJwYXlsb2FkIjoiNUtkM1...'
License File¶
Place the license file in the license volume:
Or mount a host directory:
License Format¶
Licenses are Base64-encoded JSON containing:
- Payload (encrypted entitlements)
- Digital signature (ECDSA)
- Version identifier
License Security
License keys are cryptographically signed. Tampering invalidates the license.
License Validation¶
On startup, Flex Video validates:
- Signature - Verifies authenticity
- Expiration - Checks if license is current
- Entitlements - Loads codec and stream limits
Validation occurs:
- At service startup
- When uploading a new license
- When starting a pipeline (codec check)
Codec Enforcement¶
When a license is missing or expired:
- H.264: Always available
- H.265/AV1: Returns HTTP 402 (Payment Required)
Stream Limits¶
When max_video_streams is exceeded:
Only playing pipelines count toward the limit.
Removing a License¶
Web Interface¶
- Go to Settings > License
- Click Remove License
REST API¶
License Persistence¶
Licenses are stored in the license_data Docker volume. To preserve licenses across reinstalls:
# Backup
docker run --rm -v flex_license_data:/data -v $(pwd):/backup alpine tar czf /backup/license-backup.tar.gz /data
# Restore
docker run --rm -v flex_license_data:/data -v $(pwd):/backup alpine tar xzf /backup/license-backup.tar.gz -C /
Obtaining a License¶
Contact Blackwire for licensing:
- Email: licensing@blackwire-ts.com
- Web: blackwire-ts.com
Provide:
- Intended use case
- Number of concurrent streams needed
- Required codecs
Troubleshooting¶
License Not Recognized¶
- Verify the license key is complete (no truncation)
- Check for copy/paste errors (extra whitespace)
- Ensure license hasn't expired
Codec Still Unavailable¶
- Restart the flex-manager service after license upload
- Verify license includes the codec entitlement
- Check license expiration date
License Disappeared After Restart¶
Ensure the license volume is persistent:
Not: