使用 Rust 执行 FFMPEG 命令

问题描述 投票:0回答:0

我正在使用 Rust 调用一些 ffmpeg 命令来录制桌面音频、麦克风音频和桌面视频。我在 CMD 中键入命令并且它有效,这是该命令。

ffmpeg -hide_banner -f dshow -i audio="Microphone (Arctis Nova Pro Wireless)" -f dshow -i audio="What U Hear (Sound Blaster Audigy 5/Rx)" -filter_complex amix=inputs=2 -f gdigrab -framerate 60 -show_region 1 -video_size 600x600 -offset_x 10 -offset_y 20 -i desktop -strftime 1 -y "out%Y-%m-%d_%H-%M-%S.mp4"

这是带有所有参数的命令对象

let mut ffmpegcommand = Command::new("ffmpeg");
    ffmpegcommand.arg("-hide_banner")
    .arg("-y")
    .arg("-f")
    .arg("dshow")
    .arg("-i")
    .arg("audio=\"Microphone (Arctis Nova Pro Wireless)\"") 
    .arg("-f")
    .arg("dshow")
    .arg("-i")
    .arg("audio=\"What U Hear (Sound Blaster Audigy 5/Rx)\"")
    .arg("-filter_complex")
    .arg("amix=inputs=2")
    .arg("-f")
    .arg("gdigrab")
    .arg("-framerate")
    .arg("60")
    .arg("-show_region")
    .arg("1")
    .arg("-video_size")
    .arg("600x600")
    .arg("-offset_x")
    .arg("100")
    .arg("-offset_y")
    .arg("100")
    .arg("-i")
    .arg("desktop")
    .arg("-strftime")
    .arg("1")
    .arg("G:\\School\\Capstone\\screenshotFFMPEG\\%Y-%m-%d_%H-%M-%S.mp4");
    ffmpegcommand.status().expect("DID NTO WORK LOSER");

调用此命令会导致控制台出现此错误:

[dshow @ 0000026421be4880] Could not find audio only device with name ["Microphone (Arctis Nova Pro Wireless)"] among source devices of type audio.
[dshow @ 0000026421be4880] Searching for audio device within video devices for "Microphone (Arctis Nova Pro Wireless)"
[dshow @ 0000026421be4880] Could not find audio only device with name ["Microphone (Arctis Nova Pro Wireless)"] among source devices of type video.
audio="Microphone (Arctis Nova Pro Wireless)": I/O error

我认为错误是设备名称是错误的,因为当 ffmpeg 得到它时他们需要有 "'s 但我迷路了,因为在错误中名称与我执行 a 时设备的输出完全相同ffmpeg -list_devices 命令

[dshow @ 0000013ea9cfe600] "Microphone (Arctis Nova Pro Wireless)" (audio)
[dshow @ 0000013ea9cfe600]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{DE99F572-E285-4EBC-A263-2D782B212FA7}"

没有空格,据我所知,名称是相同的。我不知所措,需要任何帮助。

audio rust input ffmpeg command
© www.soinside.com 2019 - 2024. All rights reserved.