Foxglove Technologies · Schema
foxglove.CompressedVideo
A single frame of a compressed video bitstream
RoboticsObservabilityVisualizationData PlatformPhysical AIAutonomyFleet ManagementDeveloper ToolsMCAPROS
Properties
| Name | Type | Description |
|---|---|---|
| timestamp | object | Timestamp of video frame |
| frame_id | string | Frame of reference for the video. The origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video. |
| data | string | Compressed video frame data. For packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (ei |
| format | string | Video format. Supported values: `h264`, `h265`, `vp9`, `av1`. Note: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platf |
JSON Schema
{
"title": "foxglove.CompressedVideo",
"description": "A single frame of a compressed video bitstream",
"$comment": "Generated by https://github.com/foxglove/foxglove-sdk",
"type": "object",
"properties": {
"timestamp": {
"type": "object",
"title": "time",
"properties": {
"sec": {
"type": "integer",
"minimum": 0
},
"nsec": {
"type": "integer",
"minimum": 0,
"maximum": 999999999
}
},
"description": "Timestamp of video frame"
},
"frame_id": {
"type": "string",
"description": "Frame of reference for the video.\n\nThe origin of the frame is the optical center of the camera. +x points to the right in the video, +y points down, and +z points into the plane of the video."
},
"data": {
"type": "string",
"contentEncoding": "base64",
"description": "Compressed video frame data.\n\nFor packet-based video codecs this data must begin and end on packet boundaries (no partial packets), and must contain enough video packets to decode exactly one image (either a keyframe or delta frame). Note: Foxglove does not support video streams that include B frames because they require lookahead.\n\nSpecifically, the requirements for different `format` values are:\n\n- `h264`\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IDR) must also include a SPS NAL unit\n\n- `h265` (HEVC)\n - Use Annex B formatted data\n - Each CompressedVideo message should contain enough NAL units to decode exactly one video frame\n - Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units\n\n- `vp9`\n - Each CompressedVideo message should contain exactly one video frame\n\n- `av1`\n - Use the \"Low overhead bitstream format\" (section 5.2)\n - Each CompressedVideo message should contain enough OBUs to decode exactly one video frame\n - Each message containing a key frame must also include a Sequence Header OBU"
},
"format": {
"type": "string",
"description": "Video format.\n\nSupported values: `h264`, `h265`, `vp9`, `av1`.\n\nNote: compressed video support is subject to hardware limitations and patent licensing, so not all encodings may be supported on all platforms. See more about [H.265 support](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1)."
}
},
"required": [
"timestamp",
"frame_id",
"data",
"format"
]
}