Rust如何与流程参数一起使用?

时间:2019-08-16 08:37:26

标签: command-line ffmpeg rust

我真的对Rust流程感到困惑。我正在尝试这样称呼:

ffmpeg -i path/to/test-video.webm -ab 160k -ac 2 -vn -f mp3 -

这应该从视频中提取声音并将其发送到stdout。所以我做到了:

let sound: std::process::Output = Command::new("ffmpeg")
    .arg(format!("-i {}", args.input.to_str().unwrap()))
    .arg("-ab 160k")
    .arg("-ac 2")
    .arg("-vn")
    .arg("-f mp3")
    .arg("-")
    .stdout(Stdio::piped())
    .stdin(Stdio::inherit())
    .stderr(Stdio::inherit())
    .output()
    .unwrap();

但是由于某种原因,这不起作用。它将打印到stderr:

Unrecognized option 'i path/to/test-video.webm'.
Error splitting the argument list: Option not found

当我从args中删除斜杠(看起来像.arg(format!("i {}", ...)).arg("ab 160k")...时,我得到了:

Output file #0 does not contain any stream

我想我误解了它的工作原理,但是我在其他应用程序上对其进行了测试,它似乎可以按照我现在的方式工作。我想念什么,Rust如何处理这些论点?

为了清楚起见,我了解ffmpeg板条箱,但由于某些原因它们对我不起作用,我什至无法编译它们。

0 个答案:

没有答案