This stack contains several tools for using movie files in ROS (playback, conversion to bag files etc.).
The most important package is movie_publisher.
movie_publisher can also extract various interesting metadata from the image and movie files, like GNSS location, camera calibration, image orientation etc. To extract the metadata, several extractors are available:
- Builtin into movie_publisher:
- LibavStreamMetadataExtractor.h: Extractor of metadata from an open LibAV stream.
- FilenameMetadataExtractor.h: Extractor of metadata from filename.
- FileMetadataExtractor.h: Extractor of metadata from filesystem properties of the movie file.
- exiftool_metadata_extractor: Extractor of image and movie metadata with exiftool backend.
- exiv2_metadata_extractor: Extractor of image and movie metadata with exiv2 backend.
- libexif_metadata_extractor: Extractor of image and movie metadata with libexif backend.
- lensfun_metadata_extractor: Extractor of image and movie metadata with lensfun backend.
- camera_info_manager_metadata_extractor: Extractor of image and movie metadata with camera_info_manager_lib backend.
The extractors are found automatically by pluginlib as all packages specifying
<export><movie_publisher metadata_plugins="${prefix}/plugins.xml" /></export>
in package.xml
.
Each extractor implements interface metadata_extractor.h by providing some raw metadata. metadata_manager.h is a meta-extractor that uses all loaded extractors to get as much metadata as possible, possibly providing cross-dependencies between individual extractors (e.g. lensfun needs to know camera name, but it cannot figure it itself, so it relies on some other extractor to provide the name).