gpt4 book ai didi

c# - 在 .NET (ffmpeg) 中启动时进程停止

转载 作者:太空狗 更新时间:2023-10-29 21:29:41 25 4
gpt4 key购买 nike

我正在尝试将 ffmpeg 作为 .NET (C#) 中的进程启动,但在某些情况下,这取决于参数(具体来说,如果我为了创建音频而省略视频参数文件),它正在停滞。它启动,输出一些行,但随后停止(使用 0% CPU)。当父 .NET 进程被终止时,它会继续,如果我让它继续,ffmpeg 会正确生成文件。我认为这可能是由于使用 Peek() 来查看流,所以我只是将其简化为以下内容,其行为相同:

_process = new Process
{
StartInfo =
{
UseShellExecute = false,
RedirectStandardOutput = false,
RedirectStandardError = true,
FileName = "c:\\ffmpeg.exe",
Arguments = string.Format(
"-i {0} {1} {2} {3} -y {4}", inputPath, videoArgs, audioArgs, options, outputPath)
}
};
_process.Start();
_process.WaitForExit();

ffmpeg 在停顿之前输出有关输入视频/音频流的信息。通过命令提示符执行命令按预期工作。

有人知道问题出在哪里吗?

编辑:

补充一下,我尝试了 UseShellExecute = true(和 RedirectStandardError = false),这很有效。但是,我仍然需要阅读输出,所以这对我没有真正的帮助。

最佳答案

读一读 MSDN on RedirectStandardError

显然这有点繁琐,如果输出或错误流缓冲区被填满,可能会死锁。坐在那里等你读它写的东西......

关于c# - 在 .NET (ffmpeg) 中启动时进程停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com