0
以下代碼顯示錯誤爲「StandardOut尚未重定向或進程尚未啓動。」這段代碼有什麼問題?它需要任何更改?它總是通過捕捉異常來清除進程。ffmpeg c#asp.net視頻轉換錯誤
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!");
}
}
我設置像你告訴。我刪除了未定義的函數process.BeginOutputReadLine(); process.BeginErrorReadLine();現在它不會顯示任何錯誤。但我無法找到任何轉換後的文件作爲輸出:( –
,如果它是大文件將需要一段時間..運行任務管理器,看看ffmpeg是否正在運行。 – Zaki
沒有老兄。它不會顯示任何進程作爲ffmpeg在任務管理器執行時。 –