Expand description
ffprobe/ffmpeg stream analysis and screenshot capture.
This crate provides async functions for probing IPTV streams using ffprobe and ffmpeg. It is a Rust translation of logic from:
§Optional: libmpv backend
When the libmpv-backend feature is enabled, this crate also provides
stream probing and screenshot capture via libmpv (loaded at runtime via
dlopen/LoadLibrary). This is useful when mpv is bundled by the
application (e.g. via Flutter’s media_kit) but ffprobe is not installed.
Set the CRISPY_LIBMPV_PATH environment variable to point to a specific
libmpv shared library. If not set, the system default is tried.
Re-exports§
pub use bitrate::profile_bitrate;pub use error::ProbeError;pub use hls::parse_hls_variants;pub use hls::select_best_variant;pub use mismatch::check_label_mismatch;pub use probe::ProbeOptions;pub use probe::is_ffprobe_available;pub use probe::parse_ffprobe_json;pub use probe::probe_audio;pub use probe::probe_stream;pub use probe::probe_stream_with_options;pub use screenshot::capture_screenshot;pub use screenshot::is_ffmpeg_available;pub use screenshot::sanitize_filename;pub use types::AudioInfo;pub use types::HlsVariant;pub use types::MediaInfo;pub use types::VideoInfo;pub use types::classify_resolution;pub use types::height_to_label;pub use types::parse_frame_rate;
Modules§
- bitrate
- Bitrate profiling via ffmpeg.
- error
- Error types for media probing operations.
- hls
- HLS variant playlist parsing and best-quality selection.
- mismatch
- Label vs actual resolution mismatch detection.
- probe
- ffprobe invocation and JSON parsing.
- screenshot
- Screenshot capture via ffmpeg.
- types
- Domain types for media probe results.