Appearance
Video
Skip this page if your payload has no camera.
Before you start
Complete Set up a test bench. Video needs a bench bus: Payload Lab has no Video tab yet. Talk to Urban Sky before you build video. Video needs a route, a codec and a bandwidth plan for each flight.
1. Declare the stream
Do not send video as telemetry. Add a streams entry to your capability document (device API) or to your announcement (self-announce), then re-announce:
json
"streams": [{ "name": "eo", "protocol": "srt", "port": 9595 }]Send MPEG-TS over SRT, in H.264 or H.265. MC transcodes it to H.264 for browsers. Field rules: API reference: Video.
Route. With only port, MC pulls srt://<your announced address>:<port>. The bus link carries TCP, and SRT is UDP, so MC cannot pull from your payload-LAN address through the bus link. Ask Urban Sky for the route for your flight: either a url that Urban Sky gives you to send to, or a route that Urban Sky sets up.
2. Add camera metadata (optional)
If your camera knows where it points, put MISB ST 0601 KLV in the MPEG-TS stream. MC draws the camera footprint on the map from it. Tags MC reads: API reference: Camera metadata (KLV).
If your payload points a camera, use the pointing names for its telemetry and commands. MC's camera and gimbal controls then work with it.
Check it worked
- Before you connect to a bus, play your stream on your own computer, for example
ffplay 'srt://<payload address>:9595'. Fix the codec and timing there first. - In the Balto app, open the bus and choose the Payloads tab. Balto plays the video that MC receives for your payload.
- With KLV,
GET /payloads/:id/camera-posereturns poses from the last 30 seconds.