我试图在Rust中运行一个带有复杂过滤器的ffmpeg命令,std::process::Command
通过转义单引号阻止我执行它,这是ffmpeg所要求的。
use std::process::Command;
fn main() {
let mut cmd = Command::new("ffmpeg");
cmd.args([
"-filter_complex",
"[video_0]geq=lum='p(X,Y)'[video_0];",
]);
println!("Running command {:?}", cmd);
// Actual:
// Running command "ffmpeg" "-filter_complex" "[video_0]geq=lum='p(X,Y)'[video_0];"
// Expected:
// Running command "ffmpeg" "-filter_complex" "[video_0]geq=lum='p(X,Y)'[video_0];"
}
如何运行该命令以使单引号不被转义?这是命令实现的错误吗?
Command
的调试视图只查看调试视图中的参数,其中包括转义字符,但它仍然可以工作