gpt4 book ai didi

c# - ffmpeg c# asp.net视频转换错误

转载 作者:行者123 更新时间:2023-12-04 23:09:36 27 4
gpt4 key购买 nike

以下代码将错误显示为“StandardOut 尚未重定向或进程尚未启动”。这段代码有什么问题?它需要任何改变吗?它总是通过捕获异常来清除进程。

static void ExecuteAsync()
{
if (File.Exists("Videos/output.flv"))
try
{
File.Delete("Videos/output.flv");
}
catch
{
return;
}

try
{
process = new Process();
ProcessStartInfo info = new ProcessStartInfo(@"e:\ffmpeg\bin\ffmpeg.exe", "-i cars1.flv -same_quant intermediate1.mpg");
info.CreateNoWindow = false;
info.UseShellExecute = false;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
process.StartInfo = info;
process.EnableRaisingEvents = true;
process.ErrorDataReceived += new DataReceivedEventHandler(process_ErrorDataReceived);
process.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
process.Exited += new EventHandler(process_Exited);
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
}
catch (Exception ex)
{
if (process != null) process.Dispose();
}
}
static int lineCount = 0;
static void process_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine("Input line: {0} ({1:m:s:fff})", lineCount++, DateTime.Now);
Console.WriteLine(e.Data);
Console.WriteLine();
}

static void process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine("Output Data Received.");
}

static void process_Exited(object sender, EventArgs e)
{
process.Dispose();
Console.WriteLine("Bye bye!");
}
}

最佳答案

将此设置为false:

info.RedirectStandardOutput = false;

文档说:

To use StandardOutput, you must set ProcessStartInfo..::.UseShellExecute to false, and you must set ProcessStartInfo..::.RedirectStandardOutput to true. Otherwise, reading from the StandardOutput stream throws an exception

关于c# - ffmpeg c# asp.net视频转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431361/

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