Skip to main content

Crate crispy_media_probe

Crate crispy_media_probe 

Source
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.