One file, one recording
One MCAP file is one recording: one continuous capture from one rig, robot or person. A recording SHOULD cover one logical scene or episode, because it is the unit that is uploaded, retried and displayed. Split a long drive into scenes, or a teleoperation session into episodes, in your converter.Channels
Every channel MUST usemessage_encoding: "protobuf", with its schema registered as a protobuf
FileDescriptorSet (schema.encoding: "protobuf") named by the message’s full name, e.g.
foxglove.CompressedVideo. The mcap-protobuf-support
library does this for you; see Writing a converter.
Channel rules:
- A channel topic MUST start with
/and contain only printable ASCII with no whitespace (^/[!-~]*$), e.g./cam/front,/sig/speed. - Every channel the overlay names MUST exist in the file and carry the message schema its declaration requires.
- One channel carries exactly one thing. A channel MUST NOT be declared twice, whether as two views, a view and a signal, or a signal and a part’s pose.
- Only declared views, point clouds and signals are part of the recording. A camera channel the
overlay does not list in
viewsis not ingested as a camera.
A recording must have a video
Every recording MUST resolve to at least one video view: either a declared camera, or a LiDAR whose points carry aring field (it is rendered as a range-image video, see
Point clouds). A file with signals only, or a
LiDAR without ring and no camera, is rejected.
The nomadic_spec overlay
Every file MUST contain an MCAP metadata record named nomadic_spec, with one key, spec,
whose value is the overlay serialized as a JSON string.
It MUST be a metadata record, not an attachment or a message. Metadata records are indexed in the
MCAP summary section, so the overlay can be read without scanning the file.
Top-level fields
An overlay MUST declare at least one view, point cloud, signal or part. Unknown keys MUST NOT
appear anywhere in the overlay; the JSON Schema forbids them. A typo such as
point_cloud is
rejected rather than silently dropping a modality.