use std::env;
use std::path::PathBuf;
pub fn ffmpeg_path() -> String {
if let Ok(p) = env::var("VISER_FFMPEG") {
if !p.is_empty() {
return p;
}
}
if let Some(p) = local_binary("ffmpeg") {
return p;
}
"ffmpeg".into()
}
pub fn ffprobe_path() -> String {
if let Ok(p) = env::var("VISER_FFPROBE") {
if !p.is_empty() {
return p;
}
}
if let Some(p) = local_binary("ffprobe") {
return p;
}
"ffprobe".into()
}
fn local_binary(name: &str) -> Option<String> {
let mut path = PathBuf::from("bin").join("ffmpeg");
if cfg!(windows) {
path = path.join(format!("{name}.exe"));
} else {
path = path.join(name);
}
if path.exists() { Some(path.to_string_lossy().into_owned()) } else { None }
}