3 个不稳定版本
0.2.0 | 2024年2月26日 |
---|---|
0.1.1 | 2024年2月26日 |
0.1.0 | 2024年2月26日 |
#66 在 多媒体
每月411次下载
19KB
275 行
essi-ffmpeg
轻松使用 FFmpeg,包括下载 FFmpeg 二进制文件、执行 FFmpeg 命令和处理 I/O 任务。提供了一个简化的界面来利用 FFmpeg 的功能。
功能
- 自动 FFmpeg 下载:如果在环境中找不到 FFmpeg,将自动下载适合您平台的 FFmpeg 二进制文件。
- 灵活的命令执行:轻松构建和执行 FFmpeg 命令以处理各种多媒体处理任务。
入门指南
添加到您的项目
将 essi-ffmpeg
添加到您的 Cargo.toml
依赖项
[dependencies]
essi-ffmpeg = { git = "https://github.com/MrAdhit/essi-ffmpeg" }
基本用法
use essi_ffmpeg::FFmpeg;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Automatically download FFmpeg if not found
if let Some((handle, mut progress)) = FFmpeg::auto_download().await.unwrap() {
tokio::spawn(async move {
while let Some(state) = progress.recv().await {
println!("{:?}", state);
}
});
handle.await.unwrap().unwrap();
} else {
println!("FFmpeg is downloaded, using existing installation");
}
// Build and execute an FFmpeg command
let mut ffmpeg = FFmpeg::new()
.stderr(std::process::Stdio::inherit())
.input_with_file("input_file.flv".into()).done()
.output_as_file("output_file.mp4".into()).done()
.start().unwrap();
ffmpeg.wait().unwrap();
Ok(())
}
示例
此包包含几个示例,展示了不同的使用场景
basic_usage.rs
:展示了如何使用此库的基本用法。muxing_hardware_accelerated.rs
:演示了带有硬件加速的复用。muxing_multiple_output.rs
:展示了如何复用多个输出。override_ffmpeg_download_directory.rs
:说明了如何覆盖默认的 FFmpeg 下载目录。windows_screen_recorder.rs
:提供了一个在 Windows 上使用 FFmpeg 的简单屏幕录制器的示例。
要运行示例,请使用
cargo run --example example_name
贡献
欢迎贡献!以下是一些您可以贡献的方式
许可
本项目采用 MIT 许可。有关详细信息,请参阅 LICENSE 文件。
依赖项
~6–18MB
~259K SLoC