Struct CompressedVideo¶
Defined in File schemas.hpp
Struct Documentation¶
-
struct CompressedVideo¶
A single frame of a compressed video bitstream.
Public Members
-
std::string frame_id¶
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.
-
std::vector<std::byte> data¶
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 (either a keyframe or delta frame). Note: Foxglove does not support video streams that include B frames because they require lookahead.
Specifically, the requirements for different
format
values are:h264
Use Annex B formatted data
Each CompressedVideo message should contain enough NAL units to decode exactly one video frame
Each message containing a key frame (IDR) must also include a SPS NAL unit
h265
(HEVC)Use Annex B formatted data
Each CompressedVideo message should contain enough NAL units to decode exactly one video frame
Each message containing a key frame (IRAP) must also include relevant VPS/SPS/PPS NAL units
vp9
Each CompressedVideo message should contain exactly one video frame
av1
Use the “Low overhead bitstream format” (section 5.2)
Each CompressedVideo message should contain enough OBUs to decode exactly one video frame
Each message containing a key frame must also include a Sequence Header OBU
-
std::string format¶
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 platforms. See more about H.265 support, VP9 support, and AV1 support.
-
std::string frame_id¶