Announcements¶
Flex Video can automatically announce video streams to tactical systems, enabling seamless integration with ATAK, TAK Server, Lattice, and local network discovery.
Overview¶
When a pipeline starts playing, Flex Video can announce it to:
| System | Protocol | Discovery |
|---|---|---|
| CoT/ATAK | Multicast UDP | Local network |
| TAK Server | HTTPS REST API | Enterprise |
| Lattice | HTTPS REST API | Cloud/Enterprise |
| mDNS | Bonjour/Avahi | Local network |
CoT/ATAK Announcements¶
Cursor on Target (CoT) announcements allow ATAK, WinTAK, and iTAK clients to discover video streams on the local network.
How It Works¶
- Pipeline reaches
PLAYINGstate - CoT XML message is multicast to
239.2.3.1:6969 - TAK clients receive the message and display a video marker
- Periodic updates (every 5 seconds) keep the marker fresh
Enabling CoT¶
CoT announcements are enabled by default. To disable:
- Go to Settings in the web interface
- Toggle CoT Announcements off
Or via API:
curl -X PUT http://localhost:3539/flex/settings \
-H "Content-Type: application/json" \
-d '{"cot_enabled": false}'
CoT Metadata¶
Customize CoT announcements using pipeline metadata:
| Key | Description | Default |
|---|---|---|
cot_type | CoT event type code | b-m-p-s-p-loc (sensor point) |
Viewing in ATAK¶
- Ensure ATAK is on the same network
- Start a pipeline with geolocation configured
- The video marker appears on the ATAK map
- Tap the marker to view stream details
- Tap "Play" to open the video feed
TAK Server Integration¶
TAK Server integration provides enterprise-grade video distribution through a central server.
Configuration¶
- Go to Settings > TAK Server
- Enter the TAK Server URL (e.g.,
https://takserver.example.com:8443) - Upload your client certificate (.p12 file)
- Enter the certificate password
- Optionally upload a CA truststore
- Click Save
Or via API:
curl -X PUT http://localhost:3539/flex/settings \
-H "Content-Type: application/json" \
-d '{
"tak_server_url": "https://takserver.example.com:8443",
"tak_server_cert_base64": "<base64-encoded-.p12>",
"tak_server_cert_password": "your-password"
}'
TAK Server Metadata¶
| Key | Description | Default |
|---|---|---|
tak_alias | Video feed name in TAK Server | Pipeline ID |
Public IP Override¶
If your server is behind NAT, set the public IP for RTSP URLs:
curl -X PUT http://localhost:3539/flex/settings \
-H "Content-Type: application/json" \
-d '{"tak_server_public_ip": "203.0.113.42"}'
Lattice Integration¶
Lattice provides cloud-based situational awareness with video streaming support.
Configuration¶
- Go to Settings > Lattice
- Enter the Lattice host (without
https://) - Enter your environment API token
- Optionally enter a sandbox token for development
- Click Save
Or via API:
curl -X PUT http://localhost:3539/flex/settings \
-H "Content-Type: application/json" \
-d '{
"lattice_host": "lattice.example.com",
"lattice_token": "your-api-token"
}'
Lattice Metadata¶
Customize Lattice entity properties:
"metadata": {
"lattice_title": "Entrance Camera",
"lattice_camera_name": "CAM-001",
"lattice_modality": "EO",
"lattice_disposition": "FRIENDLY",
"lattice_platform_type": "Video Sensor"
}
| Key | Description | Default |
|---|---|---|
lattice_title | Video stream title | Flex Video - {id} |
lattice_camera_name | Camera name | Pipeline ID |
lattice_entity_id | Use existing entity | Auto-generated |
lattice_platform_type | Ontology type | Video Sensor |
lattice_disposition | Friend/foe | PENDING |
lattice_environment | Operating domain | (none) |
lattice_nationality | Country/alliance | (none) |
lattice_modality | Sensor type | EO |
lattice_mil_std_2525_symbol | Military symbol | (none) |
Disposition Values¶
FRIENDLY- Allied/own forcesHOSTILE- Enemy forcesNEUTRAL- Non-alignedSUSPECT- Potentially hostileASSUMED_FRIENDLY- Likely friendlyPENDING- Unknown (default)
Modality Values¶
EO- Electro-optical (visible light)LWIR- Long-wave infraredMWIR- Mid-wave infraredSWIR- Short-wave infraredSAR- Synthetic aperture radarRV_MAP- Rendered map view
mDNS Announcements¶
mDNS (Bonjour/Avahi) enables local network discovery without multicast CoT.
mDNS Metadata¶
| Key | Description | Default |
|---|---|---|
mdns_name | Service display name | Pipeline ID |
Geolocation Requirements¶
Most announcement systems require geolocation to display the video source on a map:
"geolocation": {
"latitude": 38.8977,
"longitude": -77.0365,
"altitude": 100.0,
"heading": 45.0,
"is_dynamic": false
}
Static vs. Dynamic¶
| Setting | Behavior |
|---|---|
is_dynamic: false | Position is fixed |
is_dynamic: true | Position updates from KLV metadata |
KLV Metadata Extraction¶
For streams with embedded MISB ST 0601 metadata, Flex Video can automatically extract and update geolocation:
This updates the pipeline's geolocation every 2 seconds, which in turn updates all announcement systems.
Troubleshooting¶
CoT Not Appearing in ATAK¶
- Verify ATAK is on the same network
- Check multicast is not blocked by firewall
- Ensure geolocation is configured
- Verify CoT is enabled in settings
TAK Server Connection Failed¶
- Check server URL is correct (include port)
- Verify certificate is valid and not expired
- Check certificate password
- Verify network connectivity to TAK Server
Lattice Entity Not Created¶
- Verify API token has write permissions
- Check Lattice host is accessible
- Ensure geolocation is provided
- Check API response for error details
Announcements Stop Working¶
- Check pipeline is still in
PLAYINGstate - Verify network connectivity
- Check system logs for errors
- Restart the pipeline