1个不稳定版本
0.1.0 | 2021年4月11日 |
---|
在多媒体类别中排名第250
每月下载量73次
20KB
277 代码行
封装了ffpmeg命令行工具,使用-progress
报告进度
有时候你只是想简单使用ffmpeg。大多数crate都使用ffi,导致接口复杂。ffmpeg_cli
通过封装命令行,避免了这种情况,当你不需要真实ffmpeg API提供的灵活性时。
use std::process::Stdio;
use ffmpeg_cli::{FfmpegBuilder, File, Parameter};
use futures::{future::ready, StreamExt};
#[tokio::main]
async fn main() {
let builder = FfmpegBuilder::new()
.stderr(Stdio::piped())
.option(Parameter::Single("nostdin"))
.option(Parameter::Single("y"))
.input(File::new("input.mkv"))
.output(
File::new("output.mp4")
.option(Parameter::KeyValue("vcodec", "libx265"))
.option(Parameter::KeyValue("crf", "28")),
);
let ffmpeg = builder.run().await.unwrap();
ffmpeg
.progress
.for_each(|x| {
dbg!(x.unwrap());
ready(())
})
.await;
let output = ffmpeg.process.wait_with_output().unwrap();
println!(
"{}\nstderr:\n{}",
output.status,
std::str::from_utf8(&output.stderr).unwrap()
);
}
依赖关系
~3–12MB
~131K SLoC