feat(streamer): add ffmpeg encoder and mcap recording
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user