// Generated by https://github.com/foxglove/foxglove-sdk syntax = "proto3"; import "google/protobuf/timestamp.proto"; package foxglove; // A single frame of a compressed video bitstream message CompressedVideo { // Timestamp of video frame google.protobuf.Timestamp timestamp = 1; // 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. string frame_id = 2; // 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 bytes data = 3; // 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](https://caniuse.com/hevc), [VP9 support](https://caniuse.com/webm), and [AV1 support](https://caniuse.com/av1). string format = 4; }